123 lines
5.9 KiB
C
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
|
|
|
|
|