R2UWaterRS485UW500/app/nb_upload_monitor.h

206 lines
6.3 KiB
C
Raw Permalink Normal View History

2024-06-03 15:49:39 +08:00
#ifndef _NB_UPLOAD_MONITOR_H_
#define _NB_UPLOAD_MONITOR_H_
#include "sys_config.h"
#if UPLOAD_MODE_1
#include "type.h"
#include "UWater_rtcc_driver.h"
#pragma pack(1) //1<>ֽڶ<D6BD><DAB6><EFBFBD>
//<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
#define NB_WAIT_TIME_5S 50 //50*100
#define NB_WAIT_TIME_10S 100 //100*100
//ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HOUR_TO_SECOND 3600
#define MINITE_TO_SECOND 60
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HOURS_OF_7YEARS 61320 //7<><37>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Сʱ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>
#if MODULE_ML307A_TCP
#define ENERGY_OF_26500 11400000 //19000mAhx60%,תuAH
#else
#define ENERGY_OF_26500 5100000 //8500mAhx60%,תuAH
#endif
//<2F><><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD>
#define ENERGY_OF_IDLE 2146000 //<2F><>35uA<75><41><EFBFBD><EFBFBD>7<EFBFBD><37>
//<2F><><EFBFBD>ƹ<EFBFBD><C6B9>ķ<EFBFBD><C4B7><EFBFBD>
#define ONE_HOUR_STATIC_ENERGY 35//1Сʱ<D0A1><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 35uAH
#define ONE_MIN_WAKE_ENERGY 21//<2F><><EFBFBD>ѻ<EFBFBD><D1BB>춨״̬<D7B4><CCAC><EFBFBD><EFBFBD>1.28mA, <20><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD>ӵĹ<D3B5><C4B9><EFBFBD>1240/60, 21uAH
#define VAVLE_WORK_ENERGY 42//<2F><><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>150mA<6D><41><EFBFBD><EFBFBD>,ÿ<><C3BF>42uAH
//<2F><>ͬ<EFBFBD>ź<EFBFBD>ǿ<EFBFBD>ȶ<EFBFBD>ӦNBÿ<42><EFBFBD><EBB9A6>
/*#define NB_UPLOAD_RSRP_110_ONE_SECOND_ENERGY 7.23//<2F><><EFBFBD><EFBFBD>
#define NB_UPLOAD_RSRP_100_ONE_SECOND_ENERGY 7.23
#define NB_UPLOAD_RSRP_90_ONE_SECOND_ENERGY 7.23
#define NB_UPLOAD_RSRP_80_ONE_SECOND_ENERGY 7.23
#define NB_UPLOAD_RSRP_70_ONE_SECOND_ENERGY 7.23*/
/*
NB<EFBFBD>ϱ<EFBFBD><EFBFBD>ź<EFBFBD>ǿ<EFBFBD>Ⱥ<EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD>
BC25ģ<EFBFBD><EFBFBD> BC28ģ<EFBFBD><EFBFBD> MN316ģ<EFBFBD><EFBFBD>
RSRP <EFBFBD><EFBFBD><EFBFBD><EFBFBD>mA <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ RSRP <EFBFBD><EFBFBD><EFBFBD><EFBFBD>mA <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ RSRP <EFBFBD><EFBFBD><EFBFBD><EFBFBD>mA <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
<90 24 6.7uAH <90 22 6.1 <90 22 6.1
<105 28 7.8 <105 26 7.2 <105 26 7.2
<115 32 8.9 <115 32 8.9 <115 32 8.9
<120 53 14.7 <120 92 25.6 <120 62 17.2
>120 60 16.7 >120 98 27.2 >120 72 20
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>28 7.8 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD> 24 6.7 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD> 45 12.5
*/
#if NB_MODULE_BC25
#define NB_UPLOAD_RSRP_90_ONE_SECOND_ENERGY 6.7
#define NB_UPLOAD_RSRP_105_ONE_SECOND_ENERGY 7.8
#define NB_UPLOAD_RSRP_115_ONE_SECOND_ENERGY 8.9
#define NB_UPLOAD_RSRP_120_ONE_SECOND_ENERGY 14.7
#define NB_UPLOAD_RSRP_WEAK_ONE_SECOND_ENERGY 16.7
#define NB_UPLOAD_RSRP_FAIL_ONE_SECOND_ENERGY 7.8
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NB<4E><42><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><><CAB5>ÿ<EFBFBD><C3BF>NB<4E><42><EFBFBD>ġ<EFBFBD>
#define NB_BAT_PARA (float)3 //BC25<32><35><EFBFBD>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>0.285mAH<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1.14/0.285=4
#elif NB_MODULE_MN316
#define NB_UPLOAD_RSRP_90_ONE_SECOND_ENERGY 6.1
#define NB_UPLOAD_RSRP_105_ONE_SECOND_ENERGY 7.2
#define NB_UPLOAD_RSRP_115_ONE_SECOND_ENERGY 8.9
#define NB_UPLOAD_RSRP_120_ONE_SECOND_ENERGY 17.2
#define NB_UPLOAD_RSRP_WEAK_ONE_SECOND_ENERGY 20
#define NB_UPLOAD_RSRP_FAIL_ONE_SECOND_ENERGY 12.5
#define NB_BAT_PARA (float)3 //MN316 <20><><EFBFBD>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>0.223mAH<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1.14/0.223=5.1,ȡ5
#elif NB_MODULE_BC28
#define NB_UPLOAD_RSRP_90_ONE_SECOND_ENERGY 6.1
#define NB_UPLOAD_RSRP_105_ONE_SECOND_ENERGY 7.2
#define NB_UPLOAD_RSRP_115_ONE_SECOND_ENERGY 8.9
#define NB_UPLOAD_RSRP_120_ONE_SECOND_ENERGY 25.6
#define NB_UPLOAD_RSRP_WEAK_ONE_SECOND_ENERGY 27.2
#define NB_UPLOAD_RSRP_FAIL_ONE_SECOND_ENERGY 6.7
#define NB_BAT_PARA (float)3 //BC28 <20><><EFBFBD>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>0.196mAH<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1.14/0.196=5.8,ȡ5
#elif MODULE_ML307A_TCP
#define NB_UPLOAD_RSRP_90_ONE_SECOND_ENERGY 17
#define NB_UPLOAD_RSRP_105_ONE_SECOND_ENERGY 18
#define NB_UPLOAD_RSRP_115_ONE_SECOND_ENERGY 21
#define NB_UPLOAD_RSRP_120_ONE_SECOND_ENERGY 25
#define NB_UPLOAD_RSRP_WEAK_ONE_SECOND_ENERGY 25
#define NB_UPLOAD_RSRP_FAIL_ONE_SECOND_ENERGY 12
#define NB_BAT_PARA (float)3 //ML307A <20><><EFBFBD>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>21x30=0.63mAH<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 3.62/0.63=5.7,ȡ5
#elif MODULE_ML302_TCP
#define NB_UPLOAD_RSRP_90_ONE_SECOND_ENERGY 17
#define NB_UPLOAD_RSRP_105_ONE_SECOND_ENERGY 18
#define NB_UPLOAD_RSRP_115_ONE_SECOND_ENERGY 21
#define NB_UPLOAD_RSRP_120_ONE_SECOND_ENERGY 25
#define NB_UPLOAD_RSRP_WEAK_ONE_SECOND_ENERGY 25
#define NB_UPLOAD_RSRP_FAIL_ONE_SECOND_ENERGY 12
#define NB_BAT_PARA (float)3 //ML307A <20><><EFBFBD>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>21x30=0.63mAH<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 3.62/0.63=5.7,ȡ5
#endif
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
#define UPDATE_MODE_DIFF 0x77
#define UPDATE_MODE_NORMAL 0x55
//ATָ<54><EFBFBD><EEBEAB><EFBFBD><EFBFBD>־
#define AT_SIMPLE_NULL 0
#define AT_SIMPLE_M1 1
#define AT_SIMPLE_M2 2
typedef struct
{
u8 up_retry_num;//<2F><><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>
u8 up_delay_time1;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1>
u8 up_delay_count;//ƫ<><C6AB>ʱ<EFBFBD><CAB1>
u8 up_day_count;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
u8 up_pass_flag;//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD><C9B9><EFBFBD>־
}STR_UPLOAD_CONTROL;
typedef enum
{
UP_RETRY_NUM = 0,//<2F><><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>
UP_DELAY_TIME1,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1>
UP_DELAY_COUNT,//<2F><>ʱ<EFBFBD>ϱ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UP_DAY_COUNT,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
UP_CGATT_FAIL,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD><C9B9><EFBFBD>־
UP_AT_SIMPLE,//AT<41>Ƿ񾫼<C7B7>
UP_WITH_UDP,//<2F>Ƿ<EFBFBD><C7B7><EFBFBD>UDP<44>ϱ<EFBFBD>
UP_ONLY_REV,//<2F>Ƿ<EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UP_BOOT_MSG,//<2F><>BOOT<4F><54>Ϣ
UP_BAT_STATE,//״̬<D7B4><CCAC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
UP_AT_ALL_MSG,//<2F>ϱ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
UP_PARA_NUM//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}ENUM_UPLOAD_CONTROL;
typedef enum
{
APP_LIFE_CNT_S0 = 0,
APP_LIFE_CNT_S1,
APP_LIFE_CNT_S2,
APP_LIFE_CNT_S3,
APP_LIFE_CNT_S4
}ENUM_APP_LIFE_CNT;
void AppLifeTimeCountMachine(void);
u8 AppLifeTimeCountMachineIfIdle(void);
void NbUploadParaSet(void);
void setUploadControlPara(ENUM_UPLOAD_CONTROL paraId, u8 paraData);
u8 getUploadControlPara(ENUM_UPLOAD_CONTROL paraId);
#elif UPLOAD_MODE_2
#include "type.h"
#include "UWater_rtcc_driver.h"
#pragma pack(1) //1<>ֽڶ<D6BD><DAB6><EFBFBD>
//ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HOUR_TO_SECOND 3600
#define MINITE_TO_SECOND 60
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HOURS_OF_7YEARS 61320 //7<><37>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Сʱ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>
#if MODULE_ML307A_TCP
#define ENERGY_OF_26500 11400000 //19000mAhx60%,תuAH
#else
#define ENERGY_OF_26500 5100000 //8500mAhx60%,תuAH
#endif
//<2F><><EFBFBD>ƹ<EFBFBD><C6B9>ķ<EFBFBD><C4B7><EFBFBD>
#define ONE_HOUR_STATIC_ENERGY 35//1Сʱ<D0A1><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 35uAH
#define ONE_MIN_WAKE_ENERGY 21//<2F><><EFBFBD>ѻ<EFBFBD><D1BB>춨״̬<D7B4><CCAC><EFBFBD><EFBFBD>1.28mA, <20><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD>ӵĹ<D3B5><C4B9><EFBFBD>1240/60, 21uAH
#define VAVLE_WORK_ENERGY 42//<2F><><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>150mA<6D><41><EFBFBD><EFBFBD>,ÿ<><C3BF>42uAH
#define BLE_ONE_MIN_ENERGY 25//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1.5mA,ÿ<><EFBFBD><EBB9A6>25uAH
typedef enum
{
APP_LIFE_CNT_S0 = 0,
APP_LIFE_CNT_S1,
APP_LIFE_CNT_S2,
APP_LIFE_CNT_S3,
APP_LIFE_CNT_S4
}ENUM_APP_LIFE_CNT;
typedef enum
{
UP_RETRY_NUM = 0,//<2F><><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>
UP_DELAY_TIME1,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1>
UP_DELAY_COUNT,//<2F><>ʱ<EFBFBD>ϱ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UP_DAY_COUNT,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
UP_CGATT_FAIL,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD><C9B9><EFBFBD>־
UP_AT_SIMPLE,//AT<41>Ƿ񾫼<C7B7>
UP_WITH_UDP,//<2F>Ƿ<EFBFBD><C7B7><EFBFBD>UDP<44>ϱ<EFBFBD>
UP_ONLY_REV,//<2F>Ƿ<EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UP_BOOT_MSG,//<2F><>BOOT<4F><54>Ϣ
UP_BAT_STATE,//״̬<D7B4><CCAC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
UP_AT_ALL_MSG,//<2F>ϱ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
UP_PARA_NUM//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}ENUM_UPLOAD_CONTROL;
void AppLifeTimeCountMachine(void);
u8 AppLifeTimeCountMachineIfIdle(void);
u8 getUploadControlPara(ENUM_UPLOAD_CONTROL paraId);
#endif
#endif