R2UWaterRS485UW500/app/UWater_Frame/UWater_frame_func_ReplySYNB.h

110 lines
4.1 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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