200 lines
6.2 KiB
C
200 lines
6.2 KiB
C
|
#ifndef __WHYW_FRAME_H__
|
|||
|
#define __WHYW_FRAME_H__
|
|||
|
|
|||
|
/******************************************************************************
|
|||
|
* Include files
|
|||
|
******************************************************************************/
|
|||
|
#include "sys_config.h"
|
|||
|
#if PRODUCT_WHYW
|
|||
|
#include "UWater_frame_app.h"
|
|||
|
#include "UWater_rtcc_driver.h"
|
|||
|
/* C binding of definitions if building with C++ compiler */
|
|||
|
#ifdef __cplusplus
|
|||
|
extern "C"
|
|||
|
{
|
|||
|
#endif
|
|||
|
|
|||
|
/*******************************EEPROM<4F>洢<EFBFBD><E6B4A2>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>****************************/
|
|||
|
#define STORE_DATA_SIZE_CIRCLE 4 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define STORE_DATA_COUNT_CIRCLE 240
|
|||
|
#define EEP_DATA_LEN_CIRCLE (STORE_DATA_SIZE_CIRCLE*STORE_DATA_COUNT_CIRCLE)//1200//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4>ռ<EFBFBD>
|
|||
|
|
|||
|
#define EEP_ADDR_WHYW_STORE_CIRCLE FRAME_SHENYANG_STORE_ADD //0x7300~0x7C00 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2>ַ
|
|||
|
#define EEP_ADDR_WHYW_CIRCLE_INDEX_W (EEP_ADDR_WHYW_STORE_CIRCLE+EEP_DATA_LEN_CIRCLE)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢ָ<E6B4A2><D6B8>
|
|||
|
#define EEP_ADDR_WHYW_CIRCLE_INDEX_R (EEP_ADDR_WHYW_CIRCLE_INDEX_W+2)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD>ȡָ<C8A1><D6B8>
|
|||
|
#define EEP_ADDR_WHYW_LAST_RTCC (EEP_ADDR_WHYW_CIRCLE_INDEX_R+2)//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>ʱ<EFBFBD><CAB1>7<EFBFBD>ֽ<EFBFBD>
|
|||
|
//<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>صĴ洢
|
|||
|
#define EEP_ADDR_WHYW_NB_ONLINE_KEEP (EEP_ADDR_WHYW_LAST_RTCC+7) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> 1<>ֽ<EFBFBD>
|
|||
|
#define EEP_ADDR_WHYW_STORE_INTERVAL (EEP_ADDR_WHYW_NB_ONLINE_KEEP+1)//<2F><><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2><C9BC><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> 1<>ֽ<EFBFBD>
|
|||
|
#define EEP_ADDR_WHYW_BATTERY_PRA (EEP_ADDR_WHYW_STORE_INTERVAL+1)//<2F><><EFBFBD>ص<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> 4<>ֽ<EFBFBD>
|
|||
|
#define EEP_ADDR_WHYW_UPLOAD_SUCCESS (EEP_ADDR_WHYW_BATTERY_PRA+4)//<2F>ϱ<EFBFBD><CFB1>ܴ<EFBFBD><DCB4><EFBFBD>
|
|||
|
#define EEP_ADDR_WHYW_UPLOAD_FAIL (EEP_ADDR_WHYW_UPLOAD_SUCCESS+4)//<2F>ϱ<EFBFBD><CFB1>ɹ<EFBFBD><C9B9>ܴ<EFBFBD><DCB4><EFBFBD>
|
|||
|
|
|||
|
#define UPLOAD_CIRCLE_MAX_COUNT 48 //<2F><>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>48<34><38><EFBFBD><EFBFBD>¼:48*4=192
|
|||
|
#define UPLOAD_CIRCLE_MAX_LEN (STORE_DATA_SIZE_CIRCLE*UPLOAD_CIRCLE_MAX_COUNT)//<2F><>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
|||
|
|
|||
|
#define EE_PRA_SIZE_WHYW 21//EE<45>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
|||
|
typedef union
|
|||
|
{
|
|||
|
struct
|
|||
|
{
|
|||
|
UNION_2U8TOU16 u_circle_store_index_w;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2>λ<EFBFBD><CEBB>
|
|||
|
UNION_2U8TOU16 u_circle_store_index_r;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD>ȡ<EFBFBD><C8A1>λ<EFBFBD><CEBB>
|
|||
|
DateTime store_circle_rtcc_end;//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>ʱ<EFBFBD><CAB1>7<EFBFBD>ֽ<EFBFBD>
|
|||
|
u8 ee_nb_online_keep_time;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> 1<>ֽ<EFBFBD>
|
|||
|
u8 ee_nb_acq_interval;//<2F><><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2><C9BC><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> 1<>ֽ<EFBFBD> <20>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>30<33><30><EFBFBD><EFBFBD>
|
|||
|
u8 ee_battery_pra[4];//<2F><><EFBFBD>ص<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
|
|||
|
UNION_2U8TOU16 ee_upload_count_success;//<2F>ϱ<EFBFBD><CFB1>ɹ<EFBFBD><C9B9>ܴ<EFBFBD><DCB4><EFBFBD>
|
|||
|
UNION_2U8TOU16 ee_upload_count_fail;//<2F>ϱ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>
|
|||
|
}Data;
|
|||
|
u8 data_buf[EE_PRA_SIZE_WHYW];
|
|||
|
}WHYW_UNION_EE_STORE;
|
|||
|
/******************************<2A><>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>*********************************/
|
|||
|
#define FRAME_HEAD_MARK 0x68
|
|||
|
#define FRAME_END_MARK 0x16
|
|||
|
#define UP_BUF_SIZE 512
|
|||
|
|
|||
|
#define FRAME_LEN_MAX UP_BUF_SIZE
|
|||
|
#define FRAME_LEN_MIN 10
|
|||
|
|
|||
|
#define FRAME_GUIDE 0xFE //<2F><><EFBFBD><EFBFBD>
|
|||
|
#define FRAME_HEAD 0x68 //֡ͷ
|
|||
|
#define FRAME_TAIL 0x16 //֡β<D6A1><CEB2><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
#define W_METTYPE 0x10 //ˮ<><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define LYBK_DATA_UP_NOW 0x55
|
|||
|
#define LYBK_OFFSET_DATA_UP 0xFF
|
|||
|
#define LYBK_DISCRETE_DATA_UP 0x99
|
|||
|
|
|||
|
|
|||
|
#define READ_CTRL_DOWN 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define READ_CTRL_UP 0x81 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define WRITE_CTRL_DOWN 0x04 //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define WRITE_CTRL_UP 0x84 //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>дˮ<D0B4><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
#define RW_ONLINE_TIME_D0 0x81
|
|||
|
#define RW_ONLINE_TIME_D1 0x11
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>дˮ<D0B4><CBAE>ʵʱʱ<CAB1><CAB1>
|
|||
|
#define RW_METER_TIME_D0 0xA0
|
|||
|
#define RW_METER_TIME_D1 0x15
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>дˮ<D0B4><CBAE><EFBFBD>Զ<EFBFBD><D4B6>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>ݵ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define RW_UPLOAD_TIME_ID0 0x81
|
|||
|
#define RW_UPLOAD_TIME_ID1 0x04
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>дˮ<D0B4><CBAE><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2><C9BC><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
#define RW_INTERVAL_TIME_ID0 0x81
|
|||
|
#define RW_INTERVAL_TIME_ID1 0x05
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>дȡ<D0B4><C8A1><EFBFBD>ص<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
|
|||
|
#define RW_BATTERY_D0 0x81
|
|||
|
#define RW_BATTERY_D1 0x09
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>дˮ<D0B4><CBAE> NB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define RW_NB_PARA_D0 0x81
|
|||
|
#define RW_NB_PARA_D1 0x10
|
|||
|
|
|||
|
|
|||
|
//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>ݱ<EFBFBD>ʶD0
|
|||
|
#define UPLOAD_DATA_D0 0x90
|
|||
|
#define UPLOAD_DATA_D1 0x20
|
|||
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
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 head_site;
|
|||
|
u8 frame_ctrl; //<2F><><EFBFBD>п<EFBFBD><D0BF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u8 ack_ctrl; //<2F><><EFBFBD>п<EFBFBD><D0BF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u8 mark_DI0; //<2F><><EFBFBD>ݱ<EFBFBD>ʶDI0
|
|||
|
u8 mark_DI1; //<2F><><EFBFBD>ݱ<EFBFBD>ʶDI1
|
|||
|
u8 serial_num; //<2F><><EFBFBD>к<EFBFBD>
|
|||
|
mtype16_ len; //<2F><><EFBFBD><EFBFBD>
|
|||
|
u16 chkval; //У<><D0A3><EFBFBD><EFBFBD>
|
|||
|
u8 frame_sta; //<2F><>Լ״̬
|
|||
|
} STRUCT_FRAME_WHYW;
|
|||
|
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
u16 send_len;
|
|||
|
u8 send_sum_cs; //У<><D0A3><EFBFBD><EFBFBD>
|
|||
|
u8 send_buf[UP_BUF_SIZE];
|
|||
|
}OTHER_FRAME_UP_SEND_PARA_;
|
|||
|
|
|||
|
|
|||
|
typedef enum{
|
|||
|
WHYW_STATE_S0 = 0,
|
|||
|
WHYW_STATE_S1,
|
|||
|
WHYW_STATE_S2,
|
|||
|
WHYW_STATE_S3,
|
|||
|
WHYW_STATE_S4,
|
|||
|
WHYW_STATE_S5,
|
|||
|
WHYW_STATE_S6,
|
|||
|
WHYW_STATE_S7,
|
|||
|
WHYW_STATE_S8,
|
|||
|
WHYW_STATE_S9,
|
|||
|
WHYW_STATE_S10,
|
|||
|
WHYW_STATE_S11,
|
|||
|
WHYW_STATE_S12,
|
|||
|
WHYW_STATE_S13,
|
|||
|
WHYW_STATE_S20,
|
|||
|
WHYW_STATE_S21,
|
|||
|
WHYW_STATE_S22,
|
|||
|
WHYW_STATE_S30,
|
|||
|
WHYW_STATE_S31,
|
|||
|
WHYW_STATE_S32,
|
|||
|
}TYP_STATE_WHYW;
|
|||
|
|
|||
|
|
|||
|
u8 crack_frame_WHYW(u16 frame_lenth, u8 *frame_buffer);
|
|||
|
u8 up_deal_code_WHYW(void);
|
|||
|
void Frame_ack_WHYW(u8* p_send_buf, u16* p_send_len);
|
|||
|
void Frame_ResetDealState_WHYW(void);
|
|||
|
|
|||
|
void GetUploadDataResetState_WHYW(void);
|
|||
|
u8 GetUploadDataCheckIdle_WHYW(void);
|
|||
|
u8 GetUploadDataCheckTask_WHYW(void);
|
|||
|
void GetUploadDataMachine_WHYW(u8 data_step, u8* p_send_buf, u16* p_send_len);
|
|||
|
|
|||
|
/****************************<2A><>Լ<EFBFBD><D4BC><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>*****************************/
|
|||
|
void DataStoreInit(void);
|
|||
|
void DataStoreMachine(void);
|
|||
|
u8 DataStoreIfIdle(void);
|
|||
|
/************************<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>\<5C><>ʱ<EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>********************/
|
|||
|
#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
|
|||
|
|
|||
|
#define COAP_UPLOAD_WAIT_ACK_TIME 150 //<2F><><EFBFBD>ϱ<EFBFBD>15<31>룬<EFBFBD><EBA3AC><EFBFBD>ϱ<EFBFBD>5<EFBFBD><35>
|
|||
|
#define UDP_UPLOAD_WAIT_ACK_TIME 50
|
|||
|
#define NB_ONLINE_KEEP_TIME 50
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
}
|
|||
|
#endif
|
|||
|
|
|||
|
#endif
|
|||
|
|
|||
|
#endif /* __LYBK_FRAME_H__ */
|
|||
|
/******************************************************************************
|
|||
|
* EOF (not truncated)
|
|||
|
******************************************************************************/
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|