P8UWaterPlasticIES4G/app/UWater_SS_DataStore.c

111 lines
3.8 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "UWater_frame_app.h"
#include "UWater_eeprom_driver.h"
#include "UWater_rtcc_app.h"
#include "UWater_power_app.h"
#include "UWater_rtcc_driver.h"
#include "UWater_gp22_app.h"
#include "UWater_Nb_SS_DataManage.h"
#include "UWater_DataTools_App.h"
#include "UWater_key_app.h"
#include "UWater_pt_app.h"
#include "UWater_DebugPrint.h"
#include "UWater_ir_app.h"
#include "UWater_Valve_app.h"
#include <string.h>
#include "nb_uart_driver_bc25.h"
#include "nb_driver_bc25.h"
#include "UWater_JX_Store_App.h"
STRU_UPLOAD_FRAME upload_frame; //coap上报数据帧
//获取上报信号值,电池电压
static void UploadGetInfo(void)
{
s16 s_temp_data=0;
NbiotGetSNR(&s_temp_data);
if(s_temp_data<0)
{
upload_frame.data.UploadInfo.metinfo.snr_val =(-s_temp_data);
upload_frame.data.UploadInfo.metinfo.snr_val |= 0x8000;
}
else
{
upload_frame.data.UploadInfo.metinfo.snr_val = s_temp_data;
}
//
NbiotGetECL(&s_temp_data);
if(s_temp_data<0)
{
upload_frame.data.UploadInfo.metinfo.ecl_val |= (-s_temp_data)&0x8000;
}
else
{
upload_frame.data.UploadInfo.metinfo.ecl_val = s_temp_data;
}
//
NbiotGetRSRP(&s_temp_data);
upload_frame.data.UploadInfo.metinfo.RSRP_val = -s_temp_data;
NbiotGetCSQ(&upload_frame.data.UploadInfo.metinfo.single_val);
upload_frame.data.UploadInfo.metinfo.single_val = (upload_frame.data.UploadInfo.metinfo.single_val / 10)*16 + (upload_frame.data.UploadInfo.metinfo.single_val%10);
//获取电压值
upload_frame.data.UploadInfo.metinfo.bat_val.u16_data =HexToBcd16(PowerCheckValueSys());
upload_frame.data.UploadInfo.metinfo.bat_threshold_val = 0x03;//欠压阈值3v
}
//更新数据包中的当前流量和信息状态
void Upload_RenewCurrentData(void)
{
MET_STATE temp_state; //状态字
u8 temp1 = 0;
tmp_float.gp22_u32 = Gp30CheckDataApp(2);
upload_frame.data.CurrentFlow.datas = (u32)(tmp_float.gp22_float*10);//当前累计流量
upload_frame.data.CurrentFlowForward.datas = upload_frame.data.CurrentFlow.datas;//当前累计正向流量
tmp_float.gp22_u32 = Gp30CheckDataApp(3);//当前累积逆向流量
upload_frame.data.CurrentFlowReverse.datas = (u32)(tmp_float.gp22_float*10);
//获取:日最高流量(4字节),日最高流量持续时间(2字节),日最高流量开始时间(8字节,预留)
RtccCheck_Hight_Flow(&hight_flow);
for(temp1 = 0; temp1 <14 ;temp1++)
{
upload_frame.data.DailyHighestFlowAndTime[temp1] = *(hight_flow+temp1);
}
//获取:rsrp(2B),电池电压(2B),信噪比(2B),无线信号覆盖等级ecl(2B),CSQ(1B),电压阈值(1B)
UploadGetInfo();//UploadGetReportInfo(upload_frame.data.UploadInfo.byte);
//获取间隔流量:2B(间隔流量)X2(次/h)X24h=96B
/*
上报时通过UPLOAD_DATA_READ_HIS获取0点存储时通过UPLOAD_DATA_STEP_FLOW获取
*/
//上报时间
RtccGetDateTime(&Rtcc_time);//上报时间
upload_frame.data.UploadTime[0] = Rtcc_time.s.second;
upload_frame.data.UploadTime[1] = Rtcc_time.s.minute;
upload_frame.data.UploadTime[2] = Rtcc_time.s.hour;
upload_frame.data.UploadTime[3] = Rtcc_time.s.day;
upload_frame.data.UploadTime[4] = Rtcc_time.s.month;
upload_frame.data.UploadTime[5] = Rtcc_time.s.year;
upload_frame.data.UploadTime[6] = 0x20;
//间隔流量起始时间
upload_frame.data.StepFlowStartTime[0]= 0x00;
upload_frame.data.StepFlowStartTime[1]= 0x00;
upload_frame.data.StepFlowStartTime[2]= 0x00;
upload_frame.data.StepFlowStartTime[3]= g_date_jiange.s.day ;
upload_frame.data.StepFlowStartTime[4]= g_date_jiange.s.month;
upload_frame.data.StepFlowStartTime[5]= g_date_jiange.s.year;
upload_frame.data.StepFlowStartTime[6]= 0x20;
//状态字
temp_state = FrameGetByte();
upload_frame.data.StateBytes[0] = temp_state.stat0;
upload_frame.data.StateBytes[1] = temp_state.stat1;
upload_frame.data.StateBytes[2] = temp_state.stat2;
upload_frame.data.StateBytes[3] = temp_state.stat3;
upload_frame.data.StateBytes[4] = temp_state.stat4;
//累计活跃时间
upload_frame.data.DailyActiveTime.datas = g_activity_times;
}