#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