浏览代码

Private Funktionen ausgelagert.

Rind 5 年之前
父节点
当前提交
c236c1ca13
共有 4 个文件被更改,包括 82 次插入67 次删除
  1. 12 67
      gfamodbusrtuslv/gfambrtuslv.h
  2. 68 0
      gfamodbusrtuslv/gfambrtuslv_priv.h
  3. 1 0
      gfamodbusrtuslv/mbreq.c
  4. 1 0
      gfamodbusrtuslv/mbrtuslv.c

+ 12 - 67
gfamodbusrtuslv/gfambrtuslv.h

@@ -14,9 +14,12 @@ extern "C" {
 /////////////////////////////////////////////////////////////////////////////
 // mbrtuslv.h - Declarations:
 
-typedef void											*HMBRTUSLV;
+typedef void									*HMBRTUSLV;
 
 /////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+// Modbus Slave
 
 typedef enum _GFA_MODBUS_RTU_SLV_STATES
 {
@@ -34,25 +37,14 @@ typedef enum _GFA_MODBUS_RTU_SLV_STATES
 
 /////////////////////////////////////////////////////////////////////////////
 
-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 void (*PFN_PRE_READ_REGISTERS)	(uint8_t, uint16_t, uint16_t);
-typedef void (*PFN_POST_READ_REGISTERS)	(uint8_t, uint16_t, uint16_t);
-typedef void (*PFN_PRE_WRITE_REGISTERS)	(uint8_t, uint16_t, uint16_t);
-typedef void (*PFN_POST_WRITE_REGISTERS)(uint8_t, uint16_t, uint16_t);
-typedef void (*PFN_PRE_TRANSMIT)		(LPMODBUS_RTU_ADU);
-typedef void (*PFN_POST_TRANSMIT)		(LPMODBUS_RTU_ADU);
-typedef uint16_t (*PFN_MAP_REG_ADDR)	(uint16_t);
-typedef void (*PFN_SLAVE_STATE_CHANGED)	(GFA_MODBUS_RTU_SLV_STATES newState, GFA_MODBUS_RTU_SLV_STATES oldState);
+typedef void		(*PFN_PRE_READ_REGISTERS)	(uint8_t, uint16_t, uint16_t);
+typedef void		(*PFN_POST_READ_REGISTERS)	(uint8_t, uint16_t, uint16_t);
+typedef void		(*PFN_PRE_WRITE_REGISTERS)	(uint8_t, uint16_t, uint16_t);
+typedef void		(*PFN_POST_WRITE_REGISTERS)	(uint8_t, uint16_t, uint16_t);
+typedef void		(*PFN_PRE_TRANSMIT)			(LPMODBUS_RTU_ADU);
+typedef void		(*PFN_POST_TRANSMIT)		(LPMODBUS_RTU_ADU);
+typedef uint16_t	(*PFN_MAP_REG_ADDR)			(uint16_t);
+typedef void		(*PFN_SLAVE_STATE_CHANGED)	(GFA_MODBUS_RTU_SLV_STATES newState, GFA_MODBUS_RTU_SLV_STATES oldState);
 
 /////////////////////////////////////////////////////////////////////////////
 
@@ -92,58 +84,11 @@ typedef const GFA_MODBUS_RTU_SLAVE_PARAMETERS *LPCGFA_MODBUS_RTU_SLAVE_PARAMETER
 
 /////////////////////////////////////////////////////////////////////////////
 
-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;
-
-/////////////////////////////////////////////////////////////////////////////
-
 HMBRTUSLV	GfaModbusRTUSlvCreate(LPCGFA_MODBUS_RTU_SLAVE_PARAMETERS pslp);
 void		GfaModbusRTUSlvRelease(HMBRTUSLV hMbSlv);
 bool		GfaModbusRTUSlvStateMachine(HMBRTUSLV hMbSlv);
 bool		GfaModbusRTUSlvSetID(HMBRTUSLV hMbSlv, uint8_t newID);
 
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-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);
-bool		GfaModbusRequestVerifyCRC(const void *pData, size_t nCbData, const void *pCRC);
-void		GfaModbusRequestSetCRC(const void *pData, size_t nCbData, void *pCRC);
-
-/////////////////////////////////////////////////////////////////////////////
-
-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
 }

+ 68 - 0
gfamodbusrtuslv/gfambrtuslv_priv.h

@@ -0,0 +1,68 @@
+// 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);
+bool		GfaModbusRequestVerifyCRC(const void *pData, size_t nCbData, const void *pCRC);
+void		GfaModbusRequestSetCRC(const void *pData, size_t nCbData, void *pCRC);
+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_)

+ 1 - 0
gfamodbusrtuslv/mbreq.c

@@ -1,5 +1,6 @@
 #include <string.h>
 #include "gfambrtuslv.h"
+#include "gfambrtuslv_priv.h"
 #include "driverlib/sw_crc.h"
 
 /////////////////////////////////////////////////////////////////////////////

+ 1 - 0
gfamodbusrtuslv/mbrtuslv.c

@@ -1,6 +1,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include "gfambrtuslv.h"
+#include "gfambrtuslv_priv.h"
 #include "driverlib/sw_crc.h"
 #include "inc/hw_memmap.h"