User`s manual

UC-8410/8416/8418/8430 Programmer's Guide
5-10
int get_din_event(int diport, int *mode, long int *duration)
Description: To retrieve the DIN event configuration, including mode
(DIN_EVENT_HIGH_TO_LOW or DIN_EVENT_LOW_TO_HIGH), and the value of duration.
Input:
int diport - which DIN port you want to retrieve.
- The port whose din event setting we wish to retrieve
int *mode - save which event is set.
unsigned long *duration - the duration of the DIN port is kept in high or low state.
- return to the current duration value of diport
Output:
mode DIN_EVENT_HIGH_TO_LOW
(1): from high to low
DIN_EVENT_LOW_TO_HIGH(0): from low to high
DIN_EVENT_CLEAR(-1): clear this event
duration The value of duration should be 0 or 40 <= duration
<= 3600000 milliseconds.
Return: reference the error code.
Special Note
Do not forget to link to the library libmoxalib.a for DI/DO programming, and also include the header file
moxadevice.h. The DI/DO library only can be used by one program at a time.
Examples
Example 1
File Name: tdio.c
Description: The program indicates to connect DO1 to DI1, change the digital output state to high or low by
manual input, and then detect and count the state changed events from DI1.
#include <stdio.h>
#include <stdlib.h>
#include <moxadevice.h>
#include <fcntl.h>
#ifdef DEBUG
#define dbg_printf(x...) printf(x)
#else
#define dbg_printf(x...)
#endif
#define MIN_DURATION 40
static char *DataString[2]={“Low “, “High “};
static void hightolowevent(int diport)
{
printf(“\nDIN port %d high to low.\n”, diport);
}
static void lowtohighevent(int diport)
{
printf(“\nDIN port %d low to high.\n”, diport);
}
int main(int argc, char * argv[])
{
int i, j, state, retval;
unsigned long duration;
while( 1 ) {