int main(
int argc,
char **
const argv)
{
int rc, i;
UINT32 doSlot = 2, slotMin = 0, slotMax = 0;
int diChannelAmount = 16;
int doChannelAmount = 16;
UINT32 filter = 1, filterMin = 1, filterMax = 0x7FFFFFFF;
float fBuf[count];
float freq[count], duty[count];
while(-1 != (rc = getopt(argc, argv, "hi:f:o:")))
{
switch(rc)
{
case 'i':
diSlot = atoi(optarg);
if(diSlot < slotMin || diSlot > slotMax)
{
printf("Error parameter: slot: %d\n", diSlot);
return -1;
}
break;
case 'f':
filter = atoi(optarg);
if(filter < filterMin)
filter = filterMin;
if(filter > filterMax)
filter = filterMin;
break;
case 'o':
doSlot = atoi(optarg);
if(doSlot < slotMin || doSlot > slotMax)
{
printf("Error parameter: slot: %d\n", doSlot);
return -1;
}
break;
case '?':
case 'h':
default:
printf("DI frequency sample program.\n\n");
printf("Usage: ./di_freq [OPTIONS]\n\n");
printf("Options:\n");
printf("\t%-8s Slot of DI module [%d-%d]. Default slot = %d\n",
"-i", slotMin, slotMax, diSlot);
printf("\t%-8s Filter of DI module [%d-%d]. Default filter = %d\n",
"-f", filterMin, filterMax, filter);
printf("\t%-8s (One unit = 100us)\n", "");
printf("\t%-8s Slot of DO module [%d-%d]. Default slot = %d\n",
"-o", slotMin, slotMax, doSlot);
printf("\n");
return 0;
}
}
printf("%-10s: %d\n", "DI slot", diSlot);
printf("%-10s: %d\n", "DI filter", filter);
printf("%-10s: %d\n", "DO slot", doSlot);
for(i = 0; i < count; i++)
{
u32Buf[i] = filter;
}
printf("MX_RTU_Module_DI_Filter_Set() = %d\r\n", rc);
}
for(i = 0; i < count; i++)
{
u8Buf[i] = mode;
}
printf("MX_RTU_Module_DI_Mode_Set() = %d\r\n", rc);
}
for(i = 0; i < count; i++)
{
u32Buf[i] = measTime;
}
printf("MX_RTU_Module_DI_Frequency_Measurement_Time_Set() = %d\r\n", rc);
}
printf("MX_RTU_Module_DI_Frequency_Start_Set() = %d\r\n", rc);
}
printf("MX_RTU_Module_DI_Frequency_Measurement_Time_Get() = %d\r\n", rc);
}
for(i = 0; i < count; i++)
{
}
printf("MX_RTU_Module_DO_Mode_Set() = %d\r\n", rc);
}
for(i = 0; i < count; i++)
{
u32Buf[i] = 1000;
}
printf("MX_RTU_Module_DO_PWM_Count_Set() = %d\r\n", rc);
}
for(i = 0; i < count; i++)
{
freq[i] = 10.0f;
duty[i] = 50.0f;
}
printf("MX_RTU_Module_DO_PWM_Config_Set() = %d\r\n", rc);
}
printf("MX_RTU_Module_DO_PWM_Start_Set() = %d\r\n", rc);
}
printf("DI frequency detect Start ...\n");
while(1)
{
if(rc != 0)
{
printf("MX_RTU_Module_DI_Frequency_Get() = %d\r\n", rc);
break;
}
for(i = 0; i < count; i++)
{
printf("\rfreq[%2d] = %.2f Hz", start+i, fBuf[i]);
}
fflush(0);
usleep(500000);
}
return 0;
}