ZNY_Pakistan/Anjiehui7_ZNY/User/def_data.h

745 lines
21 KiB
C
Raw Permalink Normal View History

2025-04-03 15:24:54 +08:00
/*
*********************************************************************************************************
* IAR Development Kits
* on the
*
* Nano130
*
* Filename : def_data.h
* Version : V1.00
* Programmer(s) : Qian Xianghong
*********************************************************************************************************
*/
#ifndef USER_DEF_DATA_PRESENT
#define USER_DEF_DATA_PRESENT
#include "type.h"
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#pragma anon_unions
#pragma pack(push, 1)
// <20><><EFBFBD>ݰ汾<DDB0><E6B1BE>Pcap04<30><34><EFBFBD><EFBFBD>
#define _USE_PCAP04_CHIP_
////////////////////////////////////////////////////////////////////////////////////////
// <20><><EFBFBD>°汾<C2B0><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѡ<EFBFBD><D1A1>һ<EFBFBD><D2BB>
//#define _PRAXAIR_TTS_VER_ // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˹
//#define _PRAXAIR_DOL_VER_ // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˹<EFBFBD><CBB9><EFBFBD><EFBFBD>
//#define _YINGDE_TTS_VER_ // ӯ<><D3AF>
//#define _YINGDE_DOL_VER_ // ӯ<>¸<EFBFBD><C2B8><EFBFBD>
//#define _LINDE_HTTPS_CHARGE_VER_ // <20>ֵ³<D6B5><C2B3><EFBFBD>
//#define _LINDE_HTTPS_VER_ // <20>ֵ<EFBFBD>TTS
//#define _MESSER_TTS_VER_ // ÷<><C3B7><EFBFBD><EFBFBD>
//#define _FAYEKONG_TTS_VER_ // <20><>Һ<EFBFBD><D2BA>
//#define _BAOGANG_TTS_VER_ // <20><><EFBFBD><EFBFBD>
//#define _FUSHIKANG_TTS_VER_ // <20><>ʿ<EFBFBD><CABF>
//#define _ZHONGHAIYOU_BOX_VER_ // <20>к<EFBFBD><D0BA>͹<EFBFBD><CDB9><EFBFBD>-PT1000-3<><33>
//#define _BOX_500_2_VER_ // <20><><EFBFBD><EFBFBD>-PT500-2<><32>
//#define _BOX_1000_2_VER_ // <20><><EFBFBD><EFBFBD>-PT1000-2<><32>
//#define _BOX_1000_3_VER_ // <20><><EFBFBD><EFBFBD>-PT1000-3<><33>
//#define _CAOCHE_VER_ // <20>۳<EFBFBD>
#define _LANSHI_TTS_VER_ // <20><>ʯ
//#define _CHATE_TTS_VER_ // <20><><EFBFBD>أ<EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD>
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
// <20><><EFBFBD><EFBFBD><C2B6>岻Ҫ<E5B2BB>޸ģ<DEB8><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>Ψһ<CEA8><EFBFBD><E6B1BE><EFBFBD><EFBFBD>
#if defined(_PRAXAIR_TTS_VER_) || defined(_PRAXAIR_DOL_VER_)
#define _DISP_MMWC_ONLY_ // ֻ<><D6BB>ʾ<EFBFBD><CABE>ѹ<EFBFBD><D1B9>mmWC<57><43>
#define _PRAXAIR_SERVER_ // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˹<EFBFBD><CBB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
#if defined(_LINDE_HTTPS_CHARGE_VER_) || defined(_LINDE_HTTPS_VER_)
#define _DISP_MMWC_ONLY_ // ֻ<><D6BB>ʾ<EFBFBD><CABE>ѹ<EFBFBD><D1B9>mmWC<57><43>
#define _LINDE_SERVER_ // <20>ֵ·<D6B5><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>https<70><73>
#endif
#if defined(_CHATE_TTS_VER_)
#define _DISP_MMWC_ONLY_ // ֻ<><D6BB>ʾ<EFBFBD><CABE>ѹ<EFBFBD><D1B9>mmWC<57><43>
#endif
#ifdef _FUSHIKANG_TTS_VER_
#define _FUSHIKANG_SERVER_ // <20><>ʿ<EFBFBD><CABF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
#ifdef _ZHONGHAIYOU_BOX_VER_
#define _ZHONGHAIYOU_SERVER_ // <20>к<EFBFBD><D0BA>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mqtt<74><74>
#endif
#ifdef _LANSHI_TTS_VER_
#define _LANSHI_SERVER_ // <20><>ʯ<EFBFBD><CAAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
#if defined(_PRAXAIR_DOL_VER_) || defined(_YINGDE_DOL_VER_)
#define _DOL_VER_ // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
#if defined(_BOX_500_2_VER_) || defined(_BOX_1000_2_VER_) || defined(_BOX_1000_3_VER_) || defined(_ZHONGHAIYOU_BOX_VER_)
#define _BOX_VER_ // <20><><EFBFBD><EFBFBD>
#define _CELL_LOCATION_ // <20><>վ<EFBFBD><D5BE>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>GPS<50><53>λʧ<CEBB>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD>
#endif
#if !defined(_DOL_VER_) && !defined(_BOX_VER_) && !defined(_CAOCHE_VER_) && !defined(_LANSHI_CAOCHE_VER_) && !defined(_LANSHI_TTS_VER_) && !defined(_LINDE_HTTPS_CHARGE_VER_) && !defined(_CHATE_TTS_VER_)
#define _LEVEL_SENSOR_ONLY_ // ֻ<>в<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
#define _USE_PT100_SENSOR_ // <20><>PT100<30>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4~20mA<6D>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#ifdef _BOX_500_2_VER_
#define _PT100_MULTI_ 5 // <20><><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PT100/PT500/PT1000)
#else
#define _PT100_MULTI_ 10 // <20><><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PT100/PT500/PT1000)
#endif
#if defined(_USE_PT100_SENSOR_) && !defined(_BOX_500_2_VER_) && !defined(_BOX_1000_2_VER_)
#define _PT100_3LINE_ // <20><><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define _DIFF_RESIST_ // <20><><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
#ifdef _CAOCHE_VER_
#define _SEND_GPS_DATA_ // <20><><EFBFBD>͹켣<CDB9><ECBCA3><EFBFBD><EFBFBD>
#endif
// MQTT/HTTPS/HTTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
extern const char SERVER_URLs[][200];
////////////////////////////////////////////////////////////////////////////////////////
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
extern const uint8_t CONFIG_BOARD_SELF;
// <20><EFBFBD><E6B4A2>ʶ="LS"
#define CONFIG_MARK_LS (('S' << 8) | 'L')
// <20><>Ʒ<EFBFBD><C6B7>ʶ="CY"
#define CONFIG_PRODUCT_CY (('Y' << 8) | 'C')
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʶ
#define CONFIG_FLAG_NOT_INITED 0
#define CONFIG_FLAG_INITED 1
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
#define CONFIG_BOARD_SINGLE 0 // һ<><D2BB>ʽ
#define CONFIG_BOARD_SAMPLE 1
#define CONFIG_BOARD_POWER 2
#define CONFIG_BOARD_DISPLAY 3
#define CONFIG_BOARD_BLUETOOTH 4
// <20><><EFBFBD>ݱ<EFBFBD><DDB1>루DC<44><43>
#define CAN_DC_NONE 0
#define CAN_DC_BOTTLE_CONFIG 1
#define CAN_DC_SENSOR_CONFIG 2
#define CAN_DC_DATA_CONFIG 3
#define CAN_DC_DISPLAY_CONFIG 4
#define CAN_DC_SAMPLE_SYSINFO 5
#define CAN_DC_POWER_SYSINFO 6
#define CAN_DC_DISPLAY_SYSINFO 7
#define CAN_DC_BLUETOOTH_SYSINFO 8
#define CAN_DC_DTU_DATA 9
#define CAN_DC_SAMPLE_DATA 10
#define CAN_DC_ADC_DATA 11
// ֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD>
#define CAN_NOTIFY_RESET 0
#define CAN_NOTIFY_UPGRADE 1
#define CAN_NOTIFY_UPDATE 2
#define CAN_NOTIFY_SLEEP 3
#define CAN_NOTIFY_PING 4
#define CAN_NOTIFY_SAMPLE 5
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define BOTTLE_TYPE_STAND 0 // <20><>ʽ
#define BOTTLE_TYPE_LYING 1 // <20><>ʽ
#define BOTTLE_TYPE_SPHERICAL 2 // <20><><EFBFBD><EFBFBD>
#define SENSOR_STATUS_NORMAL 0x00 // <20><><EFBFBD><EFBFBD>״̬
#define SENSOR_STATUS_NOCONNECT 0x01 // BIT0
#define SENSOR_STATUS_UNDERFLOW 0x02 // BIT1
#define SENSOR_STATUS_OVERFLOW 0x04 // BIT2
#define SENSOR_STATUS_FULL 0x80 // BIT7
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
#define MEASURE_DPRESS 0
#define MEASURE_WEIGHT 1
// <20><>ʾ<EFBFBD><CABE>λ
#define DISP_UNIT_METRIC 0 // <20><><EFBFBD>Ƶ<EFBFBD>λ
#define DISP_UNIT_ENGLISH 1 // Ӣ<>Ƶ<EFBFBD>λ
// <20><>ʾģʽ
#define DISP_MODE_DPRESS 0 // <20><><EFBFBD><EFBFBD>ʾ<EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DISP_MODE_ALL 1 // <20><>ʾ<EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DISP_MODE_L 2 // <20><>ʾ<EFBFBD>ݻ<EFBFBD>, <20><><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
#define DISP_MODE_KG 3 // <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>ʾ<EFBFBD>ݻ<EFBFBD>
// <20><>żУ<C5BC>ʽ
#define PARITY_NONE 'n'
#define PARITY_SPACE 's'
#define PARITY_MARK 'm'
#define PARITY_ODD 'o'
#define PARITY_EVEN 'e'
// <20><>Ӫ<EFBFBD><D3AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_TYPE_2G '2'
#define NET_TYPE_3G '3'
#define NET_TYPE_4G '4'
#define NET_TYPE_GPRS 'G'
#define NET_TYPE_CDMA 'C'
#define NET_TYPE_EDGE 'E'
// <20><><EFBFBD>մ<EFBFBD><D5B4><EFBFBD><EFBFBD><EFBFBD>״̬
#define VACUUM_STATUS_FAULT 0 // <20><><EFBFBD><EFBFBD>
#define VACUUM_STATUS_OK 1 // <20><><EFBFBD><EFBFBD>
#define VACUUM_STATUS_COMM_FAULT 255 // ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD>
// й¶<D0B9><C2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
#define LEAK_STATUS_OK 0 // <20><><EFBFBD><EFBFBD>
#define LEAK_STATUS_FAULT 1 // <20><><EFBFBD><EFBFBD>
#define LEAK_STATUS_A1_ALARM 2 // <20><><EFBFBD>ޱ<EFBFBD><DEB1><EFBFBD>
#define LEAK_STATUS_A2_ALARM 3 // <20><><EFBFBD>ޱ<EFBFBD><DEB1><EFBFBD>
#define LEAK_STATUS_COMM_FAULT 255 // ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD>
// й©<D0B9><C2A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>
#define LEAK_TYPE_SWITCH 1 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define LEAK_TYPE_CURRENT 2 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define LEAK_TYPE_MODBUS 4 // Modubs<62><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SERVER_PROTOCOL_TCP 0 // TCP<43>ϴ<EFBFBD>
#define SERVER_PROTOCOL_MQTT 1 // MQTT<54>ϴ<EFBFBD>
#define SERVER_PROTOCOL_HTTPS 2 // HTTPS<50>ϴ<EFBFBD>
#define SERVER_PROTOCOL_HTTP 3 // HTTP<54>ϴ<EFBFBD>
#define SERVER_PROTOCOL_TRAIN 4 // <20><>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
#define SERVER_PROTOCOL_AOYANG 5 // <20><><EFBFBD><EFBFBD>Э<EFBFBD><D0AD><EFBFBD>ϴ<EFBFBD>
#define SERVER_PROTOCOL_BRASIL 6 // <20><><EFBFBD><EFBFBD>Э<EFBFBD><D0AD><EFBFBD>ϴ<EFBFBD>
#define SERVER_PROTOCOL_FURUI 7 // <20><><EFBFBD><EFBFBD>Э<EFBFBD><D0AD><EFBFBD>ϴ<EFBFBD>
#define SERVER_PROTOCOL_HUIDA 8 // <20><><EFBFBD><EFBFBD>Э<EFBFBD><D0AD><EFBFBD>ϴ<EFBFBD>
#define SERVER_PROTOCOL_CHAOYANG 9 // <20><><EFBFBD><EFBFBD><ECB3AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD>˾<EFBFBD><CBBE><EFBFBD>ϴ<EFBFBD>
#define SERVER_PROTOCOL_PAKISTAN 10 // <20>ͻ<EFBFBD>˹̹<CBB9>ϴ<EFBFBD>
// <20><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>
#define PRODUCT_CLASS_LEVEL 0 // Һλ<D2BA><CEBB>
#define PRODUCT_CLASS_H2PRESS 1 // <20><>ѹ<EFBFBD><D1B9>
// <20><><EFBFBD>󻺳<EFBFBD><F3BBBAB3><EFBFBD><EFBFBD><EFBFBD>С
#define DATA_BUFF_SIZE 128
// <20><><EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
uint32_t lowRange; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint32_t highRange; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint32_t zeroValue; // У<><D0A3>ֵ
uint32_t fullValue; // У<><D0A3>ֵ
} weight_param_t;
// <20><>ѹ/ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
uint16_t lowRange; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
union
{
uint16_t highRange; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct
{
unsigned highRangeX10 : 15; // <20>Ŵ<EFBFBD><C5B4><EFBFBD>10<31><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned ishighRangeX10 : 1; // <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>Ŵ<EFBFBD><C5B4><EFBFBD>10<31><30>
};
};
uint16_t zeroValue; // У<><D0A3>ֵ
uint16_t fullValue; // У<><D0A3>ֵ
} press_param_t;
// <20><><EFBFBD><EFBFBD><4B><D6B5>У׼<D0A3><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׵<EFBFBD><D7B5>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>
typedef struct
{
uint16_t c1ADC; // <20><><EFBFBD><EFBFBD>c1<63>궨ADCֵ
uint16_t c2ADC; // <20><><EFBFBD><EFBFBD>c2<63>궨ADCֵ
uint16_t baseC; // <20>׵<EFBFBD><D7B5><EFBFBD>(pF) * 10
uint16_t refC; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(pF) * 10
} capacity_param_t;
// <20>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
int16_t lowRange; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int16_t highRange; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint16_t zeroValue; // У<><D0A3>ֵ
uint16_t fullValue; // У<><D0A3>ֵ
} tempr_param_t;
// PT100<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
int16_t calibrateT; // У׼<D0A3>ȣ<C2B6><C8A3>Ŵ<EFBFBD>10<31><30>
int16_t calibrateR; // У׼<D0A3><D7BC><EFBFBD><EFBFBD>Ŵ<EFBFBD>10<31><30>
uint16_t zeroValue; // У<><D0A3>ֵ<EFBFBD><D6B5>-200<30><30><EFBFBD><EFBFBD>ADCֵ<43><D6B5>(PT100<30><30>У׼ֵ<D7BC><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
uint16_t fullValue; // У<><D0A3>ֵ<EFBFBD><D6B5>80<38><30><EFBFBD><EFBFBD>ADCֵ<43><D6B5> (PT100<30><30>У׼ֵ<D7BC><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
} pt100_param_t;
// <20><><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
uint8_t staVacuum; // <20><><EFBFBD>ռ<EFBFBD>״̬
unsigned : 8;
uint16_t lifeVacuum; // <20><><EFBFBD>ռ<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
float vacuum; // <20><><EFBFBD>ն<EFBFBD>
float rateVacuum; // ©<><C2A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
float tempr; // <20><EFBFBD>
} vacuum_data_t;
// й¶<D0B9><C2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct // size = 4
{
uint8_t typeLeak; // й¶<D0B9><C2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t staLeak; // й¶<D0B9><C2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
uint16_t concentrations; // <20><><EFBFBD><EFBFBD>Ũ<EFBFBD><C5A8>
} leak_data_t;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct // size = 22
{
uint8_t nM3[6]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BCD<43><EFBFBD>Ŵ<EFBFBD>100<30><30><EFBFBD><EFBFBD>
uint8_t nM3_h[4]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BCD<43><EFBFBD>Ŵ<EFBFBD>100<30><30><EFBFBD><EFBFBD>
uint8_t M3_h[4]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BCD<43><EFBFBD>Ŵ<EFBFBD>100<30><30><EFBFBD><EFBFBD>
uint8_t tempr[4]; // <20>ȣ<C2B6>BCD<43><EFBFBD>Ŵ<EFBFBD>100<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ţ<EFBFBD> 80H Ϊ<><CEAA><EFBFBD><EFBFBD>00H Ϊ<><CEAA><EFBFBD><EFBFBD>
uint8_t pressure[4]; // ѹ<><D1B9><EFBFBD><EFBFBD>BCD<43><EFBFBD>Ŵ<EFBFBD>100<30><30><EFBFBD><EFBFBD>
} flow_data_t;
typedef union
{
uint8_t status;
struct
{
unsigned notConnect : 1; // <20><><EFBFBD><EFBFBD>״̬
unsigned underFlow : 1; // <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned overFlow : 1; // <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned : 4;
unsigned full : 1; // <20>Ƿ<EFBFBD><C7B7><EFBFBD>
};
} sensor_status_t;
// <20><EFBFBD><E6B1BE>
typedef struct
{
uint8_t major; // <20><><EFBFBD><EFBFBD><E6B1BE>
uint8_t minor; // <20>ΰ汾<CEB0><E6B1BE>
} version_t;
// <20><><EFBFBD><EFBFBD>
typedef struct
{
uint8_t year;
uint8_t month;
uint8_t day;
} date_t;
// ʱ<><CAB1>
typedef struct
{
uint8_t hour;
uint8_t minute;
uint8_t second;
} time_t;
// <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
typedef struct
{
uint8_t year;
uint8_t month;
uint8_t day;
uint8_t hour;
uint8_t minute;
uint8_t second;
} date_time_t;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>Ϣ
typedef struct
{
uint16_t mark; //="LS"<22><><EFBFBD><EFBFBD><E6B4A2>ʶ
uint16_t product; //="CY"<22><><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7>ʶ
uint8_t DC; // <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>
unsigned : 8;
version_t ver; // <20><EFBFBD><E6B4A2>ʽ<EFBFBD><EFBFBD><E6B1BE>
} config_header_t;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1-<2D><><EFBFBD>޲<EFBFBD><DEB2><EFBFBD>
typedef struct
{
config_header_t header; // ͷ<><CDB7>Ϣ
uint16_t serverVer; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE>
uint8_t updateFlag; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>־
uint8_t addr; // ͨ<>ŵ<EFBFBD>ַ
uint8_t PSN[6]; // PSN
uint8_t type; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t source; // ҺԴ
uint16_t len; // Բ<><D4B2><EFBFBD><EFBFBD><E5B3A4>
uint16_t diameter; // <20>ھ<EFBFBD>
uint16_t lenExtra; // ֱ<>߷<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>
float density[5]; // <20><>ҺԴ<D2BA>ı<EFBFBD><C4B1><EFBFBD>, <20><>λg/cm3
uint8_t chargePct; // <20><>װ<EFBFBD><D7B0>
uint8_t measureType;// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
uint16_t fullPct; // <20><>Һλ<D2BA>ٷֱ<D9B7>
uint16_t priPct; // <20>ؼ<EFBFBD>Һλ<D2BA>ٷֱ<D9B7>
uint16_t orderPct; // <20><><EFBFBD><EFBFBD>Һλ<D2BA>ٷֱ<D9B7>
uint16_t emptyPct; // <20><>Һλ<D2BA>ٷֱ<D9B7>
uint32_t planMount; // ÿ<>ռƻ<D5BC><C6BB><EFBFBD><EFBFBD><EFBFBD>
uint32_t predictMount; // ÿ<><C3BF>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint16_t warnVolt; // <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>: 10mV
uint16_t warnVoltH; // <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>: 10mV
uint16_t warnPress; // ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>: KPa
uint16_t warnPressH; // ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>: KPa
uint32_t options; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint32_t ts; // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
unsigned dispMode : 2; // <20><>ʾģʽ
unsigned hideVacu : 1; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
unsigned : 5;
unsigned : 8;
union // size = 6
{
struct // Praxair
{
uint16_t floorLevel; // praxair: Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint16_t span; // praxair: Һ<><D2BA><EFBFBD><EFBFBD><E4BBAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint16_t spanPeriod; // praxair: Һ<><D2BA><EFBFBD><EFBFBD><E4BBAF><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
};
struct // Others
{
uint16_t warnVacuumH; // <20>¶ȱ<C2B6><C8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int16_t warnTempr; // <20>¶ȱ<C2B6><C8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int16_t warnTemprH; // <20>¶ȱ<C2B6><C8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
};
uint16_t warnPress2; //apex ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>: KPa
uint16_t warnPressH2; // ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>: KPa
uint8_t trainReserved[14];
union
{
uint8_t reserved[20];
uint16_t densityExt[8]; // <20><>ҺԴ<D2BA>ı<EFBFBD><C4B1>أ<EFBFBD><D8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>λkg/m3<6D><33>
};
uint16_t crc;
} config_bottle_t;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
config_header_t header; // ͷ<><CDB7>Ϣ
unsigned : 8;
unsigned : 8;
weight_param_t sensorWeight; // <20><><EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>
union
{
press_param_t sensorDPress; // <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
capacity_param_t sensorCap; // <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
press_param_t sensorPress; // ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
press_param_t sensorEPress[3];// <20><>չѹ<D5B9><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
union
{
tempr_param_t sensorMTempr[3];// <20><>չ<EFBFBD>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD>-4~20mA
pt100_param_t sensorPTempr[3];// <20><>չ<EFBFBD>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD>-PT100
};
uint16_t levelOutMMWC; // 4~20mAҺλ<D2BA><CEBB><EFBFBD><EFBFBD><EFBFBD>߶ȣ<DFB6><C8A3>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ʿͻ<CABF>ʹ<EFBFBD>ã<EFBFBD>
uint8_t reserved[34];
uint16_t crc;
} config_sensor_t;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3-<2D><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>
typedef struct
{
config_header_t header; // ͷ<><CDB7>Ϣ
unsigned : 8;
unsigned : 8;
char reserved[8];
char server[30]; // <20><><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD>
int16_t port; // <20><><EFBFBD>ݶ˿<DDB6>
char gpsServer[30]; // <20><EFBFBD><ECBCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int16_t gpsPort; // <20><EFBFBD>˿<EFBFBD>
uint16_t intervalSample; // <20><><EFBFBD>ݲɼ<DDB2><C9BC><EFBFBD><EFBFBD><EFBFBD>
uint32_t intervalTrans; // <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
uint16_t intervalGPS; // λ<>òɼ<C3B2><C9BC><EFBFBD><EFBFBD><EFBFBD>
uint16_t intervalGPSTrans; // λ<><CEBB><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
int8_t timeLag; // ʱ<>Ĭ<EEA3AC><C4AC>Ϊ+8
unsigned : 8;
char upgServer[30]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int16_t upgPort; // <20><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
uint16_t crc;
} config_data_t;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4-<2D><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
config_header_t header; // ͷ<><CDB7>Ϣ
unsigned : 8;
unsigned : 8;
uint16_t lightDelay; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
uint16_t dispDelay; // <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ʱ
uint8_t unit; // <20><>ʾ<EFBFBD><CABE>λ(<28><><EFBFBD>ơ<EFBFBD>Ӣ<EFBFBD>ƣ<EFBFBD>
uint8_t L_Unit; // <20><>ʾ<EFBFBD><CABE>λ<EFBFBD><CEBB>UNIT_KPA, UNIT_KG, UNIT_L, UNIT_PCT, UNIT_MMH2O<32><4F>
char pwd1[6]; // <20><><EFBFBD>޲<EFBFBD><DEB2><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
char pwd2[6]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB6A8><EFBFBD><EFBFBD>
char APN[24]; // <20><>Ӫ<EFBFBD><D3AA>APN
struct
{
uint8_t op_HARDWARE_VER_MAJOR; // Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD>ͬ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD>
uint8_t op_DISP_MMWC_ONLY;
uint8_t op_DOL_VER;
uint8_t op_BOX_VER;
unsigned op_CELL_LOCATION : 1; // <20><>վ<EFBFBD><D5BE>λ
unsigned op_NO_LOCATION : 1; // <20><><EFBFBD><EFBFBD>λ
unsigned : 6;
uint8_t op_LEVEL_SENSOR_ONLY;
uint8_t op_USE_PT100_SENSOR;
uint8_t op_PT100_MULTI;
uint8_t op_PT100_3LINE;
uint8_t op_DIFF_RESIST;
unsigned op_SEND_GPS_DATA : 1;
unsigned : 6;
unsigned op_ANTI_NORM_OPEN : 1; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4B3A3><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>رգ<D8B1>
unsigned op_USE_CAPACITY_SENSOR : 1;
unsigned op_LOW_ALARM_OUTPUT : 1; // <20><>Һλ<D2BA><CEBB><EFBFBD><EFBFBD><E2B1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned op_PRESS_ALARM_OUTPUT : 1; // ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2B1A8>
unsigned op_LOW_PRESS_ALARM_OUTPUT : 1; // <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2B1A8>
unsigned op_ANTI_SINGLE_CTRL : 1; // <20><><EFBFBD><EFBFBD><EFBFBD>䵥ͷ<E4B5A5><CDB7><EFBFBD>ŷ<EFBFBD>
unsigned : 2;
unsigned op_LOCAL_DISP_1S : 1; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ1<CABE><31><EFBFBD>ɼ<EFBFBD>
unsigned : 1; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫռ<D2AA><D5BC>
unsigned op_USE_R0SEMOUNT : 1; // <20><>˹<EFBFBD><CBB9><EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>
unsigned op_USE_SOLAR : 1; // <20><>̫<EFBFBD><CCAB><EFBFBD><EFBFBD>
unsigned op_USE_O2_LEAK : 1; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned op_LEAK_ALARM_OUTPUT : 1; // й¶<D0B9><C2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned op_USE_DOL_TTL : 1; // DOL<4F><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned op_USE_HEIGHT_LEVEL : 1;// ֱ<>Ӳ<EFBFBD>Һλ<D2BA>߶<EFBFBD>
unsigned op_USE_PCT_LEVEL: 1; // ֱ<>Ӳ<EFBFBD>Һλ<D2BA>ٷֱ<D9B7>
uint8_t op_SERVER_PROTOCOL; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD>飺0-TCP; 1-MQTT; 2-HTTPS; 3-HTTP; 4-TRAIN; 5-AOYANG
uint8_t op_SERVER_INDEX; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>
unsigned op_UNIDIR_COMM : 1; // <20><>֧<EFBFBD><D6A7>˫<EFBFBD><CBAB>ͨ<EFBFBD><CDA8>
unsigned op_LOCAL_DISP : 1; // ֻ<>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>ʾ
unsigned op_ANTI_OVERFILL : 1; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4B9A6>
unsigned op_ALARM_OUTPUT : 1; // <20><>Һλ<D2BA><CEBB><EFBFBD><EFBFBD><E2B1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned op_DIFF_420MA : 1; // <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ4~20mA
unsigned op_PRESS_420MA : 1; // ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ4~20mA
unsigned op_2ND_420MA_OUT_LEVEL : 1; // <20><>2·4~20mA<6D><41><EFBFBD><EFBFBD>Һλ
unsigned op_420MA_OUT_PCT : 1; // 4-20mA<6D><41>Һλ<D2BA>ٷֱ<D9B7><D6B1><EFBFBD><EFBFBD><EFBFBD>
uint8_t op_PRODUCT_CLASS; // 0-<2D><>ѹ<EFBFBD>ư汾<C6B0><E6B1BE>1-<2D><>ѹ<EFBFBD><D1B9><EFBFBD>
unsigned op_TRAIN : 1; // <20><>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>
unsigned op_TIGER : 1; // <20>ϻ<EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
unsigned : 2;
unsigned op_LNG_LORA: 1; // LNG-LORA<52>
unsigned : 3;
unsigned : 8;
unsigned : 8;
unsigned : 8;
unsigned : 8;
};
uint32_t bdCommander; // <20><><EFBFBD><EFBFBD>ָ<EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD><EFBFBD>
char User[10]; // APN-User
char Pwd[10]; // APN-Pwd
uint8_t reserved[28];
uint16_t crc;
} config_display_t;
// <20>ɼ<EFBFBD><C9BC><EFBFBD>ϵͳ<CFB5><CDB3>Ϣ
typedef struct
{
uint8_t boardFlag; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
unsigned : 8;
version_t hardVer;
version_t softVer;
date_t softDate;
unsigned : 8;
} sysinfo_sample_t;
// <20><>Դ<EFBFBD><D4B4>ϵͳ<CFB5><CDB3>Ϣ
typedef struct
{
uint8_t boardFlag; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
unsigned : 8;
version_t hardVer;
version_t softVer;
date_t softDate;
char parity; // <20><>żУ<C5BC>ʽ
uint32_t baudrate; // DTU<54><55><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
version_t protocolVer; // Զ<><D4B6>Э<EFBFBD><D0AD><EFBFBD><EFBFBD><E6B1BE>
char simNumber[24]; // sim<69><6D><EFBFBD><EFBFBD>
uint32_t gprsSendCount; // GPRS<52><53><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD>
uint32_t gprsSuccCount; // GPRS<52>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>
char gprsFailCode[6]; // GPRSʧ<53>ܴ<EFBFBD><DCB4><EFBFBD>
uint32_t bdNumber; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} sysinfo_power_t;
// <20><>ʾ<EFBFBD><CABE>ϵͳ<CFB5><CDB3>Ϣ
typedef struct
{
uint8_t boardFlag; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
unsigned : 8;
version_t hardVer;
version_t softVer;
date_t softDate;
unsigned : 8;
} sysinfo_display_t;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3>Ϣ
typedef struct
{
uint8_t boardFlag; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
unsigned : 8;
version_t hardVer;
version_t softVer;
date_t softDate;
char parity; // <20><>żУ<C5BC>ʽ
uint32_t baudrate; // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><E9B2A8><EFBFBD><EFBFBD>
version_t protocolVer; // <20><><EFBFBD><EFBFBD>Э<EFBFBD><D0AD><EFBFBD>
char moduleName[20]; // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} sysinfo_bluetooth_t;
// DTU<54>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>
typedef struct // size = 36
{
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 rssi; // GPRS<52>ź<EFBFBD>ǿ<EFBFBD><C7BF>
uint8_t networked; // <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
uint8_t connected; // <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD>
uint8_t netType; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned posState : 1; // GPS<50><53>λ״̬<D7B4><CCAC>ֻҪ<D6BB><D2AA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ1
unsigned recentPosState : 1; // <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ״̬
unsigned : 6;
uint8_t sateCount; // GPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t batPct; // <20><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD>ٷֱ<D9B7>
uint8_t batLow; // <20>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD>־
int16_t batVoltage; // <20><><EFBFBD>ص<EFBFBD>ѹ
uint16_t batMaxCapa; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint16_t batCapa; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int16_t batCurrent; // <20><><EFBFBD>س<EFBFBD>/<2F>ŵ<EFBFBD><C5B5><EFBFBD>
int16_t batTempr; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int16_t sunLevel; // <20><><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF>
} data_dtu_t;
// <20>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>
typedef struct // size = 118
{
uint32_t volumeTotal; // <20><><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD>
sensor_status_t staWeight; // <20><><EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC> size = 1
sensor_status_t staDPress; // <20><>ѹ/<2F><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD>״̬
sensor_status_t staPress; // ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
sensor_status_t staExtPress[3]; // <20><>չѹ<D5B9><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
sensor_status_t staExtTempr[3]; // <20><>չ<EFBFBD>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD>״̬
unsigned : 8;
float diff; // <20><>ѹ/<2F><><EFBFBD><EFBFBD>
float height; // Һλ<D2BA>߶<EFBFBD>
uint32_t volume; // <20>ݻ<EFBFBD>
uint32_t weight; // <20><><EFBFBD><EFBFBD>
uint16_t volumePct; // <20>ݻ<EFBFBD><DDBB>ٷֱ<D9B7>
uint16_t pressure; // ѹ<><D1B9>
uint16_t extPressure[3]; // <20><>չѹ<D5B9><D1B9>
int16_t extTempr[3]; // <20><>չ<EFBFBD><EFBFBD>
vacuum_data_t vacuum[1]; // <20><><EFBFBD>մ<EFBFBD><D5B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>A<EFBFBD><41>B<EFBFBD><42><EFBFBD><EFBFBD>size = 16 x 1
uint16_t ccsRemainDay;// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>ʱ<EFBFBD><EFBFBD>
uint32_t ccsVer; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
uint8_t reserved[2]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><C2B6>ֶΣ<D6B6><CEA3><EFBFBD><32><C2B7>Ϊ1·<31><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ24<32><34><EFBFBD>ֽڴ<D6BD>С<EFBFBD><D0A1>
leak_data_t leak; // й¶<D0B9><C2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD> size = 4
flow_data_t flow; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>size = 22
uint32_t adWeight; // <20><><EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>ADת<44><D7AA>ֵ
uint16_t adDPress; // <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ADת<44><D7AA>ֵ
uint16_t adPress; // ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ADת<44><D7AA>ֵ
uint16_t adExtPress[3]; // <20><>չѹ<D5B9><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ADת<44><D7AA>ֵ
uint16_t adExtTempr[3]; // <20><>չ<EFBFBD>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD>ADת<44><D7AA>ֵ
uint8_t charging; // <20><>װ<EFBFBD><D7B0>־
uint8_t warnning; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
} data_sample_t;
// adcֵ
typedef struct
{
uint16_t adcDiff; // <20><>ѹADCֵ
uint16_t adcPress; // ѹ<><D1B9>ADCֵ
uint16_t adcEPress[3]; // <20><>չѹ<D5B9><D1B9>ADCֵ
uint16_t adcETempr[3]; // <20><>չ<EFBFBD><EFBFBD>ADCֵ
uint32_t adcWeight; // <20><><EFBFBD><EFBFBD>ADCֵ
} adc_sample_t;
// <20><><EFBFBD><EFBFBD><E5BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CANͨѶ<CDA8><D1B6>Flash<73><68>д
typedef union
{
// <20>ֽڻ<D6BD><DABB><EFBFBD><E5A3AC><EFBFBD><EFBFBD>ͨ<EFBFBD>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD>ж<EFBFBD>д
uint8_t buff[DATA_BUFF_SIZE];
// <20>ֻ<EFBFBD><D6BB><EFBFBD>
uint16_t buff16[DATA_BUFF_SIZE / sizeof(uint16_t)];
// ˫<>ֻ<EFBFBD><D6BB><EFBFBD><E5A3AC><EFBFBD>ڶ<EFBFBD>дFlash
uint32_t buff32[DATA_BUFF_SIZE / sizeof(uint32_t)];
// <20><><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ч
config_header_t header; // ͷ<><CDB7>Ϣ
// <20><><EFBFBD>ݽṹ<DDBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶν<D6B6><CEBD><EFBFBD>
config_bottle_t configBottle;
config_sensor_t configSensor;
config_data_t configData;
config_display_t configDisplay;
sysinfo_sample_t sampleInfo;
sysinfo_power_t powerInfo;
sysinfo_display_t displayInfo;
sysinfo_bluetooth_t bluetoothInfo;
data_dtu_t dtuData;
data_sample_t sampleDdata;
adc_sample_t adcData;
} rd_buff_t;
// <20><><EFBFBD>ڴ洢<DAB4><E6B4A2><EFBFBD><EFBFBD>
typedef struct
{
config_bottle_t configBottle;
config_sensor_t configSensor;
config_data_t configData;
config_display_t configDisplay;
sysinfo_sample_t sampleInfo;
sysinfo_power_t powerInfo;
sysinfo_display_t displayInfo;
sysinfo_bluetooth_t bluetoothInfo;
data_dtu_t dtuData;
data_sample_t sampleData;
adc_sample_t adcData;
} data_buff_t;
#pragma pack(pop)
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF>ij<EFBFBD><C4B3><EFBFBD>
#define CONFIG_DATA_LEN(DC) Config_DataLen[(DC) - 1]
#define CONFIG_DATA_PTR(DC) Config_DataPtr[(DC) - 1]
extern const uint8_t Config_DataLen[];
extern const void* Config_DataPtr[];
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
extern data_buff_t dcBuff;
uint32_t Config_CheckValid(rd_buff_t *dataBuff, uint8_t DC);
void Config_ForceValid(rd_buff_t *dataBuff, uint8_t DC);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ı<DEB8>־
uint32_t Config_CheckUpdate(data_buff_t *dataBuff);
// <20><><EFBFBD>ô<EFBFBD><C3B4>޲<EFBFBD><DEB2><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
void Config_setBottleDefParam(data_buff_t *dataBuff);
// <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
void Config_setSensorDefParam(data_buff_t *dataBuff);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
void Config_setDataDefParam(data_buff_t *dataBuff);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
void Config_setDisplayDefParam(data_buff_t *dataBuff);
// <20><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD>ϵͳ<CFB5><CDB3>Ϣ
void Config_fillSampleInfo(data_buff_t *dataBuff);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>ϵͳ<CFB5><CDB3>Ϣ
void Config_fillPowerInfo(data_buff_t *dataBuff);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ϵͳ<CFB5><CDB3>Ϣ
void Config_fillDisplayInfo(data_buff_t *dataBuff);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3>Ϣ
void Config_fillBluetoothInfo(data_buff_t *dataBuff);
// <20><><EFBFBD>úͻ<C3BA>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>
void Config_SetDensity(uint8_t source, float density);
float Config_GetDensity(uint8_t source);
// <20><><EFBFBD><EFBFBD>ʽΪx16+x15+x2+1,LSB˳<42><CBB3>
uint16_t do_crc_16(unsigned short crc_reg, uint8_t *message, int16_t len);
#endif