123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- // gfambrtuslv_priv.h :
- //
- #if !defined(AGD_GFAMBRTUSLV_PRIV_H__E4B2991E_8ADE_482B_94E1_530CEB7E6595__INCLUDED_)
- #define AGD_GFAMBRTUSLV_PRIV_H__E4B2991E_8ADE_482B_94E1_530CEB7E6595__INCLUDED_
- #ifdef __cplusplus
- extern "C" {
- #endif // __cplusplus
- /////////////////////////////////////////////////////////////////////////////
- // gfambrtuslv_priv.h - Declarations:
- /////////////////////////////////////////////////////////////////////////////
- typedef struct _GFA_MODBUS_RTU_SLV_DIAGNOSIS
- {
- uint64_t nBusMsgCount; // Total bus message count
- uint64_t nSlvMsgCount; // Total slave message count
- uint32_t nCrcErrCount; // CRC errors
- uint32_t nExcErrCount; // Exception errors
- }GFA_MODBUS_RTU_SLV_DIAGNOSIS, *LPGFA_MODBUS_RTU_SLV_DIAGNOSIS;
- typedef const GFA_MODBUS_RTU_SLV_DIAGNOSIS *LPCGFA_MODBUS_RTU_SLV_DIAGNOSIS;
- /////////////////////////////////////////////////////////////////////////////
- typedef struct _GFA_MODBUS_RTU_SLAVE
- {
- uint8_t slaveID;
- uint8_t newSlaveID;
- uint16_t nSubFunc;
- HFIFO hFifoRX;
- HFIFO hFifoTX;
- size_t nCbToRead;
- size_t nCbToWrite;
- size_t nDataPtr;
- int nMaxReEnterSTM;
- bool bCRCOk;
- GFA_MODBUS_RTU_SLV_STATES state;
- GFA_MODBUS_RTU_SLV_STATES oldstate;
- GFA_MODBUS_REGISTER regMap;
- GFA_MODBUS_SLAVE_APP_INTERFACE appItf;
- GFA_MODBUS_RTU_SLV_DIAGNOSIS diag;
- MODBUS_RTU_ADU adu;
- }GFA_MODBUS_RTU_SLAVE, *LPGFA_MODBUS_RTU_SLAVE;
- typedef const GFA_MODBUS_RTU_SLAVE *LPCGFA_MODBUS_RTU_SLAVE;
- /////////////////////////////////////////////////////////////////////////////
- // Modbus request handling functions
- size_t GfaModbusRequestGetDataInfoLength(LPCGFA_MODBUS_RTU_SLAVE pSlv);
- size_t GfaModbusRequestGetDataPayloadLength(LPCGFA_MODBUS_RTU_SLAVE pSlv);
- bool GfaModbusRequestFunctionKnown(uint8_t func);
- bool GfaModbusRequestSubFunctionKnown(uint16_t subfunc);
- size_t GfaModbusRequestReadRegisters(uint8_t func, LPGFA_MODBUS_REGISTER pRegMap, LPGFA_MODBUS_SLAVE_APP_INTERFACE pAppItf, void *pBuf, uint8_t *pnCbWritten);
- size_t GfaModbusRequestWriteRegisters(uint8_t func, LPGFA_MODBUS_REGISTER pRegMap, LPGFA_MODBUS_SLAVE_APP_INTERFACE pAppItf, void *pBuf, uint8_t *pnCbWritten);
- size_t GfaModbusRequestWriteSingleRegister(uint8_t func, LPGFA_MODBUS_REGISTER pRegMap, LPGFA_MODBUS_SLAVE_APP_INTERFACE pAppItf, void *pBuf, uint8_t *pnCbWritten);
- size_t GfaModbusRequestDiagnostic(LPGFA_MODBUS_RTU_SLAVE pSlv, uint8_t *pnCbWritten);
- size_t GfaModbusRequestCreateExceptionResponse(LPMODBUS_RTU_PDU pPdu, uint8_t nExceptionCode);
- bool GfaModbusRequestHandler(LPGFA_MODBUS_RTU_SLAVE pSlv, size_t *pnCbData, bool *pbIsException);
- /////////////////////////////////////////////////////////////////////////////
- #ifdef __cplusplus
- }
- #endif // __cplusplus
- #endif // !defined(AGD_GFAMBRTUSLV_PRIV_H__E4B2991E_8ADE_482B_94E1_530CEB7E6595__INCLUDED_)
|