110 lines
4.1 KiB
C
110 lines
4.1 KiB
C
#ifndef UWATER_FRAME_FUNC_REPLAY_SY_H
|
||
#define UWATER_FRAME_FUNC_REPLAY_SY_H
|
||
|
||
#include "sys_config.h"
|
||
#if PRODUCT_SY
|
||
#include "UWater_Frame_app.h"
|
||
/**************************************20211025沈阳订单新增规约********************************************/
|
||
//上报冻结数据
|
||
//水表向平台端主动发送数据规约
|
||
//上传冻结数据(101,应答1) 上报未冻结数据、水表状态、报警等信息
|
||
#define FM_UPLOAD_FROZEN_DATA_CTRL 0x65 //101
|
||
#define FM_UPLOAD_FROZEN_DATA_REPLY_CTRL 0x01 //1
|
||
|
||
//上报周期数据(102,应答2) 上报周期采集的数据
|
||
#define FM_UPLOAD_CYCLE_DATA_CTRL 0x66 //102
|
||
#define FM_UPLOAD_CYCLE_DATA_REPLY_CTRL 0x02 //2
|
||
|
||
//突发报警上传(103,应答3) 在发生报警等级为1的报警事件时随时上传
|
||
#define FM_SUDDEN_ALARM_UPLOAD_CTRL 0x67 //103
|
||
#define FM_SUDDEN_ALARM_UPLOAD_REPLY_CTRL 0x03 //3
|
||
|
||
//水表应答平台请求规约
|
||
//参数设置(6,应答106) 设置上传时间、开关阀门、报警参数等
|
||
#define FM_PARAMENTER_SETTING_CTRL 0x06 //6
|
||
#define FM_PARAMENTER_SETTING_REPLY_CTRL 0x6A //106
|
||
|
||
//参数查询(7,应答107) 在发生报警等级为1的报警事件时随时上传
|
||
#define FM_PARAMENTER_QUERY_CTRL 0x07 //7
|
||
#define FM_PARAMENTER_QUERY_REPLY_CTRL 0x6B //107
|
||
|
||
//冻结数据查询(8,应答108) 查询日冻结数据、年冻结数据、月冻结数据
|
||
#define FM_FROZEN_DATA_QUERY_CTRL 0x08 //8
|
||
#define FM_FROZEN_DATA_QUERY_REPLY_CTRL 0x6C //108
|
||
|
||
//周期数据查询(9,应答109) 查询最近7天的周期数据
|
||
#define FM_CYCLE_DATA_QUERY_CTRL 0x09 //9
|
||
#define FM_CYCLE_DATA_QUERY_REPLY_CTRL 0x6D //109
|
||
|
||
//报警历史数据查询(10,应答110) 查询历史报警数据
|
||
#define FM_ALARM_HISTORY_DATA_QUERY_CTRL 0x0A //10
|
||
#define FM_ALARM_HISTORY_DATA_QUERY_REPLY_CTRL 0x6E //110
|
||
|
||
//清空数据(51,应答151) 清空冻结数据、历史数据、报警数据
|
||
#define FM_CLEAR_ALL_DATA_CTRL 0x33 //51
|
||
#define FM_CLEAR_ALL_DATA_REPLY_CTRL 0x97 //151
|
||
|
||
//重启、恢复出厂设置(52,应答152)
|
||
#define FM_RESTORE_FACTORY_SETTING_CTRL 0x34 //52
|
||
#define FM_RESTORE_FACTORY_SETTING_REPLY_CTRL 0x98 //152
|
||
|
||
//调试指令(71,应答171) 由厂家自行定义的报文,数据域由厂家自行设置
|
||
#define FM_DEBUG_INSTRUCTION_CTRL 0x47 //71
|
||
#define FM_DEBUG_INSTRUCTION_REPLY_CTRL 0xAB //171
|
||
|
||
typedef union
|
||
{
|
||
struct
|
||
{
|
||
u8 data0;
|
||
u8 data1;
|
||
} datas_map;
|
||
u8 data_buf[2];
|
||
u16 datas;
|
||
} SY_UNION_2U8TOU16;
|
||
|
||
typedef struct
|
||
{
|
||
u8 head_site; //帧头位置
|
||
u8 ctrl;
|
||
u8 ack_ctrl;
|
||
SY_UNION_2U8TOU16 len; //沈阳规约数据长度固定2字节16进制,低字节在前,高字节在后
|
||
u8 end_site; //帧尾位置
|
||
u8 check_len; //参与校验计算的数据长度
|
||
u8 sta; //GPRS加密状态0x80加密 0x40 主动发送(BIT2 = 0应答帧)
|
||
u8 met_type; //沈阳规约将表计类型定义为规约类型,定为0X02
|
||
u8 serial_num0; //序列号
|
||
} STRUCT_FRAME_SY;//存储数据帧重要内容
|
||
|
||
|
||
u8 up_deal_code_sy(void);
|
||
u8 crack_frame_SY(u16 frame_lenth,u8 *frame_buffer);
|
||
void Frame_ResetDealState_Shenyang(void);
|
||
void Sy_Frame_nb_read_ack(u8* p_send_buf, u16* p_send_len);
|
||
/************************************************上报相关**********************/
|
||
void GetUploadDataResetState_ShenYangUDP(void);
|
||
u8 GetUploadDataCheckIdle_ShenYangUDP(void);
|
||
u8 GetUploadDataCheckTask_ShenYangUDP(void);
|
||
void GetUploadDataMachine_ShenYangUDP(u8 data_step, u8* p_send_buf, u16* p_send_len);
|
||
|
||
/**************************存储相关函数***************************************/
|
||
void DataStoreInit(void);
|
||
void DataStoreMachine(void);
|
||
u8 DataStoreIfIdle(void);
|
||
/*****************************************************************************/
|
||
#define MAIN_CONNECT_TYPE NBIOT_CONNECT_UDP1
|
||
#define MAIN_SEND_TYPE SEND_TYPE_UDP1
|
||
#define SLAVE_CONNECT_TYPE NBIOT_CONNECT_UDP2
|
||
#define SLAVE_SEND_TYPE SEND_TYPE_UDP2
|
||
//主上报10秒,副上报5秒
|
||
#define COAP_UPLOAD_WAIT_ACK_TIME 100
|
||
#define UDP_UPLOAD_WAIT_ACK_TIME 50
|
||
#define NB_ONLINE_KEEP_TIME 50
|
||
|
||
|
||
#endif
|
||
|
||
#endif
|
||
|
||
|