139 lines
3.4 KiB
C
139 lines
3.4 KiB
C
|
|
/*
|
|||
|
|
*********************************************************************************************************
|
|||
|
|
* IAR Development Kits
|
|||
|
|
* on the
|
|||
|
|
*
|
|||
|
|
* Nano100
|
|||
|
|
*
|
|||
|
|
* Filename : ext_data.h
|
|||
|
|
* Version : V1.00
|
|||
|
|
* Programmer(s) : Qian Xianghong
|
|||
|
|
*********************************************************************************************************
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#ifndef USER_EXT_DATA_PRESENT
|
|||
|
|
#define USER_EXT_DATA_PRESENT
|
|||
|
|
|
|||
|
|
#include "type.h"
|
|||
|
|
|
|||
|
|
extern loopbuff_t RF_DataM, RF_TranM;
|
|||
|
|
extern SemaphoreHandle_t RF_TranLock;
|
|||
|
|
|
|||
|
|
// <20><>ʼ<EFBFBD><CABC>
|
|||
|
|
void Data_Open();
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ
|
|||
|
|
#pragma anon_unions
|
|||
|
|
#pragma pack(push, 1)
|
|||
|
|
|
|||
|
|
// <20><>ʷ<EFBFBD><CAB7><EFBFBD>ݺ<EFBFBD><DDBA>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
typedef struct // size = 64
|
|||
|
|
{
|
|||
|
|
uint16_t check; // <20><>־λ<D6BE><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0x55AA
|
|||
|
|
uint8_t oriPSN[6];
|
|||
|
|
uint8_t payload_len;
|
|||
|
|
uint8_t payload[RF_MAX_PAYLOAD_LEN];
|
|||
|
|
int32_t prevData; // ͬһ<CDAC><D2BB>PSN<53><4E><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>¼ (-1<><31>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>¼)
|
|||
|
|
unsigned warn : 1; // <20>Ƿ<C7B7><F1B1A8BE><EFBFBD>¼
|
|||
|
|
unsigned fault : 1; // <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ϼ<EFBFBD>¼
|
|||
|
|
unsigned : 14;
|
|||
|
|
uint16_t volumePct; // <20><><EFBFBD><EFBFBD>Һλ<D2BA>ٷֱ<D9B7>
|
|||
|
|
uint32_t volume; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
uint32_t recvTime; // <20><>Ƶ<EFBFBD>յ<EFBFBD><D5B5>ľ<EFBFBD><C4BE><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|||
|
|
uint16_t crc; // У<><D0A3>λ
|
|||
|
|
} ext_data_t;
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
uint16_t check; // <20><>־λ<D6BE><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0x55AA
|
|||
|
|
int16_t count; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0<CEAA><30>ʾ<EFBFBD><EFBFBD><DEB5><EFBFBD>
|
|||
|
|
uint16_t crc; // У<><D0A3>λ
|
|||
|
|
} ext_count_t;
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><DEB5><EFBFBD>
|
|||
|
|
typedef struct // size = 16
|
|||
|
|
{
|
|||
|
|
uint8_t PSN[6];
|
|||
|
|
int32_t lastData; // <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (-1<><31>ʾ<EFBFBD><EFBFBD>¼)
|
|||
|
|
uint8_t pn;
|
|||
|
|
unsigned warn : 1; // <20>Ƿ<C7B7>״̬
|
|||
|
|
unsigned fault : 1; // <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>״̬
|
|||
|
|
unsigned : 6;
|
|||
|
|
uint32_t recvTime; // <20><>Ƶ<EFBFBD>յ<EFBFBD><D5B5>ľ<EFBFBD><C4BE><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|||
|
|
} ext_bottle_t;
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>
|
|||
|
|
typedef struct // size = 24
|
|||
|
|
{
|
|||
|
|
uint8_t PSN[6];
|
|||
|
|
char TGGU[12]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
uint8_t FF[6];
|
|||
|
|
} ext_box_t;
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><DEB5><EFBFBD><EFBFBD><EFBFBD>PSN<53><4E><EFBFBD><EFBFBD>
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
uint8_t PSN[6];
|
|||
|
|
int16_t recNo;
|
|||
|
|
} ext_bottle_idx_t;
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><DEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
char TGGU[12];
|
|||
|
|
uint8_t PSN[6];
|
|||
|
|
int16_t recNo;
|
|||
|
|
} ext_box_idx_t;
|
|||
|
|
|
|||
|
|
// GPS<50><53>λ<EFBFBD><CEBB>Ϣ
|
|||
|
|
typedef struct // size = 22
|
|||
|
|
{
|
|||
|
|
uint16_t check; // <20><>־λ<D6BE><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0x55AA
|
|||
|
|
date_time_t sysTime; // ϵͳʱ<CDB3><CAB1>, size = 6
|
|||
|
|
int32_t longitude; // <20><><EFBFBD><EFBFBD>
|
|||
|
|
int32_t latitude; // ά<><CEAC>
|
|||
|
|
uint16_t speed; // <20>ٶ<EFBFBD>
|
|||
|
|
uint8_t sateCount; // GPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
uint8_t posState; // GPS<50><53>λ״̬
|
|||
|
|
uint16_t crc; // У<><D0A3>λ
|
|||
|
|
} ext_gps_t;
|
|||
|
|
|
|||
|
|
extern ext_gps_t Ext_GPS;
|
|||
|
|
|
|||
|
|
extern ext_data_t Ext_Data_Rec, Ext_Data_Rec1;
|
|||
|
|
|
|||
|
|
extern ext_count_t bottleCnt, boxCnt;
|
|||
|
|
extern ext_bottle_idx_t bottlePSN[];
|
|||
|
|
extern ext_box_idx_t boxTGGU[];
|
|||
|
|
extern ext_box_idx_t boxPSN[];
|
|||
|
|
|
|||
|
|
#pragma pack(pop)
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SFlash<73><68>һ<EFBFBD><D2BB><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>;<EFBFBD><CDBE><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ǣ<EFBFBD>
|
|||
|
|
void CheckFramSFlashValid(uint32_t relative_time);
|
|||
|
|
|
|||
|
|
// TODO: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void cacl_gprs_tran_data(ext_data_t *pGprs, data_sample_t *sample);
|
|||
|
|
|
|||
|
|
// <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// RF_DataM<61><4D>RF_TranM<6E><4D>һ<EFBFBD><D2BB><EFBFBD>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>дָ<D0B4><D6B8>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ܲ<EFBFBD>ͬ
|
|||
|
|
void Data_PutToQueue(ext_data_t *pGprs);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void Ext_Sort_Bottle_PSN(ext_bottle_idx_t a[], int16_t lo, int16_t hi);
|
|||
|
|
void Ext_Sort_Box_TGGU(ext_box_idx_t a[], int16_t lo, int16_t hi);
|
|||
|
|
void Ext_Sort_Box_PSN(ext_box_idx_t a[], int16_t lo, int16_t hi);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD>PSN<53><4E><EFBFBD>Ҵ<EFBFBD><D2B4><EFBFBD><DEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>-1
|
|||
|
|
int16_t Ext_Lookup_Bottle_PSN(uint8_t PSN[], int16_t cnt);
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>PSN<53><4E>û<EFBFBD><C3BB><EFBFBD><EFBFBD>-1
|
|||
|
|
int16_t Ext_Lookup_Box_TGGU(char TGGU[], int16_t cnt);
|
|||
|
|
// <20><><EFBFBD><EFBFBD>PSN<53><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>-1
|
|||
|
|
int16_t Ext_Lookup_Box_PSN(uint8_t PSN[], int16_t cnt);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>´ӷ<C2B4><D3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>صĹ<D8B5><C4B9>䵵<EFBFBD><E4B5B5>
|
|||
|
|
void Ext_Update_Boxes(char *buff);
|
|||
|
|
|
|||
|
|
#endif
|