671 lines
27 KiB
C
671 lines
27 KiB
C
#ifndef UWATER_FRAME_FUNC_REPLAY_NB_H
|
|
#define UWATER_FRAME_FUNC_REPLAY_NB_H
|
|
|
|
#include "type.h"
|
|
|
|
//////////////////////////////////////////积成规约控制字/////////////////////////////////////////////////////////
|
|
//写温度系数//CRC
|
|
#define FM_SET_TEMPERATURECOEFFICIENT_ARGUMENT_CTRL 0x45
|
|
#define FM_SET_TEMPERATURECOEFFICIENT_REPLY_CTRL 0xB5
|
|
#define FM_SET_TEMPERATURECOEFFICIENT_DI0 0x35
|
|
#define FM_SET_TEMPERATURECOEFFICIENT_DI1 0xA0
|
|
|
|
//写流量系数
|
|
#define FM_SET_FLOWCOEFFICIENT_ARGUMENT_CTRL 0x46
|
|
#define FM_SET_FLOWCOEFFICIENT_REPLY_CTRL 0xB6
|
|
#define FM_SET_FLOWCOEFFICIENT_DI0 0x36
|
|
#define FM_SET_FLOWCOEFFICIENT_DI1 0xA0
|
|
|
|
//启用关闭检定或红外功能//CRC
|
|
#define FM_SWITCH_VERIFICATION_OR_INFRARED_ARGUMENT_CTRL 0xBA
|
|
#define FM_SWITCH_VERIFICATION_OR_INFRARED_REPLY_CTRL 0xBB
|
|
#define FM_SWITCH_VERIFICATION_OR_INFRARED_DI0 0x3B
|
|
#define FM_SWITCH_VERIFICATION_OR_INFRARED_DI1 0xA0
|
|
|
|
//加密读表数据//CRC和无磁兼容
|
|
#define FM_ENC_READ_DATA_ARGUMENT_CTRL 0x01
|
|
#define FM_ENC_READ_DATA_REPLY_CTRL 0x81
|
|
#define FM_ENC_READ_DATA_DI0 0x1F
|
|
#define FM_ENC_READ_DATA_DI1 0x90
|
|
|
|
//读表地址
|
|
#define FM_READ_ADDR_ARGUMENT_CTRL 0x03
|
|
#define FM_READ_ADDR_REPLY_CTRL 0x83
|
|
#define FM_READ_ADDR_DI0 0x0A
|
|
#define FM_READ_ADDR_DI1 0x81
|
|
|
|
//阀门控制
|
|
#define VALVE_CONTROL_CTRL 0x04
|
|
#define ACK_VALVE_CONTROL_CTRL 0x84
|
|
#define VALVE_CONTROL_DATA_ID0 0x17
|
|
#define VALVE_CONTROL_DATA_ID1 0xA0
|
|
|
|
//读取软件版本号//CS和无磁兼容
|
|
#define FM_READ_SWVERSION_ARGUMENT_CTRL 0x05
|
|
#define FM_READ_SWVERSION_REPLY_CTRL 0x85
|
|
#define FM_READ_SWVERSION_DI0 0x20
|
|
#define FM_READ_SWVERSION_DI1 0xA0
|
|
|
|
//读取物理地址//CRC
|
|
#define FM_READ_MAC_ARGUMENT_CTRL 0x11
|
|
#define FM_READ_MAC_REPLY_CTRL 0x91
|
|
#define FM_READ_MAC_DI0 0x1D
|
|
#define FM_READ_MAC_DI1 0xA0
|
|
|
|
//请求写表地址控制码
|
|
#define FM_ENC_SET_ADDR_ARGUMENT_CTRL 0x15
|
|
#define FM_ENC_SET_ADDR_REPLY_CTRL 0x95
|
|
#define FM_ENC_SET_ADDR_DI0 0x18
|
|
#define FM_ENC_SET_ADDR_DI1 0xA0
|
|
|
|
//请求写初值控制码
|
|
#define FM_ENC_WRITE_INITVALUE_ARGUMENT_CTRL 0x16
|
|
#define FM_ENC_WRITE_INITVALUE_REPLY_CTRL 0x96
|
|
#define FM_ENC_WRITE_INITVALUE_DI0 0x16
|
|
#define FM_ENC_WRITE_INITVALUE_DI1 0xA0
|
|
//配置功能
|
|
#define FM_CFG_FUNCTIONCFG_ARGUMENT_CTRL 0x53
|
|
#define FM_CFG_FUNCTIONCFG_REPLY_CTRL 0xC3
|
|
#define FM_CFG_FUNCTIONCFG_DI0 0x41
|
|
#define FM_CFG_FUNCTIONCFG_DI1 0xA0
|
|
//校时
|
|
#define FM_CALIBRATE_TIME_ARGUMENT_CTRL 0x22
|
|
#define FM_CALIBRATE_TIME_REPLY_CTRL 0xA2
|
|
#define FM_CALIBRATE_TIME_DI0 0x32
|
|
#define FM_CALIBRATE_TIME_DI1 0xA0
|
|
|
|
//读出厂序列号//CS和无磁兼容
|
|
#define FM_READ_SERIALNUM_ARGUMENT_CTRL 0x31
|
|
#define FM_READ_SERIALNUM_REPLY_CTRL 0xE1
|
|
#define FM_READ_SERIALNUM_DI0 0x01
|
|
#define FM_READ_SERIALNUM_DI1 0x89
|
|
|
|
//读温度系数//CS
|
|
#define FM_READ_TEMPERATURECOEFFICIENT_ARGUMENT_CTRL 0x3A
|
|
#define FM_READ_TEMPERATURECOEFFICIENT_REPLY_CTRL 0xBA
|
|
#define FM_READ_TEMPERATURECOEFFICIENT_DI0 0x3A
|
|
#define FM_READ_TEMPERATURECOEFFICIENT_DI1 0xA0
|
|
|
|
//清表数据//CRC
|
|
#define FM_CLEAR_METERDATA_ARGUMENT_CTRL 0x47
|
|
#define FM_CLEAR_METERDATA_REPLY_CTRL 0xB7
|
|
#define FM_CLEAR_METERDATA_DI0 0x37
|
|
#define FM_CLEAR_METERDATA_DI1 0xA0
|
|
|
|
//读流量系数//CS
|
|
#define FM_READ_FLOWCOEFFICIENT_ARGUMENT_CTRL 0x48
|
|
#define FM_READ_FLOWCOEFFICIENT_REPLY_CTRL 0xB8
|
|
#define FM_READ_FLOWCOEFFICIENT_DI0 0x38
|
|
#define FM_READ_FLOWCOEFFICIENT_DI1 0xA0
|
|
|
|
//设置为检定状态//CRC
|
|
#define FM_SET_VERIFICATIONSTATE_ARGUMENT_CTRL 0x49
|
|
#define FM_SET_VERIFICATIONSTATE_REPLY_CTRL 0xB9
|
|
#define FM_SET_VERIFICATIONSTATE_DI0 0x39
|
|
#define FM_SET_VERIFICATIONSTATE_DI1 0xA0
|
|
#define FM_SET_VERIFICATIONSTATE_TOOL_DI1 0xA1 //脉冲检表工装进检定
|
|
|
|
//读检定数据//CS
|
|
#define FM_READ_VERIFICATIONDATA_ARGUMENT_CTRL 0x4C
|
|
#define FM_READ_VERIFICATIONDATA_REPLY_CTRL 0xBC
|
|
#define FM_READ_VERIFICATIONDATA_DI0 0x3C
|
|
#define FM_READ_VERIFICATIONDATA_DI1 0xA0
|
|
#define FM_READ_VERIFICATIONDATA_TOOL_DI1 0xA1
|
|
|
|
//读瞬时流量和温度//CS
|
|
#define FM_READ_INSTANTANEOUSFLOW_AND_TEMPERATURE_ARGUMENT_CTRL 0x4F
|
|
#define FM_READ_INSTANTANEOUSFLOW_AND_TEMPERATURE_REPLY_CTRL 0xBF
|
|
#define FM_READ_INSTANTANEOUSFLOW_AND_TEMPERATURE_DI0 0x3F
|
|
#define FM_READ_INSTANTANEOUSFLOW_AND_TEMPERATURE_DI1 0xA0
|
|
|
|
//启动停止测试(只适用于检定状态)
|
|
#define FM_START_OR_STOP_TEST_ARGUMENT_CTRL 0x51
|
|
#define FM_START_OR_STOP_TEST_REPLY_CTRL 0xC1
|
|
#define FM_START_OR_STOP_TEST_DI0 0x3F
|
|
#define FM_START_OR_STOP_TEST_DI1 0xA0
|
|
|
|
//(清)出厂启用
|
|
#define FM_START_OR_CLEAR_USING_ARGUMENT_CTRL 0x54
|
|
#define FM_START_OR_CLEAR_USING_REPLY_CTRL 0xC4
|
|
#define FM_START_OR_CLEAR_USING_DI0 0x42
|
|
#define FM_START_OR_CLEAR_USING_DI1 0xA0
|
|
|
|
//读配置功能
|
|
#define FM_RD_FUNCTIONCFG_ARGUMENT_CTRL 0x58
|
|
#define FM_RD_FUNCTIONCFG_REPLY_CTRL 0xB3
|
|
#define FM_RD_FUNCTIONCFG_DI0 0x41
|
|
#define FM_RD_FUNCTIONCFG_DI1 0xA0
|
|
|
|
//RTCC校准
|
|
#define FM_RTC_CALIBTATION_ARGUMENT_CTRL 0x55
|
|
#define FM_RTC_CALIBTATION_REPLY_CTRL 0xC5
|
|
#define FM_RTC_CALIBTATION_DI0 0x43
|
|
#define FM_RTC_CALIBTATION_DI1 0xA0
|
|
|
|
//进入低功耗(测试规约)
|
|
#define FM_ENTER_LOWPOWER_ARGUMENT_CTRL 0x56
|
|
#define FM_ENTER_LOWPOWER_REPLY_CTRL 0xC6
|
|
#define FM_ENTER_LOWPOWER_DI0 0x44
|
|
#define FM_ENTER_LOWPOWER_DI1 0xA0
|
|
|
|
//退出检定状态//CRC
|
|
#define FM_OUT_VERIFICATIONSTATE_ARGUMENT_CTRL 0x57
|
|
#define FM_OUT_VERIFICATIONSTATE_REPLY_CTRL 0xC7
|
|
#define FM_OUT_VERIFICATIONSTATE_DI0 0x45
|
|
#define FM_OUT_VERIFICATIONSTATE_DI1 0xA0
|
|
|
|
//设置使动流量
|
|
#define FM_SET_START_FLOW_CTRL 0x62
|
|
#define FM_SET_START_FLOW_REPLY_CTRL 0xD6
|
|
#define FM_SET_START_FLOW_DI0 0x56
|
|
#define FM_SET_START_FLOW_DI1 0x31
|
|
//读取使动流量
|
|
#define FM_READ_START_FLOW_CTRL 0x63
|
|
#define FM_READ_START_FLOW_REPLY_CTRL 0xD7
|
|
#define FM_READ_START_FLOW_DI0 0x57
|
|
#define FM_READ_START_FLOW_DI1 0x32
|
|
|
|
//设置逆流计量开关
|
|
#define FM_SET_COUNTER_CURRENT_CTRL 0x66
|
|
#define FM_SET_COUNTER_CURRENT_REPLY_CTRL 0xCB
|
|
#define FM_SET_COUNTER_CURRENT_CTRL_ID0 0x42
|
|
#define FM_SET_COUNTER_CURRENT_CTRL_ID1 0x33
|
|
|
|
//读取逆流计量开关
|
|
#define FM_READ_COUNTER_CURRENT_CTRL 0x67
|
|
#define FM_READ_COUNTER_CURRENT_REPLY_CTRL 0xCC
|
|
#define FM_READ_COUNTER_CURRENT_CTRL_ID0 0x42
|
|
#define FM_READ_COUNTER_CURRENT_CTRL_ID1 0x34
|
|
|
|
//设置零流量校准开关
|
|
#define FM_SET_DIFTOF_CALIBRATION_CTRL 0x68
|
|
#define FM_SET_DIFTOF_CALIBRATION_REPLY_CTRL 0xD0
|
|
#define FM_SET_DIFTOF_CALIBRATION_CTRL_ID0 0x4A
|
|
#define FM_SET_DIFTOF_CALIBRATION_CTRL_ID1 0x36
|
|
|
|
//硬件自检测
|
|
#define FM_TEST_SLEF_ARGUMENT_CTRL 0xCF
|
|
#define FM_TEST_SLEF_REPLY_CTRL 0xDF
|
|
#define FM_TEST_SLEF_DI0 0x01
|
|
#define FM_TEST_SLEF_DI1 0x30
|
|
|
|
/*NB新增通信规约*/
|
|
//深水读取历史数据
|
|
#define SS_READ_HIS_CTRL 0x27
|
|
#define SS_ACK_READ_HIS_CTRL 0xa7
|
|
#define SS_READ_HIS_CTRL_ID0 0x35
|
|
#define SS_READ_HIS_CTRL_ID1 0xA0
|
|
|
|
#define QZ_READ_HIS_MONTH_CTRL_ID1 0x30 //月冻结数据
|
|
#define QZ_READ_HIS_DAILY_CTRL_ID1 0x31 //日冻结信息
|
|
|
|
//查询校准结果
|
|
#define CHECK_CALIBRATION_RESULT_CTRL 0x32
|
|
#define ACK_CHECK_CALIBRATION_RESULT_CTRL 0xA2
|
|
#define CHECK_CALIBRATION_RESULT_ID0 0x3A
|
|
#define CHECK_CALIBRATION_RESULT_ID1 0xA0
|
|
|
|
//远程升级_旧规约
|
|
#define FM_BOOTLOADER_ARGUMENT_CTRL 0x44
|
|
#define FM_BOOTLOADER_REPLY_CTRL 0xB4
|
|
#define FM_BOOTLOADER_DI0 0x04
|
|
#define FM_BOOTLOADER_DI1 0xA1
|
|
|
|
//远程升级_新规约
|
|
#define FM_BOOTLOADER_NEW_ARGUMENT_CTRL 0x6E
|
|
#define FM_BOOTLOADER_NEW_REPLY_CTRL 0xDE
|
|
#define FM_BOOTLOADER_NEW_DI0 0x2D
|
|
#define FM_BOOTLOADER_NEW_DI1 0x20
|
|
|
|
//读写阀控参数 控制字和升级规约相同
|
|
#define ACK_SET_RD_VALVE_PARA2_CTRL 0xF6
|
|
#define SET_RD_VALVE_PARA2_CTRL_DI0 0x08
|
|
#define SET_RD_VALVE_PARA2_CTRL_DI1 0x10
|
|
|
|
//读取IP和端口号
|
|
#define READ_IP_PORT_CTRL 0x4A
|
|
#define ACK_READ_IP_PORT_CTRL 0xBA
|
|
#define READ_IP_PORT_DATA_ID0 0x0A
|
|
#define READ_IP_PORT_DATA_ID1 0xA1
|
|
|
|
//写IP和端口号控制码
|
|
#define WRITE_IP_PORT_CTRL 0x4B
|
|
#define ACK_WRTIE_IP_PORT_CTRL 0xBB
|
|
#define WRITE_IP_PORT_DATA_ID0 0x0B
|
|
#define WRITE_IP_PORT_DATA_ID1 0xA1
|
|
|
|
//设置为全显状态
|
|
#define SS_SET_LCD_DISPLAY_CTRL 0x61
|
|
#define SS_ACK_SET_LCD_DISPLAY_CTRL 0xC8
|
|
#define SS_SET_LCD_DISPLAY_CTRL_ID0 0x46
|
|
#define SS_SET_LCD_DISPLAY_CTRL_ID1 0xA0
|
|
|
|
//深水上传数据报文
|
|
#define SS_UPLOAD_CTRL 0x67
|
|
#define SS_ACK_UPLOAD_CTRL 0xD6
|
|
#define SS_UPLOAD_CTRL_ID0 0x43
|
|
#define SS_UPLOAD_CTRL_ID1 0xA1
|
|
#define SS_UPLOAD_CTRL_UDP_ID0 0x31 //UDP上报数据数据标识
|
|
//短帧上报数据
|
|
#define SHORT_UPLOAD_CTRL 0x9A
|
|
#define SHORT_ACK_UPLOAD_CTRL 0xEF
|
|
#define SHORT_UPLOAD_CTRL_ID0 0x02
|
|
#define SHORT_UPLOAD_CTRL_ID1 0x10
|
|
|
|
//设置APN
|
|
#define SS_SET_APN_CTRL 0x69
|
|
#define SS_ACK_SET_APN_CTRL 0xD8
|
|
#define SS_SET_APN_CTRL_ID0 0x45
|
|
#define SS_SET_APN_CTRL_ID1 0xA1
|
|
|
|
//读取APN
|
|
#define SS_RD_APN_CTRL 0x70
|
|
#define SS_ACK_RDT_APN_CTRL 0xD9
|
|
#define SS_RD_APN_CTRL_ID0 0x46
|
|
#define SS_RD_APN_CTRL_ID1 0xA1
|
|
|
|
//深水统一设置参数
|
|
#define SS_UNIFIED_SETTINGS_CTRL 0x71
|
|
#define SS_ACK_UNIFIED_SETTINGS_CTRL 0xE9
|
|
#define SS_UNIFIED_SETTINGS_CTRL_ID0 0x56
|
|
#define SS_UNIFIED_SETTINGS_CTRL_ID1 0xa1
|
|
|
|
//深水设置大流量报警门限
|
|
#define SS_SET_THRESHOLD_CTRL 0x72
|
|
#define SS_ACK_SET_THRESHOLD_CTRL 0xda
|
|
#define SS_SET_THRESHOLD_CTRL_ID0 0x47
|
|
#define SS_SET_THRESHOLD_CTRL_ID1 0xa1
|
|
|
|
//深水读取大流量报警门限
|
|
#define SS_READ_THRESHOLD_CTRL 0x73
|
|
#define SS_ACK_READ_THRESHOLD_CTRL 0xdb
|
|
#define SS_READ_THRESHOLD_CTRL_ID0 0x48
|
|
#define SS_READ_THRESHOLD_CTRL_ID1 0xa1
|
|
|
|
//深水设置上报起始时间、结束时间
|
|
#define SS_SET_START_END_CTRL 0x74
|
|
#define SS_ACK_SET_START_END_CTRL 0xdc
|
|
#define SS_SET_START_END_CTRL_ID0 0x49
|
|
#define SS_SET_START_END_CTRL_ID1 0xa1
|
|
|
|
//深水读取上报起始时间、结束时间
|
|
#define SS_READ_START_END_CTRL 0x75
|
|
#define SS_ACK_READ_START_END_CTRL 0xdd
|
|
#define SS_READ_START_END_CTRL_ID0 0x4a
|
|
#define SS_READ_START_END_CTRL_ID1 0xa1
|
|
|
|
//深水设置最小估长
|
|
#define SS_SET_STEPLENGTH_CTRL 0x76
|
|
#define SS_ACK_SET_STEPLENGTH_CTRL 0xde
|
|
#define SS_SET_STEPLENGTH_CTRL_ID0 0x4b
|
|
#define SS_SET_STEPLENGTH_CTRL_ID1 0xa1
|
|
|
|
//深水读取最小估长
|
|
#define SS_READ_STEPLENGTH_CTRL 0x77
|
|
#define SS_ACK_READ_STEPLENGTH_CTRL 0xdf
|
|
#define SS_READ_STEPLENGTH_CTRL_ID0 0x4c
|
|
#define SS_READ_STEPLENGTH_CTRL_ID1 0xa1
|
|
|
|
//深水读取水表时间、频点
|
|
#define SS_READ_TIME_FREQUENCY_CTRL 0x78
|
|
#define SS_ACK_READ_TIME_FREQUENCY_CTRL 0xe0
|
|
#define SS_READ_TIME_FREQUENCY_CTRL_ID0 0x4d
|
|
#define SS_READ_TIME_FREQUENCY_CTRL_ID1 0xa1
|
|
|
|
//深水设置重试次数
|
|
#define SS_SET_RETRY_COUNT_CTRL 0x79
|
|
#define SS_ACK_SET_RETRY_COUNT_CTRL 0xe1
|
|
#define SS_SET_RETRY_COUNT_CTRL_ID0 0x4e
|
|
#define SS_SET_RETRY_COUNT_CTRL_ID1 0xa1
|
|
|
|
//深水读取重试次数
|
|
#define SS_READ_RETRY_COUNT_CTRL 0x7a
|
|
#define SS_ACK_READ_RETRY_COUNT_CTRL 0xe2
|
|
#define SS_READ_RETRY_COUNT_CTRL_ID0 0x4f
|
|
#define SS_READ_RETRY_COUNT_CTRL_ID1 0xa1
|
|
|
|
//深水设置上报数据频率
|
|
#define SS_SET_REPORTING_FREQUENCY_CTRL 0x7b
|
|
#define SS_ACK_SET_REPORTING_FREQUENCY_CTRL 0xe3
|
|
#define SS_SET_REPORTING_FREQUENCY_CTRL_ID0 0x50
|
|
#define SS_SET_REPORTING_FREQUENCY_CTRL_ID1 0xa1
|
|
|
|
//深水读取上报数据频率
|
|
#define SS_READ_REPORTING_FREQUENCY_CTRL 0x7c
|
|
#define SS_ACK_READ_REPORTING_FREQUENCY_CTRL 0xe4
|
|
#define SS_READ_REPORTING_FREQUENCY_CTRL_ID0 0x51
|
|
#define SS_READ_REPORTING_FREQUENCY_CTRL_ID1 0xa1
|
|
|
|
//深水统一读取参数
|
|
#define SS_UNIFIED_READ_CTRL 0x7d
|
|
#define SS_ACK_UNIFIED_READ_CTRL 0xe5
|
|
#define SS_UNIFIED_READ_CTRL_ID0 0x52
|
|
#define SS_UNIFIED_READ_CTRL_ID1 0xa1
|
|
|
|
//深水设置密集上报开始时间
|
|
#define SS_SET_REPORTSTARTTIME_CTRL 0x7e
|
|
#define SS_ACK_SET_REPORTSTARTTIME_CTRL 0xe6
|
|
#define SS_SET_REPORTSTARTTIME_CTRL_ID0 0x53
|
|
#define SS_SET_REPORTSTARTTIME_CTRL_ID1 0xa1
|
|
|
|
//深水读取密集上报开始时间
|
|
#define SS_READ_REPORTSTARTTIME_CTRL 0x7f
|
|
#define SS_ACK_READ_REPORTSTARTTIME_CTRL 0xe7
|
|
#define SS_READ_REPORTSTARTTIME_CTRL_ID0 0x54
|
|
#define SS_READ_REPORTSTARTTIME_CTRL_ID1 0xa1
|
|
|
|
//深水登录帧
|
|
#define SS_SIGN_IN_CTRL 0x8f
|
|
#define SS_ACK_SIGN_IN_CTRL 0xe8
|
|
#define SS_SIGN_IN_CTRL_ID0 0x55
|
|
#define SS_SIGN_IN_CTRL_ID1 0xa1
|
|
|
|
//读取IMEI控制码
|
|
#define SS_READ_IMEI_CTRL 0x91
|
|
#define SS_ACK_READ_IMEI_CTRL 0xe9
|
|
#define SS_READ_IMEI_CTRL_ID0 0x56
|
|
#define SS_READ_IMEI_CTRL_ID1 0xa1
|
|
|
|
//终端重启
|
|
#define SS_TERNAL_RESTART_CTRL 0x92
|
|
#define SS_ACK_TERNAL_RESTART_CTRL 0xEA
|
|
#define SS_TERNAL_RESTART_CTRL_ID0 0x57
|
|
#define SS_TERNAL_RESTART_CTRL_ID1 0xA1
|
|
|
|
//读信号强度控制码
|
|
#define READ_SIGNAL_INTENSITY_CTRL 0x93
|
|
#define ACK_READ_SIGNAL_INTENSITY_CTRL 0xEB
|
|
#define READ_SIGNAL_INTENSITY_DATA_ID0 0x58
|
|
#define READ_SIGNAL_INTENSITY_DATA_ID1 0xA1
|
|
|
|
//清除失败次数
|
|
#define SS_CLEAR_FAIL_TIMES_CTRL 0x94
|
|
#define SS_ACK_CLEAR_FAIL_TIMES_CTRL 0xEC
|
|
#define SS_CLEAR_FAIL_TIMES_CTRL_DI0 0x59
|
|
#define SS_CLEAR_FAIL_TIMES_CTRL_DI1 0xA1
|
|
|
|
//设置普通密钥
|
|
#define SS_SET_COMMON_KEY_CTRL 0x95
|
|
#define ACK_SS_SET_COMMON_KEY_CTRL 0xED
|
|
#define SS_SET_COMMON_KEY_CTRL_DI0 0x5A
|
|
#define SS_SET_COMMON_KEY_CTRL_DI1 0xA1
|
|
|
|
//读取普通密钥
|
|
#define SS_RD_COMMON_KEY_CTRL 0x96
|
|
#define ACK_SS_RD_COMMON_KEY_CTRL 0xEE
|
|
#define SS_RD_COMMON_KEY_CTRL_DI0 0x5B
|
|
#define SS_RD_COMMON_KEY_CTRL_DI1 0xA1
|
|
|
|
//读取RAM区数据
|
|
#define RD_RAM_CTRL 0x98
|
|
#define ACK_RD_RAM_CTRL 0xF0
|
|
#define RD_RAM_CTRL_DI0 0x5D
|
|
#define RD_RAM_CTRL_DI1 0xA1
|
|
|
|
//发起短信上传,板卡测试阶段使用
|
|
#define SMS_UPLOAD_CTRL 0xCB
|
|
#define ACK_SMS_UPLOAD_CTRL 0xDB
|
|
#define SMS_UPLOAD_CTRL_ID0 0x15
|
|
#define SMS_UPLOAD_CTRL_ID1 0xCC
|
|
|
|
|
|
|
|
//******************************************江西水务定制规约-NB***********************************/
|
|
//设置密集存储间隔
|
|
#define FM_SET_MJJI_SPACE_TIME_CTRL 0x5A
|
|
#define FM_SET_MJJI_SPACE_TIME_REPLY_CTRL 0xCA
|
|
#define FM_SET_MJJI_SPACE_TIME_DI0 0x48
|
|
#define FM_SET_MJJI_SPACE_TIME_DI1 0xA0
|
|
|
|
//读取密集存储间隔
|
|
#define FM_RED_MJJI_SPACE_TIME_CTRL 0x5B
|
|
#define FM_RED_MJJI_SPACE_TIME_REPLY_CTRL 0xCB
|
|
#define FM_RED_MJJI_SPACE_TIME_DI0 0x49
|
|
#define FM_RED_MJJI_SPACE_TIME_DI1 0xA0
|
|
|
|
//设置采样频率
|
|
#define FM_SET_SAMPLING_FREQUENCY_CTRL 0x5D
|
|
#define FM_SET_SAMPLING_FREQUENCY_REPLY_CTRL 0xCD
|
|
#define FM_SET_SAMPLING_FREQUENCY_DI0 0x50
|
|
#define FM_SET_SAMPLING_FREQUENCY_DI1 0xA0
|
|
|
|
//读取采样频率
|
|
#define FM_READ_SAMPLING_FREQUENCY_CTRL 0x5E
|
|
#define FM_READ_SAMPLING_FREQUENCY_REPLY_CTRL 0xCE
|
|
#define FM_READ_SAMPLING_FREQUENCY_DI0 0x51
|
|
#define FM_READ_SAMPLING_FREQUENCY_DI1 0xA0
|
|
|
|
//设置NB模组为PSM或断电模式
|
|
#define FM_SET_PSM_PWDOWN_CTRL 0x85
|
|
#define FM_SET_PSM_PWDOWN_REPLY_CTRL 0x05
|
|
#define FM_SET_PSM_PWDOWN_DI0 0x04
|
|
#define FM_SET_PSM_PWDOWN_DI1 0xA0
|
|
|
|
//设置上报相关参数
|
|
#define FM_SET_RETRY_TIME_CTRL 0x08
|
|
#define FM_SET_RETRY_TIME_REPLY_CTRL 0xB8
|
|
#define FM_SET_RETRY_TIME_DI0 0x32
|
|
#define FM_SET_RETRY_TIME_DI1 0xAA
|
|
|
|
//读取上报相关参数
|
|
#define FM_READ_RETRY_TIME_CTRL 0x02
|
|
#define FM_READ_RETRY_TIME_REPLY_CTRL 0xB2
|
|
#define FM_READ_RETRY_TIME_DI0 0x33
|
|
#define FM_READ_RETRY_TIME_DI1 0xAB
|
|
|
|
#define ACK_UPLOAD_WITH_VAVLE_CTRL 0xC6 //携带控阀信息的周期应答帧
|
|
#define ACK_UPLOAD_WITH_VAVLE_CTRL_ID0 0x02
|
|
#define ACK_UPLOAD_WITH_VAVLE_CTRL_ID1 0x10
|
|
|
|
//新增规约
|
|
//以下为新增规约
|
|
#define IES_NEW_ADD_FRAME_CTRL 0x6F //新增规约
|
|
#define ACK_IES_NEW_ADD_FRAME_CTRL 0xF7 //新增规约应答
|
|
#define COM_WATER_ID1_0x10 0x10
|
|
|
|
#define READ_EEPROM_DATA_ID0 0x00 //读取任意位置EE数据
|
|
#define WRITE_EEPROM_DATA_ID0 0x01 //写任意位置EE数据
|
|
//#define SET_IR_USATR_AT_ID0 0x02 //进入红外透传
|
|
#define SET_UDP_IP_PORT_ID0 0x03 //设置udp的ip
|
|
#define READ_UDP_IP_PORT_ID0 0x04 //读取udp的ip
|
|
//#define SET_UPDATE_IP_PORT_ID0 0x05 //设置udp的ip
|
|
//#define READ_UPDATE_IP_PORT_ID0 0x06 //读取udp的ip
|
|
//#define READ_SUC_FAIL_RESET_TIMES_ID0 0x07 //读取发送成功、失败次数,复位次数
|
|
//#define SEND_UDP_CYCLE_DATA_ID0 0x08 //UDP发送的数据
|
|
//#define START_AUTO_CHECK_ID0 0x09 //启动自检
|
|
//#define READ_AUTO_CHECK_ID0 0x0A //查询自检结果
|
|
////#define UPDATE_MCU_ID0 0x0B //新远程升级
|
|
//#define JIANGE_TIME_SET_READ_ID0 0x0C //重传间隔时间参数设置/读取
|
|
#define SET_EMERGENCY_NUM_ID0 0x0D //设置紧急用水量
|
|
#define READ_EMERGENCY_NUM_ID0 0x0E //读取紧急用水量
|
|
#define READ_TIMES_SOE_ID0 0x0F //读取时间段SOE事件
|
|
#define READ_LAST_SOE_ID0 0x10 //读取最新SOE事件
|
|
#define READ_BATERY_PARA 0x11 //读取电量相关参数
|
|
#define CLEAR_BATERY_PARA 0x12 //清除电量相关参数
|
|
#define FACTORY_TEST_UPLOAD_ID0 0x1E //厂区测试上传,只进行到附网完成
|
|
/////////////////////////////////////////////////积成规约数据结构///////////////////////////////////////////////
|
|
typedef struct
|
|
{
|
|
u8 head_site; //帧头位置
|
|
u8 ctrl;
|
|
u8 ack_ctrl;
|
|
u8 len;
|
|
u8 DI0;
|
|
u8 DI1;
|
|
u8 serial_num0;
|
|
u8 serial_num1;
|
|
u8 key_num;
|
|
u8 end_site; //帧尾位置
|
|
u8 check_len; //参与校验计算的数据长度
|
|
u8 sta; //GPRS加密状态0x80加密 0x40 主动发送(BIT2 = 0应答帧)
|
|
u8 met_type;
|
|
} STRUCT_FRAME_IES;//存储数据帧重要内容
|
|
|
|
typedef union
|
|
{
|
|
struct
|
|
{
|
|
u8 data0;
|
|
u8 data1;
|
|
u8 data2;
|
|
u8 data3;
|
|
} datas_map;
|
|
u8 data_buf[4];
|
|
u32 datas;
|
|
} SS_UNION_4U8TOU32;
|
|
|
|
typedef union
|
|
{
|
|
struct
|
|
{
|
|
u8 data0;
|
|
u8 data1;
|
|
} datas_map;
|
|
u8 data_buf[2];
|
|
u16 datas;
|
|
} SS_UNION_2U8TOU16;
|
|
|
|
typedef struct{
|
|
SS_UNION_2U8TOU16 snr;
|
|
u16 ecl;
|
|
u16 rsrp;
|
|
u8 csq;
|
|
u8 faile_times;//上报失败次数
|
|
u8 format_error;//上报数据格式错误
|
|
u32 cell_id;
|
|
SS_UNION_2U8TOU16 report_fre;
|
|
}SIGNAL_INFO;
|
|
|
|
typedef union
|
|
{
|
|
SIGNAL_INFO SignalStruct;
|
|
u8 SignalBuf[15];
|
|
} UNION_SIGNAL;
|
|
/******************************************************长帧上报数据格式*********************/
|
|
#define STRU_DATA_LEN_IES 354
|
|
typedef union{
|
|
struct{
|
|
u8 data1;
|
|
u8 data2;
|
|
}datas_map;
|
|
u16 u16_data;
|
|
}S_M_DATA_16,*p_S_M_DATA_16;
|
|
typedef union{
|
|
struct{
|
|
u16 RSRP_val;//信号强度
|
|
S_M_DATA_16 bat_val;//电池电压
|
|
u16 snr_val;//信噪比
|
|
u16 ecl_val;//无线信号覆盖等级
|
|
u8 single_val;//csq 信号质量
|
|
u8 bat_threshold_val;//电池欠压阈值
|
|
}metinfo;
|
|
u8 byte[10];
|
|
}MEASURE_UPLOAD_INFO;
|
|
typedef union {
|
|
struct
|
|
{
|
|
SS_UNION_4U8TOU32 CurrentFlow;//u8 CurrentFlow[4];
|
|
SS_UNION_4U8TOU32 CurrentFlowReverse;//u8 CurrentFlowReverse[4];
|
|
SS_UNION_4U8TOU32 CurrentFlowForward;//u8 CurrentFlowForward[4];
|
|
u8 DailyHighestFlowAndTime[14];
|
|
MEASURE_UPLOAD_INFO UploadInfo;
|
|
u8 StepFlow[96]; //间隔流量
|
|
u8 UploadTime[7];//上报时间
|
|
u8 StepFlowStartTime[7];//间隔流量起始时间
|
|
u8 StateBytes[5];//状态字
|
|
SS_UNION_4U8TOU32 DailyActiveTime;//155字节
|
|
//密集采集
|
|
u8 MiJiCaiJiFlow[192];
|
|
u8 MiJiCaiJiStartTime[7];
|
|
}data;
|
|
u8 buf[STRU_DATA_LEN_IES];//354
|
|
} STRU_UPLOAD_FRAME;
|
|
|
|
#define CURRENT_DATA_INFO_LEN 36
|
|
#define STEP_FLOW_START_ADDR (0+CURRENT_DATA_INFO_LEN)
|
|
#define UPLOAD_TIME_ADDR (STEP_FLOW_START_ADDR + 96)
|
|
#define STEP_FLOW_TIME_ADDR (UPLOAD_TIME_ADDR + 7)
|
|
|
|
/******************************************************短帧上报数据格式*********************/
|
|
#define STRU_DATA_LEN_IES_SHORT 27 //短帧上报数据总长度
|
|
typedef union {
|
|
struct
|
|
{
|
|
SS_UNION_4U8TOU32 CurrentFlow_short;//u8 CurrentFlow[4];
|
|
SS_UNION_4U8TOU32 null_buf;
|
|
u8 RSRP_val; //信号强度1字节
|
|
u16 bat_voltage; //电池电压2字节
|
|
u16 mode_snr; //SNR2字节
|
|
u8 mode_ecl; //ECL1字节
|
|
u8 UploadTime[5]; //上报时间 4字节
|
|
u8 StateBytes[4]; //状态字5字节
|
|
SS_UNION_2U8TOU16 soft_ver; //软件版本2字节
|
|
SS_UNION_2U8TOU16 temp_value; //温度2字节
|
|
}data;
|
|
u8 buf[STRU_DATA_LEN_IES_SHORT];//27
|
|
} STRU_SHORT_UPLOAD_FRAME;
|
|
|
|
/******************************************************UDP上报数据格式*********************/
|
|
#define STRU_DATA_LEN_IES_UDP 62
|
|
typedef union {
|
|
struct
|
|
{
|
|
SS_UNION_2U8TOU16 GP30_PeakUp;
|
|
SS_UNION_2U8TOU16 GP30_PeakDown;
|
|
SS_UNION_2U8TOU16 TempX100;
|
|
SS_UNION_2U8TOU16 GP30_TempX100;
|
|
SS_UNION_4U8TOU32 GP30_Diff;
|
|
SS_UNION_4U8TOU32 GP30_DiffBig[4];
|
|
u8 ResetCount;
|
|
u16 ResetReason;
|
|
u16 BateryPower;
|
|
u16 Rsrp;
|
|
u8 Snr;
|
|
u8 UploadLastFailCode;
|
|
SS_UNION_4U8TOU32 CellId;
|
|
u8 Frequency;
|
|
u8 Reverse[8];
|
|
u8 Sta0;
|
|
u8 Sta1;
|
|
u8 Sta2;
|
|
u8 Sta3;
|
|
SS_UNION_4U8TOU32 CurrentFlow_short;
|
|
SS_UNION_4U8TOU32 null_buf;
|
|
}ProcMsgData;
|
|
u8 buf[STRU_DATA_LEN_IES_UDP];//62
|
|
} STRU_PROC_MSG;
|
|
|
|
/**************************规约应答相关函数**********************************/
|
|
u8 up_deal_code_ies(void);
|
|
u8 check_met_addr_IES(u8 *p_buf,u8 *des_buf);
|
|
u8 crack_frame_IES_Base(u16 frame_lenth,u8 *frame_buffer, STRUCT_FRAME_IES* pFrameIES);
|
|
u8 crack_frame_IES(u16 frame_lenth,u8 *frame_buffer);
|
|
MEASURE_UPLOAD_INFO UploadGetInfo_Base(void);
|
|
void Frame_ack_IesBase(STRUCT_FRAME_IES temp_struct, u8* p_temp_buf, u16 p_temp_len, u8* p_send_buf, u16* p_send_len);
|
|
|
|
void Frame_ResetDealState_Ies(void);
|
|
void Frame_ack_IES(u8* p_send_buf, u16* p_send_len);
|
|
void Frame_nb_ss_upload(u8* p_send_buf, u16* p_send_len);
|
|
void Frame_nb_jx_upload(u8* p_send_buf, u16* p_send_len);
|
|
/**************************上报相关函数***************************************/
|
|
#define PERIOD_DATA_NUM 32 //周期数据记录总报数
|
|
#define JX_ONE_PACKET_COUNTS 45 //每包数据的间隔量条数
|
|
|
|
|
|
void GetUploadDataResetState_Product(void);
|
|
u8 GetUploadDataCheckIdle_Product(void);
|
|
u8 GetUploadDataCheckTask_Product(void);
|
|
void GetUploadDataMachine_Product(u8 data_step, u8* p_send_buf, u16* p_send_len);
|
|
|
|
void GetUploadDataResetState_IesUDP(void);
|
|
u8 GetUploadDataCheckIdle_IesUDP(void);
|
|
u8 GetUploadDataCheckTask_IesUDP(void);
|
|
void GetUploadDataMachine_IesUDP(u8 data_step, u8* p_send_buf, u16* p_send_len);
|
|
|
|
void SS_Store_InitApp(void);
|
|
u8 SS_Store_IfSleep(void);
|
|
/*****************************************************************************/
|
|
#endif
|
|
|
|
|