uplink.h 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. #ifndef __UPLINK_H__
  2. #define __UPLINK_H__
  3. #include "stm32f10x.h"
  4. // 设备类型
  5. enum {
  6. DEVICE_GATEWAY = 0x0101, // 网关
  7. DEVICE_COLLECT = 0x0201, //采集器
  8. DEVICE_OILL = 0x0301, //油罐车
  9. DEVICE_LED = 0x0401, // 显示屏
  10. };
  11. #define GATEWAY_ID 0X01
  12. #define TAX_UPLINK_LEN 34
  13. #define TAX_UPLINK_TYPE 0X20 // 上行
  14. #define FIRST_TYPE_SYST 0x01 // 系统类
  15. #define FIRST_TYPE_STATUS 0x02 // 状态类
  16. #define FIRST_TYPE_DATA 0x03 //数据类
  17. #define FIRST_TYPE_TEST 0x04 // 产测类
  18. enum {
  19. SECOND_TYPE_DATA_TAX = 0x2001 , //报税口类
  20. SECOND_TYPE_DATA_LED = 0x2011, // 显示屏
  21. SECOND_TYPE_DATA_OIL = 0x2021, // 液位仪
  22. };
  23. // 系统类数据 0x01
  24. enum {
  25. COLL_DN_SYS_CMD1001 = 0x1001, // 升级下行
  26. GATEWAY_DN_SYS_CMD1003 = 0x1003, // 系统类,配置mqtt服务器
  27. COLL_DN_SYS_CMD1011 = 0x1011, //系统类 采集路由信息初始化下行
  28. COLL_DN_SYS_CMD1012 = 0x1012, // 系统类,刷新税控序列号
  29. COLL_DN_SYS_CMD1021 = 0x1021, // 系统类,系统重新启动
  30. OILL_DN_SYS_CMD1031 = 0x1031, // 系统类,油罐下行配置
  31. COLL_UP_SYS_CMD2001 = 0x2001, // 升级状态上行
  32. COLL_UP_SYS_CMD2011 = 0x2011, // 系统类0x2011数据上报
  33. };
  34. // 状态类信息 0x02
  35. enum {
  36. COLL_DN_STATUS_CMD1001 = 0x1001, // 状态类 固件信息下行
  37. COLL_UP_STATUS_CMD2001 = 0x2001, // 固件信息
  38. COLL_UP_STATUS_CMD2002 = 0x2002, // 状态信息上行
  39. };
  40. // 数据类 0x03
  41. enum {
  42. COLL_TAX_DA_CMD_UP = 0x2001, // 业务数据上报
  43. COLL_OIL_DATA_CMD1021 = 0x1021, // 油罐信息下行
  44. };
  45. /*业务数据上报服务器 0x2001*/
  46. typedef struct _uplink_tax
  47. {
  48. uint32_t gateway_id; //网关id
  49. uint32_t collect_id; //采集器id
  50. uint8_t tax_no; // 报税口编号
  51. uint8_t gun_no; // 枪号
  52. uint32_t seq_no; // 流水号
  53. uint32_t unit_price;//单价
  54. uint32_t oil_volume;//当次加油量
  55. uint32_t price;//当次金额
  56. uint64_t total_oil_volume; //总油量
  57. uint64_t total_price; //总金额
  58. }__attribute__((packed)) uplink_tax_t;
  59. /* 系统信息(0x01)上报 0x2011 指令*/
  60. typedef struct _syscmd_0x2011_{
  61. uint32_t gateway_sn; // 网关编号
  62. uint32_t coll_sn; // 采集器编号
  63. uint8_t tax_no; // 报税口编号
  64. char minor_num[10]; // 税控序列号
  65. uint8_t tax_factory; // 税控厂家
  66. uint8_t encrypt; // 加密状态
  67. uint8_t gun_num; // 枪的个数
  68. }__attribute__((packed)) syscmd0x2011;
  69. /* 系统升级状态信息(0x01)上报 0x2001 */
  70. typedef struct _syscmd_0x2001_{
  71. uint16_t targetType; // 设备类型
  72. uint32_t deviceSn; // 设备SN号
  73. uint16_t taskNo; // 任务号
  74. uint8_t status; // 当前状态
  75. }__attribute__((packed)) syscmd0x2001;
  76. /* 状态信息类0x02 上报 固件信息消息 0x2001 */
  77. typedef struct _status_cmd_0x2001_{
  78. uint32_t gateway_Sn; //网关编号
  79. uint16_t target_Type;//设备类型(0x0101:网关;0x0201;采集器:0x0301:液位仪采集器;0x0401:屏采集器)
  80. uint32_t sn ;//设备SN
  81. uint32_t bootloader_Version; //bootloader版本
  82. uint32_t app_Version;//APP版本
  83. uint32_t reset_Times;//复位次数
  84. uint8_t last_Reset_Type;//最后一次复位类型
  85. char Uuid[12];//UUID
  86. char Imei[15]; //IMEI
  87. char Iccid1[20];//ICCID1
  88. char Iccid2[20];//ICCID2
  89. char Iccid3[20];//ICCID3
  90. }__attribute__((packed)) statusCmd0x2001;
  91. /*状态信息类0x02 上报 状态信息0x2002*/
  92. typedef struct _status_cmd_0x2002_{
  93. uint32_t gateway_sn;// 网关编号
  94. uint16_t target_Type;//设备类型(0x0101:网关;0x0201;采集器:0x0301:液位仪采集器;0x0401:屏采集器)
  95. uint32_t sn; //编号
  96. uint32_t run_Time;//运行时常
  97. uint32_t voltage; // 电压
  98. uint32_t tempperature; // 温度
  99. uint8_t loraPaIndex; // lora信道的索引 用的为第几号信道
  100. uint16_t rssi_lora;//Lora信号强度(+1000)
  101. uint16_t loraSendNum; // lora发送包个数
  102. uint16_t loraRcvNum; // lora接收包个数
  103. uint16_t rssi_4G;//4G信号强度
  104. uint8_t status;//状态(0x00:离线;0x01:在线)
  105. uint8_t taxstatus[2]; // 两个报税口的状态(0x00:离线 0x01:在线)
  106. uint32_t reserver; // 预留
  107. }__attribute__((packed)) statusCmd0x2002;
  108. /* 液位仪数据类0x03, 上报 数据:0x2021 */
  109. typedef struct _oiltank_data_cmd_0x2021_{
  110. uint32_t sn;
  111. uint8_t frameNo;
  112. uint16_t len;
  113. uint8_t rcv_buf[1024];
  114. }__attribute__((packed)) oiltankDataCmd0x2021;
  115. extern int uplink_tax_comb(uint8_t *outdata, uint8_t *len, uint8_t node, uint8_t port, uint8_t gun, uint32_t seq_no);
  116. extern void uplink_tax_systemcmd_0x2011(uint8_t *outdata,uint8_t *len, uint8_t node,uint8_t port,uint8_t gun);
  117. extern void uplink_update_systemcmd_0x2001(uint8_t *outdata, uint8_t *len, uint16_t type, uint32_t sn, uint16_t taskNo, uint8_t status);
  118. extern void uplink_tax_statusmcmd_0x2001(uint8_t *outdata, uint8_t *len, uint16_t type, uint8_t index);
  119. extern void uplink_tax_statusmcmd_0x2002(uint8_t *outdata,uint8_t *len, uint16_t type,uint8_t index);
  120. #endif