#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <iothinx/iothinxio.h>
int main(
int argc,
char **
const argv)
{
int32_t rc;
uint32_t di_slot = 1;
uint8_t di_modes[16];
uint8_t counter_channel_start = 0;
uint8_t counter_channel_count = 2;
uint32_t counter_starts = 0;
uint8_t counter_triggers[4];
uint32_t counter_values[4];
int32_t i;
char ch;
while (-1 != (rc = getopt(argc, argv, "c:hn:s:")))
{
switch (rc)
{
case 'c':
counter_channel_start = atoi(optarg);
break;
case 'n':
counter_channel_count = atoi(optarg);
break;
case 's':
di_slot = atoi(optarg);
break;
case 'h':
default:
printf("Counter sample program.\n\n");
printf("Usage: ./counter [OPTIONS]\n\n");
printf("Options:\n");
printf("\t%-8s Slot of DI module. Default slot = %d\n", "-s", di_slot);
printf("\t%-8s Counter start channel. Default channel = %d\n", "-c", counter_channel_start);
printf("\t%-8s Counter channel count. Default count = %d\n", "-n", counter_channel_count);
printf("\n");
return 0;
}
}
printf("DI slot = %lu\n", di_slot);
printf("Counter start channel = %u\n", counter_channel_start);
printf("Counter channel count = %u\n", counter_channel_count);
{
printf("ioThinx_IO_Client_Init() = %d\n", rc);
return -1;
}
for (i = 0; i < counter_channel_count; i++)
{
}
{
printf("ioThinx_DI_Config_SetModes() = %d\n", rc);
}
for (i = 0; i < counter_channel_count; i++)
{
}
{
printf("ioThinx_DI_Config_SetCntTriggers() = %d\n", rc);
}
for (i = 0; i < counter_channel_count; i++)
{
counter_values[i] = 0;
}
{
printf("ioThinx_DI_Config_SetCntValues() = %d\n", rc);
}
{
printf("ioThinx_IO_Config_Reload() = %d\n", rc);
}
counter_starts = 0;
for (i = 0; i < counter_channel_count; i++)
{
counter_starts |= 0x1 << (counter_channel_start + i);
}
{
printf("ioThinx_DI_SetCntStarts() = %d\n", rc);
}
do
{
{
printf("ioThinx_DI_GetCntValues() = %d\n", rc);
break;
}
for (i = 0; i < counter_channel_count; i++)
{
printf("[%lu:%u] counter = %d\n", di_slot, counter_channel_start+i, counter_values[i]);
}
ch = getchar();
}
while (ch != 'q');
return 0;
}
57 uint8_t counter_channel_start = 0;
58 uint8_t counter_channel_count = 2;
59 uint32_t counter_starts = 0;
60 uint8_t counter_triggers[4];
61 uint32_t counter_values[4];
65 while (-1 != (rc = getopt(argc, argv,
"c:hn:s:")))
70 counter_channel_start = atoi(optarg);
73 counter_channel_count = atoi(optarg);
76 di_slot = atoi(optarg);
80 printf(
"Counter sample program.\n\n");
81 printf(
"Usage: ./counter [OPTIONS]\n\n");
83 printf(
"\t%-8s Slot of DI module. Default slot = %d\n",
"-s", di_slot);
84 printf(
"\t%-8s Counter start channel. Default channel = %d\n",
"-c", counter_channel_start);
85 printf(
"\t%-8s Counter channel count. Default count = %d\n",
"-n", counter_channel_count);
91 printf(
"DI slot = %lu\n", di_slot);
92 printf(
"Counter start channel = %u\n", counter_channel_start);
93 printf(
"Counter channel count = %u\n", counter_channel_count);
99 printf(
"ioThinx_IO_Client_Init() = %d\n", rc);
104 for (i = 0; i < counter_channel_count; i++)
111 printf(
"ioThinx_DI_Config_SetModes() = %d\n", rc);
114 for (i = 0; i < counter_channel_count; i++)
121 printf(
"ioThinx_DI_Config_SetCntTriggers() = %d\n", rc);
124 for (i = 0; i < counter_channel_count; i++)
126 counter_values[i] = 0;
131 printf(
"ioThinx_DI_Config_SetCntValues() = %d\n", rc);
138 printf(
"ioThinx_IO_Config_Reload() = %d\n", rc);
143 for (i = 0; i < counter_channel_count; i++)
145 counter_starts |= 0x1 << (counter_channel_start + i);
150 printf(
"ioThinx_DI_SetCntStarts() = %d\n", rc);
159 printf(
"ioThinx_DI_GetCntValues() = %d\n", rc);
162 for (i = 0; i < counter_channel_count; i++)
164 printf(
"[%lu:%u] counter = %d\n", di_slot, counter_channel_start+i, counter_values[i]);
IOTHINX_ERR ioThinx_DI_SetCntStarts(uint32_t slot, uint32_t starts)
IOTHINX_ERR ioThinx_DI_Config_SetModes(uint32_t slot, uint8_t start, uint8_t count, uint8_t buf[])
IOTHINX_ERR ioThinx_DI_GetCntValues(uint32_t slot, uint8_t start, uint8_t count, uint32_t buf[])
IOTHINX_ERR ioThinx_IO_Config_Reload(void)
IOTHINX_ERR ioThinx_DI_Config_SetCntTriggers(uint32_t slot, uint8_t start, uint8_t count, uint8_t buf[])
IOTHINX_ERR ioThinx_DI_Config_SetCntValues(uint32_t slot, uint8_t start, uint8_t count, uint32_t buf[])
IOTHINX_ERR ioThinx_IO_Client_Init(void)