714 lines
22 KiB
C
714 lines
22 KiB
C
|
#include "sys_config.h"
|
|||
|
#if PRODUCT_JS
|
|||
|
#include "UWater_frame_app.h"
|
|||
|
#include "UWater_eeprom_driver.h"
|
|||
|
#include "UWater_rtcc_app.h"
|
|||
|
#include "UWater_power_app.h"
|
|||
|
#include "UWater_lcd_app.h"
|
|||
|
#include "UWater_gp22_app.h"
|
|||
|
#include "sys_processor.h"
|
|||
|
#include "UWater_DataTools_App.h"
|
|||
|
#include "UWater_JX_Store_App.h"
|
|||
|
#include "UWater_sys.h"
|
|||
|
/******************************************************************************************************
|
|||
|
com_rxbuf_wcount_copy<EFBFBD><EFBFBD>com_rxbuf_rcount_copy <EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD>¼<EFBFBD>ϱ<EFBFBD>ʱ<EFBFBD>̵<EFBFBD>com_rxbuf_wcount<EFBFBD><EFBFBD> com_rxbuf_rcount;
|
|||
|
<EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺὫcom_rxbuf_rcount_copy<EFBFBD><EFBFBD><EFBFBD><EFBFBD>com_rxbuf_rcount<EFBFBD><EFBFBD><EFBFBD>¡<EFBFBD>
|
|||
|
*/
|
|||
|
#define __no_init __attribute__((zero_init))
|
|||
|
__no_init volatile u32 jx_com_rxbuf_wcount_copy __attribute__((section(".ARM.__at_0x20007F28")));
|
|||
|
__no_init volatile u32 jx_com_rxbuf_rcount_copy __attribute__((section(".ARM.__at_0x20007F2C")));
|
|||
|
__no_init volatile u16 jx_com_rxbuf_check_copy __attribute__((section(".ARM.__at_0x20007F30")));
|
|||
|
|
|||
|
UNION_4U8TOU32 com_rxbuf_wcount, com_rxbuf_rcount; //<2F>洢<EFBFBD><E6B4A2><EFBFBD>ݶ<EFBFBD>дָ<D0B4><D6B8>
|
|||
|
UNION_4U8TOU32 com_rxbuf_wcount_copy, com_rxbuf_rcount_copy; //<2F>洢<EFBFBD><E6B4A2><EFBFBD>ݶ<EFBFBD>дָ<D0B4><D6B8><EFBFBD>ϴ<EFBFBD>ʱ<EFBFBD>䶳<EFBFBD><E4B6B3>ָ<EFBFBD><D6B8>
|
|||
|
u32 temp_rxbuf_rcount=0;
|
|||
|
//<2F>ϴ<EFBFBD>ʱcom_rxbuf_rcount_copy<70>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>ǰcom_rxbuf_rcount_copy=temp_rxbuf_rcount<6E><74><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD>temp_rxbuf_rcount=com_rxbuf_rcount_copy
|
|||
|
/******************************************************************************************************/
|
|||
|
/*
|
|||
|
old_miji_interval_flow<EFBFBD><EFBFBD>new_miji_interval_flow<EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD>new_miji_interval_flow<EFBFBD><EFBFBD>old_miji_interval_flow<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>仯ʱ,
|
|||
|
<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>ֵnew_miji_interval_flow-old_miji_interval_flow<EFBFBD><EFBFBD>Ϊ
|
|||
|
*/
|
|||
|
U32_To_Float old_miji_interval_flow;
|
|||
|
U32_To_Float new_miji_interval_flow;
|
|||
|
U32_To_Float temp_base_flow;
|
|||
|
static u8 miji_interval_time;//<2F>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
/******************************************************************************************************/
|
|||
|
static DateTime s_temp_store_Time;//<2F><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ǰʱ<C7B0><CAB1>
|
|||
|
UNION_JX_STORE_PackHead u_temp_store_data;//<2F><><EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><E6B4A2><EFBFBD>ݸ<EFBFBD>ʽ
|
|||
|
|
|||
|
u8 upload_store_buf[JX_UPLOAD_LEN];//364 <20>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB>棺8<E6A3BA>ֽڼ<D6BD><DABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD>45<34><35>+4<>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u8 upload_store_count=0; //<2F><>¼<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>ʵ<EFBFBD>ʵļ<CAB5><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ಹ0xFF
|
|||
|
|
|||
|
u8 s_temp_store_ee_msg; //EEPROM<4F><4D><EFBFBD><EFBFBD>״̬
|
|||
|
|
|||
|
static u8 jiangxi_store_first_power_flag=0;//<2F><>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>־
|
|||
|
static TYP_STATE_JX jiangxi_store_init_step=JX_STATE_S0;//<2F>ϵ<EFBFBD><CFB5><EFBFBD>ʼ<EFBFBD><CABC>״̬
|
|||
|
static TYP_STATE_JX step_jx_store=JX_STATE_S0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢״̬
|
|||
|
/******************************************************************************************************
|
|||
|
JiangXiStore_InitApp
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>洢<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡָ<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>
|
|||
|
******************************************************************************************************/
|
|||
|
void JiangXiStore_InitApp(void)
|
|||
|
{
|
|||
|
jiangxi_store_init_step = JX_STATE_S1;
|
|||
|
while(jiangxi_store_init_step)
|
|||
|
{
|
|||
|
switch(jiangxi_store_init_step)
|
|||
|
{
|
|||
|
case JX_STATE_S0:
|
|||
|
{
|
|||
|
break;
|
|||
|
}
|
|||
|
case JX_STATE_S1:
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
EepRead(EEP_ADDR_JX_STORE_FIRST_POWER, &jiangxi_store_first_power_flag, 1, &s_temp_store_ee_msg);
|
|||
|
jiangxi_store_init_step = JX_STATE_S2;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case JX_STATE_S2:
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
if (0x55 == jiangxi_store_first_power_flag)
|
|||
|
{
|
|||
|
jiangxi_store_init_step = JX_STATE_S20;
|
|||
|
}
|
|||
|
else //<2F><>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD>
|
|||
|
{
|
|||
|
com_rxbuf_wcount.datas = 0;
|
|||
|
com_rxbuf_rcount.datas = 0;
|
|||
|
StoreRWIndex_2_Ram();
|
|||
|
jiangxi_store_init_step = JX_STATE_S10;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
//<2F><>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD>
|
|||
|
case JX_STATE_S10://<2F><><EFBFBD><EFBFBD>дָ<D0B4><D6B8>
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
EepWrite(&com_rxbuf_wcount.data_buf[0], EEP_ADDR_JX_STORE_WRITE, 4, &s_temp_store_ee_msg);
|
|||
|
jiangxi_store_init_step = JX_STATE_S11;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case JX_STATE_S11://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
{
|
|||
|
if ((SUCCESS == EepCheckMsg(s_temp_store_ee_msg)) && (TASK_IDLE == EepIfIdle()))
|
|||
|
{
|
|||
|
EepWrite(&com_rxbuf_rcount.data_buf[0], EEP_ADDR_JX_STORE_READ, 4, &s_temp_store_ee_msg);
|
|||
|
jiangxi_store_init_step = JX_STATE_S12;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case JX_STATE_S12://<2F><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>־
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
jiangxi_store_first_power_flag = 0x55;
|
|||
|
EepWrite(&jiangxi_store_first_power_flag, EEP_ADDR_JX_STORE_FIRST_POWER, 1, &s_temp_store_ee_msg);
|
|||
|
jiangxi_store_init_step = JX_STATE_S30;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
//<2F>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD>
|
|||
|
case JX_STATE_S20://<2F><>ȡдָ<D0B4><D6B8>
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
EepRead(EEP_ADDR_JX_STORE_WRITE, com_rxbuf_wcount.data_buf, 4, &s_temp_store_ee_msg);
|
|||
|
jiangxi_store_init_step = JX_STATE_S21;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case JX_STATE_S21://<2F><>ȡ<EFBFBD><C8A1>ָ<EFBFBD><D6B8>
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
EepRead(EEP_ADDR_JX_STORE_READ, com_rxbuf_rcount.data_buf, 4, &s_temp_store_ee_msg);
|
|||
|
jiangxi_store_init_step = JX_STATE_S30;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
//<2F>ȴ<EFBFBD>EE<45><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
case JX_STATE_S30:
|
|||
|
{
|
|||
|
if (TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
if(jx_com_rxbuf_check_copy == getCRC_HisIndex(jx_com_rxbuf_wcount_copy, jx_com_rxbuf_rcount_copy))
|
|||
|
{
|
|||
|
com_rxbuf_wcount.datas = jx_com_rxbuf_wcount_copy;
|
|||
|
com_rxbuf_rcount.datas = jx_com_rxbuf_rcount_copy;
|
|||
|
}
|
|||
|
jiangxi_store_init_step = JX_STATE_S0;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
default:
|
|||
|
{
|
|||
|
jiangxi_store_init_step = JX_STATE_S0;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
EepMachineDriver();
|
|||
|
}
|
|||
|
}
|
|||
|
/*************************************************************************
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>write_com_rx_data
|
|||
|
˵ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>洢һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>Ͱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>:UNION_JX_STORE_PackHead<EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>ÿ45<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD>Ӧһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD>
|
|||
|
*************************************************************************/
|
|||
|
int write_com_rx_data(UNION_JX_STORE_PackHead *dat)
|
|||
|
{
|
|||
|
static TYP_STATE_JX step_store_write=JX_STATE_S0;
|
|||
|
switch(step_store_write)
|
|||
|
{
|
|||
|
case JX_STATE_S0://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
if(com_rxbuf_wcount.datas == 0xFFFFFFFF)//<2F>ж<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>
|
|||
|
{
|
|||
|
com_rxbuf_wcount.datas = 0;//<2F><><EFBFBD>³<EFBFBD>ʼ<EFBFBD><CABC>ָ<EFBFBD><D6B8>
|
|||
|
com_rxbuf_rcount.datas = 0;
|
|||
|
StoreRWIndex_2_Ram();
|
|||
|
}
|
|||
|
EepWrite(dat->Stru.StepUnion.buf, (EEP_ADDR_JX_STORE_STEP_START + (com_rxbuf_wcount.datas%COM_RXBUF_MAX)*8), 8, &s_temp_store_ee_msg);
|
|||
|
step_store_write = JX_STATE_S1;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case JX_STATE_S1://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
if((com_rxbuf_wcount.datas % 45) == 0)
|
|||
|
{
|
|||
|
EepWrite(dat->Stru.BaseFlowData.data_buf, EEP_ADDR_JX_STORE_BASE_START + ((com_rxbuf_wcount.datas%COM_RXBUF_MAX)/45)*4, 4, &s_temp_store_ee_msg);
|
|||
|
}
|
|||
|
step_store_write = JX_STATE_S2;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case JX_STATE_S2://<2F><><EFBFBD><EFBFBD>дָ<D0B4><D6B8>
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())//eeд<65><D0B4><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
com_rxbuf_wcount.datas ++;
|
|||
|
StoreRWIndex_2_Ram();
|
|||
|
step_store_write = JX_STATE_S0;
|
|||
|
return SUCCESS;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
default:
|
|||
|
{
|
|||
|
step_store_write = JX_STATE_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
return ERROR;
|
|||
|
}
|
|||
|
/*************************************************************************
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:Copy_R_W_Count
|
|||
|
˵ <EFBFBD><EFBFBD>:<EFBFBD>ϴ<EFBFBD>ʱ<EFBFBD>̶<EFBFBD><EFBFBD>ᵱǰ<EFBFBD>洢<EFBFBD>Ķ<EFBFBD><EFBFBD><EFBFBD>дָ<EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɷ<EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD>ɷ<EFBFBD><EFBFBD><EFBFBD>0xFF
|
|||
|
*************************************************************************/
|
|||
|
u8 Copy_R_W_Count(void)
|
|||
|
{
|
|||
|
static TYP_STATE_JX step_store_read_count_copy=JX_STATE_S0;
|
|||
|
switch(step_store_read_count_copy)
|
|||
|
{
|
|||
|
case JX_STATE_S0:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
if((com_rxbuf_wcount.datas == 0xFFFFFFFF)||(com_rxbuf_rcount.datas == 0xFFFFFFFF))//<2F>ж<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>
|
|||
|
{
|
|||
|
com_rxbuf_wcount.datas = 0;
|
|||
|
com_rxbuf_rcount.datas = 0;
|
|||
|
StoreRWIndex_2_Ram();
|
|||
|
step_store_read_count_copy = JX_STATE_S1;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
com_rxbuf_wcount_copy.datas = com_rxbuf_wcount.datas;//6cb7
|
|||
|
com_rxbuf_rcount_copy.datas = com_rxbuf_rcount.datas;//1f2f
|
|||
|
|
|||
|
if (com_rxbuf_wcount_copy.datas >= com_rxbuf_rcount_copy.datas )
|
|||
|
{
|
|||
|
if((com_rxbuf_wcount_copy.datas - com_rxbuf_rcount_copy.datas) > COM_RXBUF_MAX)
|
|||
|
{
|
|||
|
com_rxbuf_rcount_copy.datas = (com_rxbuf_wcount_copy.datas - COM_RXBUF_MAX);//6177
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
com_rxbuf_rcount_copy.datas = com_rxbuf_wcount_copy.datas;
|
|||
|
}
|
|||
|
if(com_rxbuf_wcount_copy.datas > (com_rxbuf_rcount_copy.datas + COM_RXBUF_MAX -45))//<2F>ж<EFBFBD><D0B6>Ƿ<C7B7><F1B8B2B8><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>ݵĻ<DDB5><C4BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
com_rxbuf_rcount_copy.datas = com_rxbuf_rcount_copy.datas + (45 - com_rxbuf_rcount_copy.datas%45);//<2F><>ȥ<EFBFBD>װ<EFBFBD><D7B0>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
step_store_read_count_copy = JX_STATE_S0;//38941---38970
|
|||
|
return SUCCESS;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч,<2C><><EFBFBD>³<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>дָ<D0B4><D6B8>
|
|||
|
case JX_STATE_S1:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
EepWrite(com_rxbuf_wcount.data_buf, EEP_ADDR_JX_STORE_WRITE, 4, &s_temp_store_ee_msg);
|
|||
|
step_store_read_count_copy = JX_STATE_S2;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case JX_STATE_S2:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
EepWrite(com_rxbuf_rcount.data_buf, EEP_ADDR_JX_STORE_READ, 4, &s_temp_store_ee_msg);
|
|||
|
step_store_read_count_copy = JX_STATE_S0;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
default:
|
|||
|
{
|
|||
|
step_store_read_count_copy = JX_STATE_S0;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
return ERROR;
|
|||
|
}
|
|||
|
|
|||
|
/*************************************************************************
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:Renew_Rcount
|
|||
|
˵ <EFBFBD><EFBFBD>:<EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD>com_rxbuf_rcount_copy<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>com_rxbuf_rcount.
|
|||
|
Ŀ<EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>ֹ<EFBFBD>ϱ<EFBFBD>ʧ<EFBFBD>ܻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ʧ<EFBFBD><EFBFBD>.
|
|||
|
<EFBFBD>ɹ<EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD>ϱ<EFBFBD>Ӧ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
temp_rxbuf_rcount<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>com_rxbuf_rcount_copy<EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>com_rxbuf_rcount_copy,<EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><EFBFBD>com_rxbuf_rcount_copy
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɷ<EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD>ɷ<EFBFBD><EFBFBD><EFBFBD>0xFF
|
|||
|
*************************************************************************/
|
|||
|
u8 Renew_Rcount(void)
|
|||
|
{
|
|||
|
static TYP_STATE_JX step_renew_Rcount=JX_STATE_S0;
|
|||
|
switch(step_renew_Rcount)
|
|||
|
{
|
|||
|
case JX_STATE_S0://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())//eeд<65><D0B4><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
com_rxbuf_rcount_copy.datas = temp_rxbuf_rcount;
|
|||
|
com_rxbuf_rcount.datas = com_rxbuf_rcount_copy.datas;
|
|||
|
EepWrite(com_rxbuf_rcount.data_buf, EEP_ADDR_JX_STORE_READ, 4, &s_temp_store_ee_msg);
|
|||
|
step_renew_Rcount = JX_STATE_S1;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case JX_STATE_S1:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())//eeд<65><D0B4><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
step_renew_Rcount = JX_STATE_S0;
|
|||
|
return SUCCESS;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
default:
|
|||
|
{
|
|||
|
step_renew_Rcount = JX_STATE_S0;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
return ERROR;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/************************************************************************
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:get_com_rx_num_copy
|
|||
|
˵ <EFBFBD><EFBFBD>:<EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ϱ<EFBFBD><EFBFBD>ļ<EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>COM_RXBUF_MAX,<EFBFBD><EFBFBD>ȡCOM_RXBUF_MAX
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɷ<EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD>ɷ<EFBFBD><EFBFBD><EFBFBD>0xFF
|
|||
|
*************************************************************************/
|
|||
|
u16 get_com_rx_num_copy(void)
|
|||
|
{
|
|||
|
if (com_rxbuf_wcount_copy.datas >= com_rxbuf_rcount_copy.datas )
|
|||
|
{
|
|||
|
if((com_rxbuf_wcount_copy.datas - com_rxbuf_rcount_copy.datas) > COM_RXBUF_MAX)
|
|||
|
{
|
|||
|
com_rxbuf_rcount_copy.datas = (com_rxbuf_wcount_copy.datas - COM_RXBUF_MAX);
|
|||
|
}
|
|||
|
return (com_rxbuf_wcount_copy.datas - com_rxbuf_rcount_copy.datas);
|
|||
|
}
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
/*************************************************************************
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:get_com_rx_data
|
|||
|
˵ <EFBFBD><EFBFBD>:<EFBFBD><EFBFBD>ȡ<EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*************************************************************************/
|
|||
|
int get_com_rx_data(void)
|
|||
|
{
|
|||
|
static TYP_STATE_JX step_store_read=JX_STATE_S0;
|
|||
|
switch(step_store_read)
|
|||
|
{
|
|||
|
case JX_STATE_S0://<2F><>ȡ<EFBFBD>洢ָ<E6B4A2><D6B8>
|
|||
|
{
|
|||
|
int i=0;
|
|||
|
for(i=0;i<JX_UPLOAD_LEN;i++)
|
|||
|
{
|
|||
|
upload_store_buf[i] = 0xFF;//<2F><><EFBFBD><EFBFBD><EFBFBD>շ<EFBFBD><D5B7>ͻ<EFBFBD><CDBB>棬<EFBFBD><E6A3AC><EFBFBD>ھͲ<DABE><CDB2><EFBFBD><EFBFBD>ٲ<EFBFBD>0xFF
|
|||
|
}
|
|||
|
if(get_com_rx_num_copy() > 0)
|
|||
|
{
|
|||
|
temp_rxbuf_rcount = com_rxbuf_rcount_copy.datas - com_rxbuf_rcount_copy.datas%45;
|
|||
|
upload_store_count = 0;
|
|||
|
step_store_read = JX_STATE_S1;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else if(get_com_rx_num_copy() == 0) //<2F><><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>¼ʱ,<2C>ظ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>0
|
|||
|
{
|
|||
|
RtccGetDateTime(&s_temp_store_Time);
|
|||
|
u_temp_store_data.Stru.StepUnion.StepData.Day = s_temp_store_Time.s.day;
|
|||
|
u_temp_store_data.Stru.StepUnion.StepData.Hour = s_temp_store_Time.s.hour;
|
|||
|
u_temp_store_data.Stru.StepUnion.StepData.Minute = s_temp_store_Time.s.minute;
|
|||
|
u_temp_store_data.Stru.StepUnion.StepData.StepTime = miji_interval_time;
|
|||
|
u_temp_store_data.Stru.StepUnion.StepData.StepFlowData.gp22_float = 0;
|
|||
|
RTCC_To_Float temp_flow;
|
|||
|
|
|||
|
temp_rxbuf_rcount = com_rxbuf_rcount_copy.datas;
|
|||
|
temp_flow.gp22_u32 = Gp30CheckDataApp(2);
|
|||
|
upload_store_buf[0] = u_temp_store_data.Stru.StepUnion.StepData.Day;
|
|||
|
upload_store_buf[1] = u_temp_store_data.Stru.StepUnion.StepData.Hour;
|
|||
|
upload_store_buf[2] = u_temp_store_data.Stru.StepUnion.StepData.Minute;
|
|||
|
upload_store_buf[3] = u_temp_store_data.Stru.StepUnion.StepData.StepTime;
|
|||
|
|
|||
|
upload_store_buf[4] = u_temp_store_data.Stru.StepUnion.StepData.StepFlowData.buf[0];
|
|||
|
upload_store_buf[5] = u_temp_store_data.Stru.StepUnion.StepData.StepFlowData.buf[1];
|
|||
|
upload_store_buf[6] = u_temp_store_data.Stru.StepUnion.StepData.StepFlowData.buf[2];
|
|||
|
upload_store_buf[7] = u_temp_store_data.Stru.StepUnion.StepData.StepFlowData.buf[3];
|
|||
|
|
|||
|
upload_store_buf[360] = temp_flow.buf[0];
|
|||
|
upload_store_buf[361] = temp_flow.buf[1];
|
|||
|
upload_store_buf[362] = temp_flow.buf[2];
|
|||
|
upload_store_buf[363] = temp_flow.buf[3];
|
|||
|
return SUCCESS;// <20>ڴ˾ͷ<CBBE><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case JX_STATE_S1://<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())//(temp_rxbuf_rcount%COM_RXBUF_MAX)/45=<3D><>2a=42<34><32><EFBFBD><EFBFBD>ʼ,<2C><><EFBFBD>µ<EFBFBD>43<34><33>44<34><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD>ġ<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD>3<EFBFBD><33>...<2E><><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
EepRead(EEP_ADDR_JX_STORE_BASE_START + ((temp_rxbuf_rcount%COM_RXBUF_MAX)/45)*4, &upload_store_buf[360], 4, &s_temp_store_ee_msg);
|
|||
|
step_store_read = JX_STATE_S2;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case JX_STATE_S2://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
//<2F>жϻ<D0B6><CFBB><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD>Ч<EFBFBD><D0A7>
|
|||
|
temp_base_flow.buf[0] = upload_store_buf[360];
|
|||
|
temp_base_flow.buf[1] = upload_store_buf[361];
|
|||
|
temp_base_flow.buf[2] = upload_store_buf[362];
|
|||
|
temp_base_flow.buf[3] = upload_store_buf[363];
|
|||
|
if((temp_base_flow.gp22_float > 10000000)||(temp_base_flow.gp22_float < 0)||(temp_base_flow.gp22_u32 == 0Xffffffff))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ݣ<EFBFBD><DDA3>ҳ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>дָ<D0B4><D6B8>
|
|||
|
com_rxbuf_wcount.datas = 0;
|
|||
|
com_rxbuf_rcount.datas = 0;
|
|||
|
com_rxbuf_wcount_copy.datas = 0;
|
|||
|
com_rxbuf_rcount_copy.datas = 0;
|
|||
|
StoreRWIndex_2_Ram();
|
|||
|
|
|||
|
temp_rxbuf_rcount = com_rxbuf_rcount_copy.datas;
|
|||
|
temp_base_flow.gp22_u32 = Gp30CheckDataApp(2);
|
|||
|
upload_store_buf[0] = u_temp_store_data.Stru.StepUnion.StepData.Day;
|
|||
|
upload_store_buf[1] = u_temp_store_data.Stru.StepUnion.StepData.Hour;
|
|||
|
upload_store_buf[2] = u_temp_store_data.Stru.StepUnion.StepData.Minute;
|
|||
|
upload_store_buf[3] = u_temp_store_data.Stru.StepUnion.StepData.StepTime;
|
|||
|
|
|||
|
upload_store_buf[4] = u_temp_store_data.Stru.StepUnion.StepData.StepFlowData.buf[0];
|
|||
|
upload_store_buf[5] = u_temp_store_data.Stru.StepUnion.StepData.StepFlowData.buf[1];
|
|||
|
upload_store_buf[6] = u_temp_store_data.Stru.StepUnion.StepData.StepFlowData.buf[2];
|
|||
|
upload_store_buf[7] = u_temp_store_data.Stru.StepUnion.StepData.StepFlowData.buf[3];
|
|||
|
|
|||
|
upload_store_buf[360] = temp_base_flow.buf[0];
|
|||
|
upload_store_buf[361] = temp_base_flow.buf[1];
|
|||
|
upload_store_buf[362] = temp_base_flow.buf[2];
|
|||
|
upload_store_buf[363] = temp_base_flow.buf[3];
|
|||
|
|
|||
|
step_store_read = JX_STATE_S5;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if(temp_rxbuf_rcount < com_rxbuf_wcount_copy.datas)
|
|||
|
{
|
|||
|
EepRead(EEP_ADDR_JX_STORE_STEP_START + (temp_rxbuf_rcount%COM_RXBUF_MAX)*8, &upload_store_buf[8*upload_store_count], 8, &s_temp_store_ee_msg);
|
|||
|
step_store_read = JX_STATE_S3;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
step_store_read = JX_STATE_S4;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case JX_STATE_S3:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
temp_rxbuf_rcount++;
|
|||
|
upload_store_count++;
|
|||
|
if(upload_store_count < 45)
|
|||
|
{
|
|||
|
step_store_read = JX_STATE_S2;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
step_store_read = JX_STATE_S4;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case JX_STATE_S4:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
step_store_read = JX_STATE_S0;
|
|||
|
return SUCCESS; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч,<2C><><EFBFBD>³<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>дָ<D0B4><D6B8>
|
|||
|
case JX_STATE_S5:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
EepWrite(com_rxbuf_wcount.data_buf, EEP_ADDR_JX_STORE_WRITE, 4, &s_temp_store_ee_msg);
|
|||
|
step_store_read = JX_STATE_S6;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case JX_STATE_S6:
|
|||
|
{
|
|||
|
if(TASK_IDLE == EepIfIdle())
|
|||
|
{
|
|||
|
EepWrite(com_rxbuf_rcount.data_buf, EEP_ADDR_JX_STORE_READ, 4, &s_temp_store_ee_msg);
|
|||
|
step_store_read = JX_STATE_S4;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
default:
|
|||
|
{
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
return ERROR;
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>JiangXiStore_Machine
|
|||
|
˵ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƹ<EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD>ݴ洢״̬<EFBFBD><EFBFBD>;
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٴ<EFBFBD><EFBFBD><EFBFBD>0ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>洢.
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>洢ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0-30s; 1-1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>; 2-2<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
***************************************************************************/
|
|||
|
void JiangXiStore_Machine(void)
|
|||
|
{
|
|||
|
switch(step_jx_store)
|
|||
|
{
|
|||
|
case JX_STATE_S0:
|
|||
|
{
|
|||
|
if(Gp30CheckDataApp(1) > 0)//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
old_miji_interval_flow.gp22_u32 = Gp30CheckDataApp(2);
|
|||
|
u_temp_store_data.Stru.BaseFlowData.datas = Gp30CheckDataApp(2);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>,Ҫ<><D2AA><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>仯֮ǰ
|
|||
|
miji_interval_time = FrameCheckParaApp(FramePara_StoreFrequency);
|
|||
|
if(miji_interval_time == 0x00)
|
|||
|
{
|
|||
|
RtccSetTimer(RTCC_MIJI_WAIT_TIME,30);//Ĭ<><C4AC>30s<30>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
RtccSetTimer(RTCC_MIJI_WAIT_TIME,60*miji_interval_time);
|
|||
|
}
|
|||
|
step_jx_store = JX_STATE_S1;
|
|||
|
}//8900+5000+1000+2980+7000+6200+2000=11.4 3.2+2.2=5.4 5.8
|
|||
|
break;
|
|||
|
}
|
|||
|
case JX_STATE_S1:
|
|||
|
{
|
|||
|
if(RtccCheckTimer(RTCC_MIJI_WAIT_TIME) == 0)
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><E6B4A2>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʽ
|
|||
|
RtccGetDateTime(&s_temp_store_Time);
|
|||
|
u_temp_store_data.Stru.StepUnion.StepData.Day = s_temp_store_Time.s.day;
|
|||
|
u_temp_store_data.Stru.StepUnion.StepData.Hour = s_temp_store_Time.s.hour;
|
|||
|
u_temp_store_data.Stru.StepUnion.StepData.Minute = s_temp_store_Time.s.minute;
|
|||
|
u_temp_store_data.Stru.StepUnion.StepData.StepTime = miji_interval_time;
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><E6B4A2>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
|||
|
new_miji_interval_flow.gp22_u32 = Gp30CheckDataApp(2);
|
|||
|
u_temp_store_data.Stru.StepUnion.StepData.StepFlowData.gp22_float = (new_miji_interval_flow.gp22_float - old_miji_interval_flow.gp22_float)/100;
|
|||
|
step_jx_store = JX_STATE_S2;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case JX_STATE_S2:
|
|||
|
{
|
|||
|
if(write_com_rx_data(&u_temp_store_data) == SUCCESS)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢
|
|||
|
{
|
|||
|
step_jx_store = JX_STATE_S0;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
default:
|
|||
|
{
|
|||
|
step_jx_store = JX_STATE_S0;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
/**
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ϱ<EFBFBD><EFBFBD>İ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
u8 JiangXiStore_UploadPacks(void)
|
|||
|
{
|
|||
|
u16 temp_upload_record_cnts=0;
|
|||
|
u8 temp_upload_total_packs=0;
|
|||
|
if((com_rxbuf_wcount.datas == 0xFFFFFFFF)||(com_rxbuf_rcount.datas == 0xFFFFFFFF))//<2F>ж<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>
|
|||
|
{
|
|||
|
com_rxbuf_wcount.datas = 0;
|
|||
|
com_rxbuf_rcount.datas = 0;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (com_rxbuf_wcount.datas >= com_rxbuf_rcount_copy.datas )
|
|||
|
{
|
|||
|
if((com_rxbuf_wcount.datas - com_rxbuf_rcount.datas) > COM_RXBUF_MAX)
|
|||
|
{
|
|||
|
com_rxbuf_rcount.datas = (com_rxbuf_wcount.datas - COM_RXBUF_MAX);//6177
|
|||
|
}
|
|||
|
}
|
|||
|
if(com_rxbuf_wcount.datas > (com_rxbuf_rcount.datas + COM_RXBUF_MAX -45))//<2F>ж<EFBFBD><D0B6>Ƿ<C7B7><F1B8B2B8><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>ݵĻ<DDB5><C4BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
com_rxbuf_rcount.datas = com_rxbuf_rcount.datas + (45 - com_rxbuf_rcount.datas%45);//<2F><>ȥ<EFBFBD>װ<EFBFBD><D7B0>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
}
|
|||
|
temp_upload_record_cnts = com_rxbuf_wcount.datas - com_rxbuf_rcount.datas;
|
|||
|
temp_upload_total_packs = (temp_upload_record_cnts/45);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>ܰ<EFBFBD><DCB0><EFBFBD>,45<34><35><EFBFBD><EFBFBD>¼һ<C2BC><D2BB>
|
|||
|
if(temp_upload_record_cnts % 45)
|
|||
|
{
|
|||
|
temp_upload_total_packs += 1;
|
|||
|
}
|
|||
|
if(temp_upload_total_packs>64)//<2F><><EFBFBD><EFBFBD>64<36><34>
|
|||
|
{
|
|||
|
temp_upload_total_packs = 64;
|
|||
|
}
|
|||
|
return temp_upload_total_packs;
|
|||
|
}
|
|||
|
/**
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>дָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>CRCУ<EFBFBD><EFBFBD>,
|
|||
|
*/
|
|||
|
u16 getCRC_HisIndex(u32 data1, u32 data2)
|
|||
|
{
|
|||
|
u8 tempBuf[8];
|
|||
|
|
|||
|
tempBuf[0] = data1&0xFF;
|
|||
|
tempBuf[1] = (data1>>8)&0xFF;
|
|||
|
tempBuf[2] = (data1>>16)&0xFF;
|
|||
|
tempBuf[3] = (data1>>24)&0xFF;
|
|||
|
tempBuf[4] = data2&0xFF;
|
|||
|
tempBuf[5] = (data2>>8)&0xFF;
|
|||
|
tempBuf[6] = (data2>>16)&0xFF;
|
|||
|
tempBuf[7] = (data2>>24)&0xFF;
|
|||
|
return CRC16(tempBuf,8);
|
|||
|
}
|
|||
|
|
|||
|
void StoreRWIndex_2_Ram(void)
|
|||
|
{
|
|||
|
jx_com_rxbuf_wcount_copy = com_rxbuf_wcount.datas;
|
|||
|
jx_com_rxbuf_rcount_copy = com_rxbuf_rcount.datas;
|
|||
|
jx_com_rxbuf_check_copy = getCRC_HisIndex(jx_com_rxbuf_wcount_copy, jx_com_rxbuf_rcount_copy);
|
|||
|
}
|
|||
|
|
|||
|
/***********************************************
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡
|
|||
|
***********************************************/
|
|||
|
void NB_JX_Frame_Upload_Data(u8* psend_buf, u16* psend_len, u8 totalPack, u8 curPack)
|
|||
|
{
|
|||
|
u16 tmp_i =0;
|
|||
|
|
|||
|
s16 s_temp_data=0;
|
|||
|
MET_STATE temp_state; //״̬<D7B4><CCAC>
|
|||
|
|
|||
|
//u16 s_g_data_len = PACK_NUM_GPRS_TOTAL;
|
|||
|
UNION_2U8TOU16 temp_data;
|
|||
|
|
|||
|
*psend_buf++ = totalPack;//<2F><>Ҫ<EFBFBD>ϱ<EFBFBD><CFB1>ܱ<EFBFBD><DCB1><EFBFBD>;
|
|||
|
*psend_buf++ = curPack;//<2F><>ǰ<EFBFBD>ϱ<EFBFBD><CFB1>İ<EFBFBD><C4B0><EFBFBD>;
|
|||
|
for (tmp_i = 0; tmp_i < 360; tmp_i++) //8<><38><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
*psend_buf++ = upload_store_buf[tmp_i];
|
|||
|
}
|
|||
|
|
|||
|
//<2F><>ѹֵ
|
|||
|
temp_data.datas =FramHexToBcd16(PowerCheckValueSys());
|
|||
|
*psend_buf++ = temp_data.datas_map.data0;
|
|||
|
*psend_buf++ = temp_data.datas_map.data1;
|
|||
|
//<2F><><EFBFBD><EFBFBD>
|
|||
|
*psend_buf++ = upload_store_buf[360];
|
|||
|
*psend_buf++ = upload_store_buf[361];
|
|||
|
*psend_buf++ = upload_store_buf[362];
|
|||
|
*psend_buf++ = upload_store_buf[363];
|
|||
|
//<2F>ź<EFBFBD>ǿ<EFBFBD><C7BF>
|
|||
|
NbiotGetRSRP(&s_temp_data);
|
|||
|
temp_data.datas = -s_temp_data;
|
|||
|
*psend_buf++ =temp_data.data_buf[0];
|
|||
|
*psend_buf++ =temp_data.data_buf[1];
|
|||
|
////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
*psend_buf++=GetUploadConnectTime_JX(0)&0xFF;
|
|||
|
*psend_buf++=(GetUploadConnectTime_JX(0)>>8)&0xFF;
|
|||
|
*psend_buf++= GetUploadConnectTime_JX(1)&0xFF;
|
|||
|
*psend_buf++= (GetUploadConnectTime_JX(1)>>8)&0xFF;
|
|||
|
//״̬<D7B4><CCAC>
|
|||
|
temp_state = FrameGetByte();
|
|||
|
*psend_buf++ = temp_state.stat0;
|
|||
|
*psend_buf++ = temp_state.stat1;
|
|||
|
*psend_buf++ = temp_state.stat2;
|
|||
|
*psend_buf++ = 0x02;
|
|||
|
*psend_len = PACK_NUM_GPRS_TOTAL;
|
|||
|
}
|
|||
|
|
|||
|
u8 JiangXiStore_IfSleep(void)
|
|||
|
{
|
|||
|
if((step_jx_store == JX_STATE_S0) ||(step_jx_store == JX_STATE_S1) )
|
|||
|
{
|
|||
|
return TRUE;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
#endif
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|