User`s manual
Table Of Contents
- 1. Introduction
- 2. Getting Started
- Powering on the W406-LX
- Connecting the W406-LX to a PC
- Configuring the Ethernet Interface
- USB Port for Expansion
- SD Socket for Storage Expansion
- Setting Up the Wireless Module
- Configuring the SIM Card
- Entering the PIN Code
- Verifying the SIM Card Status
- Enabling or Disabling the PIN Code Authentication
- Changing the PIN Code
- Unlocking the SIM Card
- Connecting to the Internet
- Reconnecting to the Internet
- Disconnecting from the Internet
- Detecting an Internet Connection Error
- Sending and Reading an SMS Message
- Deleting an SMS Message
- Test Program—Developing Hello.c
- 3. Managing Embedded Linux
- 4. Managing Communications
- 5. Development Tool Chains
- 6. Programmer’s Guide
- 7. Software Lock
- A. System Commands

W406-LX Linux User’s Manual Programmer’s Guide
6-5
Digital I/O
Digital Output channels can be set to high or low. The channels are controlled by the function call
set_dout_state( ). The digital input channels can be used to detect the state change of the digital
input signal. The DI channels can also be used to detect whether or not the state of a digital signal
changes during a fixed period of time. This can be done by the function call, set_din_event( ).
Moxa provides 5 function calls to handle the digital I/O state change and event handling.
Application Programming Interface
Return error code definitions:
#define DIO_ERROR_PORT -1 // no such port
#define DIO_ERROR_MODE -2 // no such mode or state
#define DIO_ERROR_CONTROL -3 // open or ioctl fail
#define DIO_ERROR_DURATION -4 // The value of duration is not 0 or not in the range, 40
<= duration <= 3600000 milliseconds (1 hour)
#define DIO_ERROR_DURATION_20MS -5 // The value of duration must be a multiple of 20
ms
#define DIO_OK 0
The definition for DIN and DOUT:
#define DIO_HIGH 1
#define DIO_LOW 0
int set_dout_state(int doport, int state)
Description: To set the DOUT port to high or low state.
Input: int doport - which DOUT port you want to set. Port starts from 0 to 3.
int state - to set high or low state; DIO_HIGH (1) for high, DIO_LOW (0) for low.
Output: none.
Return: reference the error code.
int get_din_state(int diport, int *state)
Description: To get the DIN port state.
Input: int diport - get the current state of which DIN port. Port numbering is from 0 to 3.
int *state - save the current state.
Output: state - DIO_HIGH (1) for high, DIO_LOW (0) for low.
Return: reference the error code.
int get_dout_state(int doport, int *state)
Description: To get the DOUT port state.
Input: int doport - get the current state of which DOUT port.
int *state - save the current state.
Output: state - DIO_HIGH (1) for high, DIO_LOW (0) for low.
Return: reference the error code.