R2UWaterRS485UW500/app/UWater_Frame/UWater_frame_func_ReplyShen...

108 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_SHENSHUI_H
#define UWATER_FRAME_FUNC_REPLAY_SHENSHUI_H
#include "sys_config.h"
#ifdef PRODUCT_SS
//////////////////////////////////////////规约控制字/////////////////////////////////////////////////////////
/*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 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
//新补报规约上报数据
#define SUPP_UPLOAD_CTRL 0x9B
#define SUPP_ACK_UPLOAD_CTRL 0xF1
#define SUPP_UPLOAD_CTRL_ID0 0x01
#define SUPP_UPLOAD_CTRL_ID1 0x10
//深水登录帧
#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
//清除失败次数
#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
enum{
SUPPLEMENT_DATA_FRAME_S0 = 0,
SUPPLEMENT_DATA_FRAME_S1,
SUPPLEMENT_DATA_FRAME_S2,
SUPPLEMENT_DATA_FRAME_S3,
SUPPLEMENT_DATA_FRAME_S4,
SUPPLEMENT_DATA_FRAME_S5,
SUPPLEMENT_DATA_FRAME_S6,
SUPPLEMENT_DATA_FRAME_S7
};
#define SUPPLEMENT_DATA_MAX_NUM 19 //一帧补报数据里最多19条日冻结
typedef enum
{
SS_StoreMsg0 = 0u,
SS_StoreMsg1 = 1u,
SS_StoreMsg2 = 2u,
SS_StoreMsg3 = 3u,
SS_StoreMsg4 = 4u,
SS_StoreMsg5 = 5u,
SS_StoreMsg6 = 6u,
SS_StoreMsg7 = 7u
}SS_StoreMsgType;
/***************************************长帧上报数据格式*********************/
#define PACK_NUM_GPRS 155 //周期上报部分数据长度
#define PACK_NUM_GPRS_INTEN 199 //24小时的30min间隔流量数据长度,48*4+7
#define PACK_NUM_GPRS_TOTAL (PACK_NUM_GPRS+PACK_NUM_GPRS_INTEN) //周期上报的数据总长度
#define CURRENT_DATA_INFO_LEN 36
#define STEP_FLOW_START_ADDR (0+CURRENT_DATA_INFO_LEN)
/**************************规约应答相关函数**********************************/
u8 up_deal_code_ShenShui(void);
u8 crack_frame_ShenShui(u16 frame_lenth,u8 *frame_buffer);
void Frame_ResetDealState_ShenShui(void);
void Frame_ack_ShenShui(u8* p_send_buf, u16* p_send_len);
/**************************上报相关函数***************************************/
#define PERIOD_DATA_NUM 32 //周期数据记录总报数
void GetUploadDataResetState_SS(void);
u8 GetUploadDataCheckIdle_SS(void);
u8 GetUploadDataCheckTask_SS(void);
void GetUploadDataMachine_SS(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_COAP
#define MAIN_SEND_TYPE SEND_TYPE_COAP
#define SLAVE_CONNECT_TYPE NBIOT_CONNECT_UDP1
#define SLAVE_SEND_TYPE SEND_TYPE_UDP1
//主上报10秒副上报5秒
#define COAP_UPLOAD_WAIT_ACK_TIME 100 //10秒
#define UDP_UPLOAD_WAIT_ACK_TIME 50
#define NB_ONLINE_KEEP_TIME 50
#endif
#endif