int main(
int argc,
char * argv[])
{
int rc, i;
UINT32 relaySlot = 1, slotMin = 0, slotMax = 9;
int relayChannelAmount = 6, relayChannel= 0, relayChannelTagAmount = 3;
UINT32 arrReset[relayChannelAmount];
UINT32 arrTrigger[relayChannelAmount];
while(-1 != (rc = getopt(argc, argv, "hi:c:")))
{
switch(rc)
{
case 'i':
relaySlot = atoi(optarg);
if(relaySlot < slotMin || relaySlot > slotMax)
{
printf("Error parameter: slot: %d\n", relaySlot);
return -1;
}
break;
case 'c':
relayChannel = atoi(optarg);
if(relayChannel < 0 || relayChannel > relayChannelAmount-1)
{
printf("Error parameter: Channel: %d\n", relayChannel);
return -1;
}
break;
case '?':
case 'h':
default:
printf("Relay TAG sample program.\n\n");
printf("Usage: ./ioPAC8600_tag_relay [OPTIONS]\n\n");
printf("Options:\n");
printf("\t%-8s Slot of Relay module [%d-%d]. Default slot = %d\n",
"-i", slotMin, slotMax, relaySlot);
printf("\t%-8s Channel of Relay module [%d-%d]. Default Channel = %d\n",
"-c", 0, relayChannelAmount - 1, relayChannel);
printf("\n");
return 0;
}
}
printf("%-10s: %d\n", "Relay slot", relaySlot);
printf("%-10s: %d\n", "Relay channel", relayChannel);
sprintf(relay_tag[0], "S%d_Relay%d_RelayCurrentCount", relaySlot, relayChannel);
sprintf(relay_tag[1], "S%d_Relay%d_RelayTotalCount", relaySlot, relayChannel);
sprintf(relay_tag[2], "S%d_Relay%d_RelayValue", relaySlot, relayChannel);
for (i = 0; i < relayChannelAmount; i++) {
arrReset[i] = 0;
arrTrigger[i] = 1;
}
{
printf("MX_RTU_Tag_Init(), return code = %d.\n", retval);
return 0;
}
{
printf("MX_RTU_Tag_Get_Info(%s), return code = %d.\n", relay_tag[1], retval);
return 0;
}
retval =
MX_RTU_Tag_Read(relay_tag[1], &u32Val,
sizeof(u32Val), NULL, NULL);
{
printf("MX_RTU_Tag_Read(%s) = %d\n", relay_tag[1], retval);
return 0;
}
printf("%-10s: %d\n", "Relay channel life time count", u32Val);
{
printf("MX_RTU_Tag_Get_Info(%s), return code = %d.\n", relay_tag[0], retval);
return 0;
}
{
printf("MX_RTU_Tag_Write(%s), return code = %d\r\n", relay_tag[0], retval);
return 0;
}
{
printf("MX_RTU_Tag_Get_Info(%s), return code = %d.\n", relay_tag[2], retval);
return 0;
}
{
printf("MX_RTU_Tag_Write(%s), return code = %d\r\n", relay_tag[2], retval);
return 0;
}
printf("---- power on ----\n");
printf("device should start booting!!!\n");
{
printf("MX_RTU_Tag_Uninit(), return code = %d\n", retval);
}
return 0;
}