| DIO Commands |
//define DIO Packet format |
|
//Used for Command and ACK packet |
|
typedef struct _DIO_Packet_Struct { |
|
DIOHeaderStructheader; |
|
char data[255]; |
|
} DIOPacketStruct, *pDIOPacketStruct; |
|
Command Code Usage
1.Reading Single DIO Parameters:
Command code: 1(hex)
Version: 2(hex)
Command Status: doesn’t matter
Length of data: 1(hex), represents one byte.
data[0]: Fill in the number of the DIO you wish to access. The DIO number starts from 0(hex). Return:
Command Status: Check the Command Status code on the previous page.
Length of data: 3(hex). Must be 3 bytes of return code in this mode.
data[0]: The number of the DIO you wish to access.
data[1]: DIO mode(hex), 0 for IN, 1 for OUT
data[2]: DIO status(hex), 0 for LOW, 1 for HIGH
C code example:
BOOL ReadSingleDIO(int port, int *mode, int *status)
{
DIOPacketStruct packet;
packet.header.command = 1; | // read single DIO command |
packet.header.version = 2; | // DIO protocol version |
packet.header.length = 1; | // data length |
packet.data[0] = (char)port; | // Number of the DIO |
send(SocketFd, (char *)&packet, sizeof(DIOHeaderStruct)+1, 0); //Send TCP Packet
//Process the returned data here. return TRUE;
}
2.Writing a Single DIO Parameters:
Command code: 2(hex)
Version: 2(hex)
Command Status: doesn’t matter
Length of data: 3(hex); represents three bytes.
data[0]: The number of the DIO you wish to access.
data[1]: DIO mode(hex), 0 for IN, 1 for OUT
data[2]: DIO status(hex), 0 for LOW, 1 for HIGH Return:
Command Status: Check the Command Status code on the previous page.
Length of data: 3(hex). Must be 3 bytes of return code in this mode.
data[0]: The number of the DIO you wish to access.
data[1]: DIO mode(hex), 0 for IN, 1 for OUT
data[2]: DIO status(hex), 0 for LOW, 1 for HIGH