243 lines
6.6 KiB
C
243 lines
6.6 KiB
C
|
/*
|
|||
|
* File: __GP22LoRa_RTCC_APP_C
|
|||
|
* Author:
|
|||
|
*
|
|||
|
* Created on<EFBFBD><EFBFBD>2017-7-24
|
|||
|
*/
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
extern "C"
|
|||
|
{
|
|||
|
#endif
|
|||
|
|
|||
|
#include "type.h"
|
|||
|
#include "UWater_rtcc_driver.h"
|
|||
|
#include "UWater_power_app.h"
|
|||
|
#include "UWater_eeprom_driver.h"
|
|||
|
#include "UWater_valve_driver.h"
|
|||
|
#include "UWater_timer1uS_driver.h"
|
|||
|
|
|||
|
#include "UWater_rtcc_app.h"
|
|||
|
#include "UWater_frame_app.h"
|
|||
|
#include "UWater_lcd_app.h"
|
|||
|
#include "UWater_gp22_app.h"
|
|||
|
#include "UWater_valve_app.h"
|
|||
|
#include "UWater_DataTools_App.h"
|
|||
|
//#include "sys_processor.h"
|
|||
|
#include "UWater_pt_app.h"
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//static RTCC_EE_DATA ee_data; //RTCC<43><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
RTCC_HISTORY_DATA ee_history_data; //<2F><>ʷ<EFBFBD><CAB7><EFBFBD>ݵ<EFBFBD>Ԫ
|
|||
|
|
|||
|
u8 miji_collect_buf[384];//<2F>ܼ<EFBFBD><DCBC>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|||
|
static u8 miji_collect_send_buf[192];//<2F>ܼ<EFBFBD><DCBC>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
RTCC_To_Float old_total_flow;//5min<69>ۻ<EFBFBD><DBBB><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
RTCC_To_Float new_total_flow;//5min<69>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
RTCC_UNION_2U8TOU16 miji_date;
|
|||
|
static u16 date_remember = 0;
|
|||
|
RTCC_To_Float temp_to_gloat;//<2F><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>ר<EFBFBD><D7A8>
|
|||
|
RTCC_UNION_2U8TOU16 jiange_date;
|
|||
|
//static u16 pulse_day_max_flow_time_temp;
|
|||
|
//static u32 old_total_speed = 0;
|
|||
|
//static u32 new_total_speed = 0;
|
|||
|
//static u8 date_flag = 0;
|
|||
|
static u8 s_g_rtcc_is_error = 0; //2015-6-3 Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
static u8 s_g_rtcc_msg = 0; //2015-6-3
|
|||
|
//static float s_daily_temprature[3];
|
|||
|
//static u16 s_daily_temprature_min_max[2];
|
|||
|
|
|||
|
/*****************************/
|
|||
|
u8 RtccIsError()
|
|||
|
{
|
|||
|
if((RTC_ClkSource()==1)||(s_g_rtcc_is_error == 1))
|
|||
|
{
|
|||
|
return 1;
|
|||
|
}
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
void RtccClearError(void)
|
|||
|
{
|
|||
|
s_g_rtcc_is_error = 0;
|
|||
|
}
|
|||
|
/*************************************************
|
|||
|
Function<EFBFBD><EFBFBD>void RtccInitApp()
|
|||
|
Description<EFBFBD><EFBFBD>RTCC INIT
|
|||
|
Input<EFBFBD><EFBFBD>void
|
|||
|
Output<EFBFBD><EFBFBD>void
|
|||
|
Return<EFBFBD><EFBFBD>void
|
|||
|
Others:
|
|||
|
*************************************************/
|
|||
|
|
|||
|
|
|||
|
/*************************************************
|
|||
|
Function<EFBFBD><EFBFBD>u8 RtccCheckMsgApp(void)
|
|||
|
Description<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD>ǰ<EFBFBD>Ƿ<EFBFBD><EFBFBD>ڻ<EFBFBD>Ծ״̬<EFBFBD><EFBFBD>ÿһСʱ<EFBFBD>ж<EFBFBD>һ<EFBFBD>εĽӿڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>
|
|||
|
Input<EFBFBD><EFBFBD>
|
|||
|
Output<EFBFBD><EFBFBD>bit0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ծ״̬<EFBFBD><EFBFBD>ÿһСʱ<EFBFBD>ж<EFBFBD>һ<EFBFBD>εĽӿڣ<EFBFBD>
|
|||
|
bit1<EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD>Ծ״̬<EFBFBD><EFBFBD>ÿһСʱ<EFBFBD>ж<EFBFBD>һ<EFBFBD>εĽӿڣ<EFBFBD>
|
|||
|
bit2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<EFBFBD>䵽MSG<EFBFBD><EFBFBD>ѯ<EFBFBD>ӿ<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<EFBFBD>䵽<EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD>
|
|||
|
bit3<EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD>ݴ<EFBFBD>ʱ<EFBFBD>䵽MSG
|
|||
|
bit4: Уʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵݴ<EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><EFBFBD>msg
|
|||
|
bit5: <EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD>MSG
|
|||
|
|
|||
|
Return<EFBFBD><EFBFBD>void
|
|||
|
Others:
|
|||
|
*************************************************/
|
|||
|
u8 RtccCheckMsgApp(Rtcc_MsgTypeDef msg_bit)
|
|||
|
{
|
|||
|
return (s_g_rtcc_msg & (1 << msg_bit));
|
|||
|
}
|
|||
|
/*************************************************
|
|||
|
Function<EFBFBD><EFBFBD>u8 RtccClearMsgApp()
|
|||
|
Description<EFBFBD><EFBFBD><EFBFBD><EFBFBD>MSG<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>Ƿ<EFBFBD><EFBFBD>ڻ<EFBFBD>Ծ״̬<EFBFBD><EFBFBD>ÿһСʱ<EFBFBD>ж<EFBFBD>һ<EFBFBD>εĽӿڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>
|
|||
|
Input<EFBFBD><EFBFBD>clear_bit<EFBFBD><EFBFBD>
|
|||
|
* 0<EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>壬ȱʡ
|
|||
|
* 1<EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>壬ȱʡ
|
|||
|
* 2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<EFBFBD>䵽MSG
|
|||
|
* 3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD>ݴ<EFBFBD>ʱ<EFBFBD>䵽MSG
|
|||
|
* 4<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Уʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵݴ<EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><EFBFBD>msg
|
|||
|
* 5<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD>MSG
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>0,1,2,3,4,5
|
|||
|
Output<EFBFBD><EFBFBD>
|
|||
|
Return<EFBFBD><EFBFBD>void
|
|||
|
Others:
|
|||
|
*************************************************/
|
|||
|
void RtccClearMsgApp(Rtcc_MsgTypeDef clear_bit)
|
|||
|
{
|
|||
|
s_g_rtcc_msg &= ~(1 << clear_bit);
|
|||
|
}
|
|||
|
|
|||
|
void RtccSetMsgApp(Rtcc_MsgTypeDef set_bit)
|
|||
|
{
|
|||
|
s_g_rtcc_msg |= (1 << set_bit);
|
|||
|
}
|
|||
|
|
|||
|
/****************************************************************
|
|||
|
Function: void RtccAppCheckMiJi(DateTime alarm_time)
|
|||
|
Description: <EFBFBD><EFBFBD>ѯ<EFBFBD>ܼ<EFBFBD><EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD>ÿ5min<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>
|
|||
|
Input:
|
|||
|
Return:
|
|||
|
Others:
|
|||
|
|
|||
|
*****************************************************************/
|
|||
|
void RtccAppCheckMiJi(DateTime alarm_time) //ÿ5min<69><6E>һ<EFBFBD><D2BB>
|
|||
|
{
|
|||
|
To_u32_Rtcc miji_begin_date, miji_begin_time, miji_end_date;
|
|||
|
u8 miji_now_time , miji_begin_time_hex; u32 temp_value = 0;
|
|||
|
|
|||
|
miji_begin_date.rtcc_u32 = FrameCheckParaApp(FramePara_ReportStartDMY); //<2F>ܼ<EFBFBD><DCBC>ϱ<EFBFBD><CFB1><EFBFBD>ʼʱ<CABC><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bcd
|
|||
|
miji_begin_time.rtcc_u32 = FrameCheckParaApp(FramePara_ReportStartSMH); //<2F>ܼ<EFBFBD><DCBC>ϱ<EFBFBD><CFB1><EFBFBD>ʼʱ<CABC><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱbcd
|
|||
|
miji_end_date.rtcc_u32 = FrameCheckParaApp(FramePara_ReportEndSMH); //<2F>ܼ<EFBFBD><DCBC>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bcd
|
|||
|
temp_value = (alarm_time.s.year<<16) | (alarm_time.s.month<<8) | (alarm_time.s.day) ;
|
|||
|
|
|||
|
if((miji_begin_date.rtcc_u32 <= temp_value) && (miji_end_date.rtcc_u32 >= temp_value)) //<2F>ڿ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>ںͽ<DABA><CDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>գ<EFBFBD>
|
|||
|
{
|
|||
|
u16 tmpi =0;
|
|||
|
if(miji_begin_time.rtcc_u8[0] <= alarm_time.s.hour) //ֻ<>жϵ<D0B6>Сʱ<D0A1><CAB1><EFBFBD>̶<EFBFBD><CCB6><EFBFBD>00<30>֡<EFBFBD>
|
|||
|
{
|
|||
|
if((miji_begin_time.rtcc_u8[0] == alarm_time.s.hour) && (0 == alarm_time.s.minute)) //<2F>տ<EFBFBD>ʼ<EFBFBD>棬<EFBFBD><E6A3AC><EFBFBD><EFBFBD>buf
|
|||
|
{
|
|||
|
//<2F><><EFBFBD>洢buf
|
|||
|
for (tmpi = 0;tmpi < 384;tmpi++)
|
|||
|
{
|
|||
|
miji_collect_buf[tmpi] = 0;
|
|||
|
date_remember = 0;
|
|||
|
}
|
|||
|
old_total_flow.gp22_u32 = Gp30CheckDataApp(2); //<2F><><EFBFBD><EFBFBD><EFBFBD>ܼ<EFBFBD><DCBC>ɼ<EFBFBD><C9BC><EFBFBD>ʼֵ
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
miji_now_time = (alarm_time.s.hour >> 4)*10 + (alarm_time.s.hour & 0x0F);//ת<><D7AA>Ϊ16<31><36><EFBFBD>ƱȽ<C6B1>
|
|||
|
miji_begin_time_hex = (miji_begin_time.rtcc_u8[0] >> 4)*10 + (miji_begin_time.rtcc_u8[0] & 0x0F);
|
|||
|
if((miji_begin_time_hex + 4) >= miji_now_time) //<2F>ܼ<EFBFBD><DCBC>ϱ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
//<2F>ܼ<EFBFBD><DCBC>ϱ<EFBFBD><CFB1>洢
|
|||
|
new_total_flow.gp22_u32 = Gp30CheckDataApp(2);
|
|||
|
miji_date.datas = (u16)((new_total_flow.gp22_float - old_total_flow.gp22_float)*10);
|
|||
|
miji_collect_buf[date_remember] = miji_date.datas_map.data0;
|
|||
|
miji_collect_buf[date_remember+1] = miji_date.datas_map.data1;
|
|||
|
miji_collect_buf[date_remember+2] = 0;
|
|||
|
miji_collect_buf[date_remember+3] = 0;
|
|||
|
old_total_flow.gp22_u32 = new_total_flow.gp22_u32;
|
|||
|
date_remember = date_remember +4;
|
|||
|
if(384 == date_remember )
|
|||
|
{
|
|||
|
date_remember = 384;
|
|||
|
}
|
|||
|
}
|
|||
|
if(((miji_begin_time_hex + 4) == miji_now_time) && (0 == alarm_time.s.minute)) //<2F>ܼ<EFBFBD><DCBC>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
{
|
|||
|
if(date_remember >192)
|
|||
|
{
|
|||
|
date_remember = date_remember -192;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
date_remember =0;
|
|||
|
}
|
|||
|
for (tmpi = 0;tmpi < 192;tmpi++)
|
|||
|
{
|
|||
|
miji_collect_send_buf[tmpi] = miji_collect_buf[date_remember+tmpi];
|
|||
|
}
|
|||
|
for (tmpi = 0;tmpi < 384;tmpi++)
|
|||
|
{
|
|||
|
miji_collect_buf[tmpi] = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BUF
|
|||
|
}
|
|||
|
date_remember = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
RtccSetMsgApp(RtccMsg_MiJiCaiJi);//s_g_rtcc_msg |= BIT1; //<2F>ܼ<EFBFBD><DCBC>ɼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>գ<EFBFBD><D5A3><EFBFBD>4h<34>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>MSG
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
RtccClearMsgApp(RtccMsg_MiJiCaiJi);//s_g_rtcc_msg &= ~BIT1;
|
|||
|
}
|
|||
|
}
|
|||
|
/*************************************************
|
|||
|
Function<EFBFBD><EFBFBD>u32 RtccGetWorkHourApp()
|
|||
|
Description<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD>ʱ<EFBFBD><EFBFBD>
|
|||
|
Input<EFBFBD><EFBFBD>void
|
|||
|
Output<EFBFBD><EFBFBD>void
|
|||
|
Return<EFBFBD><EFBFBD>void
|
|||
|
Others:
|
|||
|
*************************************************/
|
|||
|
u32 RtccGetWorkHourApp(void)
|
|||
|
{
|
|||
|
return Sys_data_object.ee_data.data.work_hour;
|
|||
|
}
|
|||
|
/*************************************************
|
|||
|
Function<EFBFBD>Gp30CheckJianGeDataApp(u8 *addr)
|
|||
|
Description<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD>ܼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Input<EFBFBD><EFBFBD>void
|
|||
|
Output<EFBFBD><EFBFBD>void
|
|||
|
Return<EFBFBD><EFBFBD>void
|
|||
|
Others:
|
|||
|
*************************************************/
|
|||
|
void Gp30CheckMiJiDataApp(u8 **addr)
|
|||
|
{
|
|||
|
*addr = miji_collect_send_buf;
|
|||
|
}
|
|||
|
/*************************************************
|
|||
|
Function<EFBFBD>Gp30CheckJianGeDataApp(u8 *addr)
|
|||
|
Description<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>µļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Input<EFBFBD><EFBFBD>void
|
|||
|
Output<EFBFBD><EFBFBD>void
|
|||
|
Return<EFBFBD><EFBFBD>void
|
|||
|
Others:
|
|||
|
*************************************************/
|
|||
|
void Gp30CheckJianGeDataApp(u8 **addr)
|
|||
|
{
|
|||
|
*addr = 0;//jiange_collect_send_buf;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
}
|
|||
|
#endif
|
|||
|
|
|||
|
|