Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: ICE-Application/src/Drivers/mod.h
- Revision:
- 2:02cb20446785
- Parent:
- 1:b2e90cda7a5a
diff -r b2e90cda7a5a -r 02cb20446785 ICE-Application/src/Drivers/mod.h
--- a/ICE-Application/src/Drivers/mod.h Tue Jan 24 19:06:45 2017 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,160 +0,0 @@
-#ifndef _MOD_H_
-#define _MOD_H_
-
-// -------------------------------------------------------------------------------------------------
-// globals
-
-#define MOD_DATA 4
-#define MOD_IREG 60
-#define MOD_BAUD 19200
-
-typedef struct word2byte { union
-{
- unsigned short int value;
- struct { unsigned char byte0; unsigned char byte1; };
-};}
- WORD2BYTE;
-
-typedef struct sint2byte { union
-{
- signed long int value;
- struct { unsigned short int word0; unsigned short int word1; };
- struct { unsigned char byte0; unsigned char byte1; unsigned char byte2; unsigned char byte3; };
-};}
- SINT2BYTE;
-
-typedef struct uint2byte { union
-{
- unsigned long int value;
- struct { unsigned short int word0; unsigned short int word1; };
- struct { unsigned char byte0; unsigned char byte1; unsigned char byte2; unsigned char byte3; };
-};}
- UINT2BYTE;
-
-typedef struct float2byte { union
-{
- float value;
- struct { unsigned short int word0; unsigned short int word1; };
- struct { unsigned char byte0; unsigned char byte1; unsigned char byte2; unsigned char byte3; };
-};}
- FLOAT2BYTE;
-
-typedef struct float2uint { union
-{
- float value;
- unsigned long int uint_value;
-};}
- FLOAT2UINT;
-
-
-extern unsigned short int mod_data[MOD_DATA];
-extern unsigned short int mod_ireg[MOD_IREG];
-
-extern int mod_verbose;
-
-// -------------------------------------------------------------------------------------------------
-// modbus standard communication structures: (from slave perspective)
-//
-// MOD_FUNC_GET_COIL (NBYT = total bytes of data transmitted)
-// MOD_FUNC_GET_DISC
-//
-// byte: 0 1 2 3 4 5 6 7
-// received: ADDR FUNC SREG-H SREG-L NREG-H NREG-L RCRC-L RCRC-H
-// transmit: ADDR FUNC NBYT DATA-H DATA-L TCRC-L TCRC-H NULL
-//
-// MOD_FUNC_GET_IREG (NBYT = total bytes of data transmitted)
-// MOD_FUNC_GET_HREG
-//
-// byte: 0 1 2 3 4 5 6 7
-// received: ADDR FUNC SREG-H SREG-L NREG-H NREG-L RCRC-L RCRC-H
-// transmit: ADDR FUNC NBYT DATA-H DATA-L TCRC-L TCRC-H NULL
-//
-// MOD_FUNC_SET_COIL
-//
-// byte: 0 1 2 3 4 5 6 7 8
-// received: ADDR FUNC SREG-H SREG-L DATA-H DATA-L RCRC-L RCRC-H
-// transmit: ADDR FUNC SREG-H SREG-L DATA-H DATA-L TCRC-L TCRC-H NULL
-//
-// MOD_FUNC_SET_COILS
-//
-// byte: 0 1 2 3 4 5 6 7 8 9 10
-// received: ADDR FUNC SREG-H SREG-L NREG-H NREG-L NBYT DATA-H DATA-L RCRC-L RCRC-H
-// transmit: ADDR FUNC SREG-H SREG-L NREG-H NREG-L TCRC-L TCRC-H NULL
-//
-// MOD_FUNC_SET_HREG
-//
-// byte: 0 1 2 3 4 5 6 7 8
-// received: ADDR FUNC SREG-H SREG-L DATA-H DATA-L RCRC-L RCRC-H
-// transmit: ADDR FUNC SREG-H SREG-L DATA-H DATA-L TCRC-L TCRC-H NULL
-//
-// MOD_FUNC_SET_HREGS
-//
-// byte: 0 1 2 3 4 5 6 7 8 9 10
-// received: ADDR FUNC SREG-H SREG-L NREG-H NREG-L NBYT DATA-H DATA-L RCRC-L RCRC-H
-// transmit: ADDR FUNC SREG-H SREG-L NREG-H NREG-L TCRC-L TCRC-H NULL
-//
-// response after error (EFUNC = FUNC + 0x80)
-//
-// byte: 0 1 2 3 4 5
-// transmit: ADDR EFUNC ERROR TCRC-L TCRC-H NULL
-//
-// -----------------------------------------------------------------------------
-// modbus definitions
-
-enum // function codes
-{
- MOD_FUNC_00,
- MOD_FUNC_GET_COIL, // 01: read coil status
- MOD_FUNC_GET_DISC, // 02: read discrete inputs
- MOD_FUNC_GET_HREG, // 03: read holding registers
- MOD_FUNC_GET_IREG, // 04: read input registers
- MOD_FUNC_SET_COIL, // 05: force single coil
- MOD_FUNC_SET_HREG, // 06: preset single register
- MOD_FUNC_07,
- MOD_FUNC_08,
- MOD_FUNC_09,
- MOD_FUNC_10,
- MOD_FUNC_11,
- MOD_FUNC_12,
- MOD_FUNC_13,
- MOD_FUNC_14,
- MOD_FUNC_SET_COILS, // 15: force multiple coils
- MOD_FUNC_SET_HREGS, // 16: preset multiple registers
- MOD_FUNC_NUM
-};
-
-enum // error codes ( * = used by Nubio )
-{
- MOD_ERROR_NONE,
- MOD_ERROR_ILL_FUNC, // 01: * slave received illegal function code
- MOD_ERROR_ILL_ADDR, // 02: * slave received illegal register address
- MOD_ERROR_ILL_DATA, // 03: * slave received illegal register value
- MOD_ERROR_SLAVE_FAIL, // 04: * slave device-specific failure
- MOD_ERROR_SLAVE_ACK, // 05: * slave ACK
- MOD_ERROR_SLAVE_BUSY, // 06: slave is busy
- MOD_ERROR_SLAVE_NACK, // 07: * slave NACK (Nubio returns this for CRC error)
- MOD_ERROR_SLAVE_PARITY, // 08: slave memory parity error
- MOD_ERROR_RX_TIMEOUT, // 09: master receive timeout
- MOD_ERROR_TX_TIMEOUT, // 10: master transmit timeout
- MOD_ERROR_CRC, // 11: master CRC error
- MOD_ERROR_NUM
-};
-
-// -------------------------------------------------------------------------------------------------
-// function prototypes
-
-void mod_init(void);
-void mod_clear(void);
-
-void mod_process(void);
-
-void mod_ireg_dump(void);
-
-unsigned short int mod_calc_crc(unsigned char *buffer, int length);
-
-int mod_read(int inp_addr, int inp_func, int inp_sreg, int inp_nreg, unsigned char *rd_buf);
-int mod_write(int inp_addr, int inp_func, int inp_sreg, int inp_nreg, unsigned char *xmt_buf);
-
-// -------------------------------------------------------------------------------------------------
-
-#endif // _MOD_H_