87 lines
2.3 KiB
C
87 lines
2.3 KiB
C
#ifndef UWATER_FRAME_FUNC_REPLAYSHANGHE_H
|
||
#define UWATER_FRAME_FUNC_REPLAYSHANGHE_H
|
||
|
||
#include "sys_config.h"
|
||
|
||
#if PRODUCT_SHTCP
|
||
|
||
#define UP_DATA_BUF_SIZE_SH 128
|
||
//阀门控制-----商河水务,数据标识高低位调换-------------------------------------------------
|
||
#define VALVE_CONTROL_TCP_CTRL 0x04
|
||
#define ACK_VALVE_CONTROL_TCP_CTRL 0x84
|
||
#define VALVE_CONTROL_TCP_DATA_ID0 0xA0
|
||
#define VALVE_CONTROL_TCP_DATA_ID1 0x17
|
||
|
||
|
||
//数据上报
|
||
#define FM_TCP_UPLOAD_CTRL 0x81
|
||
#define FM_TCP_UPLOAD_REPLAY_CTRL 0x22
|
||
#define FM_TCP_UPLOAD_DI0 0x47
|
||
#define FM_TCP_UPLOAD_DI1 0x02
|
||
/************************************************************************************************/
|
||
|
||
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_SH;//存储数据帧重要内容
|
||
|
||
typedef union {
|
||
struct
|
||
{
|
||
u8 HeadBuf[4];// FE FE 68 20
|
||
u8 Addr[7];//表地址
|
||
u8 Ctrl;//控制字
|
||
u8 Num;//数据长度
|
||
u8 DataFlag[2];//数据标识
|
||
u8 Ser;//序列号
|
||
u8 Data1Buf[4];//数据1
|
||
u8 Data2Buf[24];
|
||
u8 Data3Buf[28];
|
||
u8 Cs;//68到data3
|
||
u8 End;//结束符
|
||
}data;
|
||
u8 buf[80];
|
||
} STRU_TCP_UPLOAD_FRAME;
|
||
|
||
u8 crack_frame_SHTCP(u16 frame_lenth,u8 *frame_buffer);
|
||
u8 up_deal_code_sh(void);
|
||
void Frame_ResetDealState_SH(void);
|
||
void Frame_CreatCs_AckSH(u8* p_send_buf, u16* p_send_len);
|
||
|
||
void GetUploadDataResetState_SH(void);
|
||
u8 GetUploadDataCheckIdle_SH(void);
|
||
u8 GetUploadDataCheckTask_SH(void);
|
||
void GetUploadDataMachine_SH(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
|
||
//主上报15秒,副上报5秒
|
||
#define COAP_UPLOAD_WAIT_ACK_TIME 150
|
||
#define UDP_UPLOAD_WAIT_ACK_TIME 50
|
||
#define NB_ONLINE_KEEP_TIME 50
|
||
|
||
#endif
|
||
|
||
#endif
|
||
|
||
|