int main(
int argc,
char *argv[])
{
int retval = 0;
UINT8 toggleSwitchState = 0;
while((retval = getopt(argc, argv, "hs:c:")) != -1)
{
switch(retval)
{
case 's':
doSlot = atoi(optarg);
{
printf("Error DO slot = %d\r\n", doSlot);
exit(1);
}
break;
case 'c':
doChannel = atoi(optarg);
{
printf("Error DO channel = %d\r\n", doChannel);
exit(1);
}
break;
case '?':
case 'h':
default:
printf("Toggle Switch program.\n\n");
printf("Usage: ./toggle_switch [OPTIONS]\n\n");
printf("Options:\n");
printf(
"\t%-8s DO slot [%d-%d]. Default DO slot = %d\n",
"-s", 0,
MAX_SLOT, doSlot);
printf("\t%-8s (slot 0: Built-in IO, slot 1 ~ 9: IO Module)\n", "");
printf(
"\t%-8s DO channel [%d-%d]. Default DO channel = %d\n",
"-c", 0,
MAX_CHANNEL, doChannel);
printf("\n");
return 0;
}
}
printf("Please change Toggle Switch to set DO of slot %d and channel %d(mode2: off, mode1: on)\r\n", doSlot, doChannel);
while(1)
{
{
printf("MX_RTU_Toggle_Switch_Get(&toggleSwitchState), return code = %d\r\n", rc);
exit(1);
}
if(toggleSwitchState == 0)
{
{
printf("MX_RTU_Module_DO_Value_Get(%d, &doValue), return code = %d\r\n", doSlot, rc);
exit(1);
}
doValue &= ~(1 << doChannel);
{
printf("MX_RTU_Module_DO_Value_Set(%d, %x), return code = %d\r\n", doSlot, doValue, rc);
exit(1);
}
}
else if(toggleSwitchState == 1)
{
{
printf("MX_RTU_Module_DO_Value_Get(%d, &doValue), return code = %d\r\n", doSlot, rc);
exit(1);
}
doValue |= (1 << doChannel);
{
printf("MX_RTU_Module_DO_Value_Set(%d, %x), return code = %d\r\n", doSlot, doValue, rc);
exit(1);
}
}
sleep(1);
}
return 0;
}