Modbus.h 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #ifndef __MODBUS_H
  2. #define __MODBUS_H
  3. /***********************************************************************************/
  4. #include "includes.h"
  5. #define MODBUS_REG_NUM_MAX 32
  6. #define HOLDINGREG 0x03 //读取寄存器
  7. #define WRITESINGLEREG 0x06 //写寄存器
  8. #define BROADCAST 0x09 //广播
  9. typedef struct STU_RGB{
  10. unsigned char R; //0--未开 1--打开
  11. unsigned char B;
  12. unsigned char G;
  13. }__attribute__((packed)) STU_RGB;
  14. typedef struct SUT_DEVICE_READ{
  15. unsigned char Addr;//必须为非0
  16. unsigned char Error;//故障码 0--正常
  17. unsigned char RID[8]; //红外状态
  18. }__attribute__((packed)) SUT_DEVICE_READ; //2+8
  19. extern SUT_DEVICE_READ sut_device_read[MODBUS_REG_NUM_MAX];
  20. typedef struct SUT_DEVICE_WRITE{
  21. unsigned char Addr;//必须为非0
  22. STU_RGB STU_RGB[8];//
  23. }__attribute__((packed)) SUT_DEVICE_WRITE; //25
  24. extern SUT_DEVICE_WRITE sut_device_write;
  25. //下行设置
  26. typedef struct SUT_DOWN{
  27. // unsigned long PSN;//
  28. // unsigned long AKey;//根据PSN和HWID计算得到
  29. unsigned char Led[3];
  30. unsigned char Beep;//0--不响 1--长鸣 2--循环鸣
  31. SUT_DEVICE_WRITE sut_device_write[32]; //32*(8*3+1)
  32. }__attribute__((packed)) SUT_DOWN;
  33. extern SUT_DOWN Device_Down;
  34. //上行读取上传
  35. typedef struct SUT_UP{
  36. unsigned long AKey;///
  37. unsigned char Error;//故障码 0-正常 非0异常
  38. unsigned char Status;//状态码 0--初始化中 1--正常工作
  39. unsigned char Beep;//0--不响 1--长鸣 2--循环鸣
  40. SUT_DEVICE_READ Devices[32];
  41. }__attribute__((packed)) SUT_UP;
  42. extern SUT_UP Device_Up;
  43. typedef struct{
  44. unsigned char Logined;//登陆状态 0--未登录 1-登录成功
  45. unsigned char OnceFlag;
  46. unsigned char SetSlaveing;
  47. unsigned char Resend;
  48. }SUT_SYS_STATUS;
  49. extern SUT_SYS_STATUS sut_sys_status;
  50. //extern char SendData[850];
  51. extern unsigned char g_ucModbusRefreshEN;
  52. extern unsigned char g_ucModbusRefreshSHUTDOWN;
  53. extern unsigned short g_ucRegNumCount;
  54. extern unsigned short g_ucModbusRefreshTimeOut;
  55. extern unsigned char device_vailable[MODBUS_REG_NUM_MAX];
  56. extern unsigned char SelfChek;
  57. void ModbusCmdReadOneValue(unsigned short addr);
  58. int ProcessSetControl();
  59. void Reg_Init();
  60. int ModbusRecvProcess(unsigned char *pData);
  61. void ModbusRefreshValue(void);
  62. /***********************************************************************************/
  63. #endif