P2UWaterJiangXi/app/UWater_Frame/UWater_frame_func_ReplyWT.h

123 lines
5.9 KiB
C

#ifndef UWATER_FRAME_FUNC_REPLAY_WT_H
#define UWATER_FRAME_FUNC_REPLAY_WT_H
#include "type.h"
/************************************************水台子规约********************************************/
//固化物理地址//CRC
#define MFM_SOLIDIFY_MAC_ARGUMENT_CTRL 0x10
#define MFM_SOLIDIFY_MAC_REPLY_CTRL 0x90
#define MFM_SOLIDIFY_MAC_DI0 0x1C
#define MFM_SOLIDIFY_MAC_DI1 0xA0
//模组/水台子规约:读表计通信地址----------------------------------------------------------
#define MFM_READ_ADDR_ARGUMENT_CTRL 0x03
#define MFM_READ_ADDR_REPLY_CTRL 0x83
#define MFM_READ_ADDR_DI0 0x0A
#define MFM_READ_ADDR_DI1 0x81
//请求写表地址控制码
#define MFM_SET_ADDR_ARGUMENT_CTRL 0x15
#define MFM_SET_ADDR_REPLY_CTRL 0x95
#define MFM_SET_ADDR_DI0 0x18
#define MFM_SET_ADDR_DI1 0xA0
//模组/水台子规约:读出厂序列号------------------------------------------------------------
#define MFM_READ_SERIALNUM_ARGUMENT_CTRL 0x31
#define MFM_READ_SERIALNUM_REPLY_CTRL 0xE1
#define MFM_READ_SERIALNUM_DI0 0x01
#define MFM_READ_SERIALNUM_DI1 0x89
//模组/水台子规约:读温度系数--------------------------------------------------------------
#define MFM_READ_TEMPERATURECOEFFICIENT_ARGUMENT_CTRL 0X4A
#define MFM_READ_TEMPERATURECOEFFICIENT_REPLY_CTRL 0xBA
#define MFM_READ_TEMPERATURECOEFFICIENT_DI0 0x3A
#define MFM_READ_TEMPERATURECOEFFICIENT_DI1 0xA0
//模组/水台子规约:读流量系数--------------------------------------------------------------
#define MFM_READ_FLOWCOEFFICIENT_ARGUMENT_CTRL 0x48
#define MFM_READ_FLOWCOEFFICIENT_REPLY_CTRL 0xB8
#define MFM_READ_FLOWCOEFFICIENT_DI0 0x38
#define MFM_READ_FLOWCOEFFICIENT_DI1 0xA0
//模组/水台子规约:读检定数据--------------------------------------------------------------
#define MFM_READ_VERIFICATIONDATA_ARGUMENT_CTRL 0x4C
#define MFM_READ_VERIFICATIONDATA_REPLY_CTRL 0xBC
#define MFM_READ_VERIFICATIONDATA_DI0 0x3C
#define MFM_READ_VERIFICATIONDATA_DI1 0xA0
//模组/水台子规约:退出检定状态-------------------------------------------------------------
#define MFM_OUT_VERIFICATIONSTATE_ARGUMENT_CTRL 0x57
#define MFM_OUT_VERIFICATIONSTATE_REPLY_CTRL 0xC7
#define MFM_OUT_VERIFICATIONSTATE_DI0 0x45
#define MFM_OUT_VERIFICATIONSTATE_DI1 0xA0
//模组/水台子规约:读多项式建模系数--------------------------------------------------------
#define FM_READ_POLYNOMIALCOEFFICIENT_ARGUMENT_CTRL 0x65
#define FM_READ_POLYNOMIALCOEFFICIENT_REPLY_CTRL 0xF1
#define FM_READ_POLYNOMIALCOEFFICIENT_DI0 0x61
#define FM_READ_POLYNOMIALCOEFFICIENT_DI1 0xA0
/************************************************水台子规约:动态解密的******************************/
//模组/水台子规约:读取物理地址--------------------------------------------------------
#define MFM_READ_MAC_ARGUMENT_CTRL 0x11
#define MFM_READ_MAC_REPLY_CTRL 0x91
#define MFM_READ_MAC_DI0 0x1D
#define MFM_READ_MAC_DI1 0xA0
//模组/水台子规约:写温度系数-----------------------------------------------------
#define MFM_SET_TEMPERATURECOEFFICIENT_ARGUMENT_CTRL 0x45
#define MFM_SET_TEMPERATURECOEFFICIENT_REPLY_CTRL 0xB5
#define MFM_SET_TEMPERATURECOEFFICIENT_DI0 0x35
#define MFM_SET_TEMPERATURECOEFFICIENT_DI1 0xA0
//模组/水台子规约:写流量系数------------------------------------------------------
#define MFM_SET_FLOWCOEFFICIENT_ARGUMENT_CTRL 0x46
#define MFM_SET_FLOWCOEFFICIENT_REPLY_CTRL 0xB6
#define MFM_SET_FLOWCOEFFICIENT_DI0 0x36
#define MFM_SET_FLOWCOEFFICIENT_DI1 0xA0
//模组/水台子规约:设置为检定状态//CRC--------------------------------------------------
//设置为检定状态//CRC
#define MFM_SET_VERIFICATIONSTATE_ARGUMENT_CTRL 0x49
#define MFM_SET_VERIFICATIONSTATE_REPLY_CTRL 0xB9
#define MFM_SET_VERIFICATIONSTATE_DI0 0x39
#define MFM_SET_VERIFICATIONSTATE_DI1 0xA0
//模组/水台子规约:启动停止测试(只适用于检定状态)--------------------------------------------
#define MFM_START_OR_STOP_TEST_ARGUMENT_CTRL 0x51
#define MFM_START_OR_STOP_TEST_REPLY_CTRL 0xC1
#define MFM_START_OR_STOP_TEST_DI0 0x3F
#define MFM_START_OR_STOP_TEST_DI1 0xA0
//模组/水台子规约:(清)出厂启用--------------------------------------------------------------
#define MFM_START_OR_CLEAR_USING_ARGUMENT_CTRL 0x54
#define MFM_START_OR_CLEAR_USING_REPLY_CTRL 0xC4
#define MFM_START_OR_CLEAR_USING_DI0 0x42
#define MFM_START_OR_CLEAR_USING_DI1 0xA0
//模组/水台子规约: 写多项式建模系数--------------------------------------------------------
#define FM_SET_POLYNOMIALCOEFFICIENT_ARGUMENT_CTRL 0x64
#define FM_SET_POLYNOMIALCOEFFICIENT_REPLY_CTRL 0xF0
#define FM_SET_POLYNOMIALCOEFFICIENT_DI0 0x60
#define FM_SET_POLYNOMIALCOEFFICIENT_DI1 0xA0
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_MBUS;//存储数据帧重要内容
u8 up_deal_code_mbus(void);
u8 crack_frame_MBUS(u16 frame_lenth,u8 *frame_buffer);
void Frame_ResetDealState_Mbus(void);
void Frame_CreatCrcCs_Ack(u8* p_send_buf, u16* p_send_len);
#endif