| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- #ifndef __MODBUS_H
- #define __MODBUS_H
- /***********************************************************************************/
- #include "includes.h"
- #define MODBUS_REG_NUM_MAX 32
- #define HOLDINGREG 0x03 //读取寄存器
- #define WRITESINGLEREG 0x06 //写寄存器
- #define BROADCAST 0x09 //广播
- typedef struct STU_RGB{
- unsigned char R; //0--未开 1--打开
- unsigned char B;
- unsigned char G;
- }__attribute__((packed)) STU_RGB;
- typedef struct SUT_DEVICE_READ{
- unsigned char Addr;//必须为非0
- unsigned char Error;//故障码 0--正常
- unsigned char RID[8]; //红外状态
- }__attribute__((packed)) SUT_DEVICE_READ; //2+8
- extern SUT_DEVICE_READ sut_device_read[MODBUS_REG_NUM_MAX];
- typedef struct SUT_DEVICE_WRITE{
-
- unsigned char Addr;//必须为非0
-
- STU_RGB STU_RGB[8];//
-
- }__attribute__((packed)) SUT_DEVICE_WRITE; //25
- extern SUT_DEVICE_WRITE sut_device_write;
- //下行设置
- typedef struct SUT_DOWN{
- // unsigned long PSN;//
- // unsigned long AKey;//根据PSN和HWID计算得到
- unsigned char Led[3];
- unsigned char Beep;//0--不响 1--长鸣 2--循环鸣
- SUT_DEVICE_WRITE sut_device_write[32]; //32*(8*3+1)
-
- }__attribute__((packed)) SUT_DOWN;
- extern SUT_DOWN Device_Down;
- //上行读取上传
- typedef struct SUT_UP{
- unsigned long AKey;///
- unsigned char Error;//故障码 0-正常 非0异常
- unsigned char Status;//状态码 0--初始化中 1--正常工作
- unsigned char Beep;//0--不响 1--长鸣 2--循环鸣
- SUT_DEVICE_READ Devices[32];
- }__attribute__((packed)) SUT_UP;
- extern SUT_UP Device_Up;
- typedef struct{
-
- unsigned char Logined;//登陆状态 0--未登录 1-登录成功
- unsigned char OnceFlag;
- unsigned char SetSlaveing;
- unsigned char Resend;
-
- }SUT_SYS_STATUS;
- extern SUT_SYS_STATUS sut_sys_status;
- //extern char SendData[850];
- extern unsigned char g_ucModbusRefreshEN;
- extern unsigned char g_ucModbusRefreshSHUTDOWN;
- extern unsigned short g_ucRegNumCount;
- extern unsigned short g_ucModbusRefreshTimeOut;
- extern unsigned char device_vailable[MODBUS_REG_NUM_MAX];
- extern unsigned char SelfChek;
- void ModbusCmdReadOneValue(unsigned short addr);
- int ProcessSetControl();
- void Reg_Init();
- int ModbusRecvProcess(unsigned char *pData);
- void ModbusRefreshValue(void);
- /***********************************************************************************/
- #endif
|