/**************************************************************/ /* Modbus/TCP head file */ /* */ /* Note: head file version is different to lib file version */ /* */ /**************************************************************/ #ifdef __cplusplus extern "C" { #endif //===============================================// // Prototype of functions // //===============================================// int InitGPRSModbus(unsigned char far *iPointer_DI, unsigned char far *iPointer_DO, int far *iPointer_AI, int far *iPointer_AO); /* step 1. declare 4 global arrays step 2. give the 4 array pointers to InitModbus. For example: unsinged char far Array_DI[100]; unsinged char far Array_DO[100]; int far Array_AI[100]; int far Array_AO[100]; void main(void) { InitModbus(Array_DI,Array_DO,Array_AI,Array_AO); //Giving initial values. Array_DI[0]=1; Array_DO[10]=0; Array_AI[5]=100; Array_AO[20]=-500; .... .... } */ int GPRSModbusTCP_Master2Slave(char *ModCMD, unsigned char cNetID, unsigned char cFunction, int iLocalMemoryBaseAddress, int iRemoteMemoryBaseAddress, int iIOCount); /* cNetID: 0~0xFF, the NetID (Station Number) of destination Modbus/Slave device. cFunction: 1 ==> Reads several DO from device, then puts to iMemory_DO. 2 ==> Reads several DI from device, then puts to iMemory_DI. 3 ==> Reads several AO from device, then puts to iMemory_AO. 4 ==> Reads several AI from device, then puts to iMemory_AI. 5 ==> Writes one DO from iMemory_DO to device. 6 ==> Writes one AO from iMemory_AO to device. 15 ==> Writes several DO from iMemory_DO to device. 16 ==> Writes several AO from iMemory_AO to device. iLocalMemoryBaseAddress: internal register base address that you want to deal. iRemoteMemoryBaseAddress: register base address of device that you want to deal. iIOCount: count of coils or registers that you want to deal. return: 0: No Error. >80: Exception Code */ int GPRSModbusTCP_Receive(char *cInBuf, int iLength); /* return: 0: No Error. >80: Exception Code */ #ifdef __cplusplus } #endif