P2UWaterJiangXi/app/UWater_Frame/UWater_frame_func_ReplyGuan...

199 lines
6.5 KiB
C
Raw Normal View History

2024-06-03 15:49:39 +08:00
#ifndef UWATER_FRAME_FUNC_REPLAY_GUANGSHUI_H
#define UWATER_FRAME_FUNC_REPLAY_GUANGSHUI_H
#include "sys_config.h"
#ifdef PRODUCT_GS
#define FRAME_HEAD_JM 0x69 //֡ͷ
#define FRAME_END_JM 0x17 //֡β<D6A1><CEB2><EFBFBD><EFBFBD>
#define FRAME_MARK_JM 0xb1 //֡<><D6A1>ʶ
#define FRAME_TYPE_JM 0x14 //<2F>
#define FRAME_LEN_MAX UP_BUF_SIZE
#define FRAME_LEN_MIN 10
#define GS_HIS_STORE_MAX 540 //<2F><>ʷ<EFBFBD><CAB7><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD><><C4AC>540/5=108<30><38>
#define EEP_ADDR_CIRCLE_DATA FRAME_NBIot_HISTORY_READ_ADD //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD>ݴ洢<DDB4><E6B4A2>ַ
#define EEP_ADDR_HIS_DATA EEP_RTCC_APP_HISTORY_ADDR //<2F><><EFBFBD>ݲ<EFBFBD>ѯ<EFBFBD><D1AF>ʷ<EFBFBD><CAB7><EFBFBD>ݴ洢<DDB4><E6B4A2>ַ
#define EEP_ADDR_HIS_INDEX (EEP_ADDR_HIS_DATA+GS_HIS_STORE_MAX*5) //<2F><><EFBFBD>ݲ<EFBFBD>ѯ<EFBFBD><D1AF>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><E6B4A2>ַ 0x440+0xA8C=0xECC~ED2(6<>ֽ<EFBFBD>)
#define EEP_ADDR_TEMP_STORE_UPLOAD (EEP_ADDR_HIS_INDEX+6) //<2F><>ʱ<EFBFBD><EFBFBD><E6B4A2><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ(8<>ֽ<EFBFBD>)
//<2F><><EFBFBD><EFBFBD>ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡
typedef union //ǿ<><C7BF>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
u32 gp22_u32;
float gp22_float;
u8 buf[4];
}U32_To_Float;
typedef struct //<2F><><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD>յ<EFBFBD><D5B5>ıȽ<C4B1><C8BD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
u8 locn;
mtype16_ len;
mtype16_ serial_num;
u8 frame_ctrl;
u8 STA;
mtype16_ data_len;
u8 crc;
} STRUCT_FRAME_GS;
//<2F><><EFBFBD>ݴ洢ָ<E6B4A2><D6B8>
typedef union
{
struct
{
UNION_4U8TOU32 Index_w;
UNION_2U8TOU16 Period;
}Data;
u8 data_buf[6];
}UNION_GS_STORE_INDEX;
#define STRU_DATA_LEN_GS 157 //<2F><>ˮ<EFBFBD><CBAE>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
#define STRU_DATA_LEN_GS_CURRENT 16 //<2F><>ˮ<EFBFBD><CBAE>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
typedef union {
struct
{
u8 Datetime[6];
u8 StepCnt;
u8 Step[2];
u8 DataCode;
u8 StepFlow1[6];
u8 StepFlowN[47][3];
}data;
u8 buf[STRU_DATA_LEN_GS];
} STRU_UP_FRAME_GS;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
typedef union
{
struct
{
u8 start_time_h;
u8 start_time_m;
UNION_2U8TOU16 up_interval;//<2F>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UNION_2U8TOU16 data_interval;//<2F><><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UNION_2U8TOU16 effective_time;
}Data;
u8 data_buf[8];
}UNION_GS_UPLOAD_PARA;
//////////////////////////////////////////<2F><>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/////////////////////////////////////////////////////////
/*NB<4E><42><EFBFBD><EFBFBD>ͨ<EFBFBD>Ź<EFBFBD>Լ*/
//<2F><>ˮ<EFBFBD><CBAE>ȡ<EFBFBD><C8A1>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>
#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 //<2F><EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define QZ_READ_HIS_DAILY_CTRL_ID1 0x31 //<2F>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD>Ϣ
//<2F><>ˮ<EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>
#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<44>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD>ʶ
//<2F><>֡<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
#define SHORT_UPLOAD_CTRL 0x9A
#define SHORT_ACK_UPLOAD_CTRL 0xEF
#define SHORT_UPLOAD_CTRL_ID0 0x02
#define SHORT_UPLOAD_CTRL_ID1 0x10
//<2F>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
#define SUPP_UPLOAD_CTRL 0x9B
#define SUPP_ACK_UPLOAD_CTRL 0xF1
#define SUPP_UPLOAD_CTRL_ID0 0x01
#define SUPP_UPLOAD_CTRL_ID1 0x10
//<2F><>ˮ<EFBFBD><CBAE>¼֡
#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
//<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>
#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
//<2F><>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define READ_MET_CTRL_00 0x00 //
#define READ_MET_CTRL_01 0x01 //
#define READ_MET_CTRL_02 0x02 //
#define READ_MET_CTRL_03 0x03 //
#define READ_MET_CTRL_04 0x04 //
#define READ_MET_CTRL_05 0x05 //
#define READ_MET_CTRL_06 0x06 //
#define READ_MET_CTRL_07 0x07 //
#define READ_MET_CTRL_08 0x08 //
#define READ_MET_CTRL_09 0x09 //
#define READ_MET_CTRL_010 0x0a //
#define READ_MET_CTRL_011 0x0b //
#define READ_MET_CTRL_012 0x0c //
#define READ_MET_CTRL_013 0x0d //
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 //һ֡<D2BB><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>19<31><39><EFBFBD>ն<EFBFBD><D5B6><EFBFBD>
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;
/***************************************<2A><>֡<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ݸ<EFBFBD>ʽ*********************/
#define PACK_NUM_GPRS 155 //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
#define PACK_NUM_GPRS_INTEN 199 //24Сʱ<D0A1><CAB1>30min<69><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>,48*4+7
#define PACK_NUM_GPRS_TOTAL (PACK_NUM_GPRS+PACK_NUM_GPRS_INTEN) //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܳ<EFBFBD><DCB3><EFBFBD>
#define CURRENT_DATA_INFO_LEN 36
#define STEP_FLOW_START_ADDR (0+CURRENT_DATA_INFO_LEN)
/**************************<2A><>ԼӦ<D4BC><D3A6><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><D8BA><EFBFBD>**********************************/
u8 up_deal_code_GuangShui(void);
u8 crack_frame_GuangShui(u16 frame_lenth,u8 *frame_buffer);
void Frame_ResetDealState_GuangShui(void);
void Frame_ack_GuangShui(u8* p_send_buf, u16* p_send_len);
/**************************<2A>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>غ<EFBFBD><D8BA><EFBFBD>***************************************/
#define PERIOD_DATA_NUM 32 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD>¼<EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD>
void GetUploadDataResetState_GS(void);
u8 GetUploadDataCheckIdle_GS(void);
u8 GetUploadDataCheckTask_GS(void);
void GetUploadDataMachine_GS(u8 data_step, u8* p_send_buf, u16* p_send_len);
/**************************<2A><EFBFBD><E6B4A2><EFBFBD>غ<EFBFBD><D8BA><EFBFBD>***************************************/
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
//<2F><><EFBFBD>ϱ<EFBFBD>10<31><EFBFBD><EBA3AC><EFBFBD>ϱ<EFBFBD>5<EFBFBD><35>
#define COAP_UPLOAD_WAIT_ACK_TIME 100 //10<31><30>
#define UDP_UPLOAD_WAIT_ACK_TIME 50
#define NB_ONLINE_KEEP_TIME 50
#endif
#endif