You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.5 KiB
C

#ifndef __MODBUS_H__
#define __MODBUS_H__
/* Includes ------------------------------------------------------------------*/
/* Define --------------------------------------------------------------------*/
/*Read multiple registers*/
/*Read a single register*/
/*function commond*/
#define MB_FUNC_MULIT_RD 0x03
#define MB_FUNC_SINGLE_WR 0x06
#define MB_FUNC_MULIT_WR 0x10
#define MB_FUNC_FILE_RD 0x14
/*factory address */
#define MB_FAC_PARAM 0x0
#define MB_CALI_PARAM 0x10
/*user parameter address */
#define MB_USER_PARAM 0x1000
/*measurement parameter address */
#define MB_MEAS_PARAM 0x2000
#define MB_MEAS_VALUE 0x2010
/* Exported types ------------------------------------------------------------*/
typedef struct
{
unsigned char slave;
unsigned char cmd;
} modbus_head_t;
/* Exported macro ------------------------------------------------------------*/
/* Extern global variables ---------------------------------------------------*/
/* Extern functions ----------------------------------------------------------*/
extern int _modbus_packet(unsigned char *pkt, unsigned char cmd, unsigned short regAddr, unsigned short regCnt, unsigned char data[]);
extern int _modbus_write_head(unsigned char *pkt, unsigned char cmd, unsigned short regAddr, unsigned short regCnt);
extern void _modbus_add_float(unsigned char *hex,float val);
extern void _modbus_checksum(unsigned char *buf, int len);
extern int _modbus_verify_crc(unsigned char *buf, int len);
#endif