河北水利局项目

This commit is contained in:
2025-12-15 16:07:49 +08:00
commit f11a7c2b95
1146 changed files with 452892 additions and 0 deletions

39
rp/rparrivetime.c Normal file
View File

@@ -0,0 +1,39 @@
#include "stdafx.h"
#include "rtc_ext.h"
//#include "frame3762task.h"
extern u32 time_cur;
static bool is_rptimearrive_flag = false;
static u32 rptime_cur = 0;
void report_time_set()
{
is_rptimearrive_flag = true;
}
bool is_report_time()
{
st_rtc_ext * time_dat = NULL;
time_dat = (st_rtc_ext *)GetCurrentTime();
if(time_dat->hour == 0x07 && time_dat->min == 0x30 && (is_rptimearrive_flag==false))
{
is_rptimearrive_flag = true;
rptime_cur = time_cur;
}
if(is_rptimearrive_flag)
{
if(time_cur-rptime_cur > 2*60)
{
printf("\r\n**************** Ëĵãʱ¼äµ½ Æô¶¯Éϱ¨ ********\r\n");
is_rptimearrive_flag = false;
rptime_cur = 0;
return true;
}
}
return false;
}

132
rp/rpprocess.c Normal file
View File

@@ -0,0 +1,132 @@
#include "stdafx.h"
#include "include.h"
#include "FreeRTOS.h"
#include "task.h"
#include "gprs.h"
#include "general.h"
//#include "frame3762task.h"
//#include "jpmeter.h"
//#include "dlresult.h"
/*
Éϱ¨¹ý³Ì
*/
#define PAGE_NUM_MAX (10)
extern u8* GetCurrentTime( void );
extern void concent_rp_data(u8 * val,u16 * len,u16 datalen);
extern u32 time_cur;
extern u8 * get_uart_send();
extern u16 * get_uart_send_plen();
extern bool is_report_time();
extern bool gprs_connect_status();
extern void gprs_send_flag();
extern void jp_dl_up(u8 * data,u16 datalen);
extern void jp_dl_ack_up(u8 * val,u16 len);
extern void gprs_recv_judge_timeset();
extern bool meter_find_id_fromaddr(u8 * addr,u16 * id);
extern bool meter_getaddress_fromid(u16 id,u8 * addr);
extern void cur_dl_grouphistroy(u8 curnum,u8 * cur_addrgroup,u8 *outnum,u8 * outaddrgroup);
extern bool meter_get_addr(u16 index,u8 * addr);
extern u16 meter_get_count();
extern bool manager_get_data(u8 * addr,u8* data,u8* state,u8 * state2);
extern bool hb_data_rp_pro(u16 index,u8 * val,u16 * len);
extern bool hb_data_rp_cur_pro(u8 * val,u16 * len,u8 * currentdata,u8 * sumdata,u8 * surplus,u8 * ala,u8 year,u8 month,u8 day,u8 hour);
extern void datarp_sucess_write(u16 index);
void rp_start();
SemaphoreHandle_t xSemaphore_rp;
static u16 rp_count = 0;
static bool is_rp_current = false;
static u8 rp_cur_time_year = 0;
static u8 rp_cur_time_month = 0;
static u8 rp_cur_time_day = 0;
static u8 rp_cur_time_hour = 0;
static u8 rp_currentdata[CUR_DATA_LEN];
static u8 rp_sumdata[SUM_DATA_LEN];
static u8 rp_surplusadta[SURPLUS_DATA_LEN];
static u8 rp_ala[ALA_DATA_LEN];
void rp_setcount(u16 count)
{
rp_count = count;
}
void rp_current(u16 count,
u8 * current,
u8 * sumdata,u8 * surplus,u8 * ala,
u8 year,u8 month,u8 day,u8 hour)
{
is_rp_current = true;
rp_count = count;
MemCpy(rp_currentdata,current,sizeof(rp_currentdata));
MemCpy(rp_sumdata,sumdata,sizeof(rp_sumdata));
MemCpy(rp_surplusadta,surplus,sizeof(rp_surplusadta));
MemCpy(rp_ala,ala,sizeof(rp_ala));
rp_cur_time_year = year;
rp_cur_time_month = month;
rp_cur_time_day = day;
rp_cur_time_hour = hour;
rp_start();
}
void rpprocess1()
{
if(is_rp_current)
{
is_rp_current = false;
hb_data_rp_cur_pro(get_uart_send(),get_uart_send_plen(),
rp_currentdata,rp_sumdata,rp_surplusadta,rp_ala,
rp_cur_time_year,rp_cur_time_month,rp_cur_time_day,rp_cur_time_hour);
gprs_send_flag();
}
else
{
if(hb_data_rp_pro(rp_count,get_uart_send(),get_uart_send_plen()))
{
gprs_send_flag();
}
}
}
void rpprocess_recv_ack()
{
datarp_sucess_write(rp_count);
printf("\r\n[RP] count = %d sucess\r\n",rp_count);
}
void rp_start()
{
xSemaphoreGive(xSemaphore_rp);
}
void rp_task()
{
MemSet(rp_currentdata,0,sizeof(rp_currentdata));
MemSet(rp_sumdata,0,sizeof(rp_sumdata));
MemSet(rp_surplusadta,0,sizeof(rp_surplusadta));
MemSet(rp_ala,0,sizeof(rp_ala));
vSemaphoreCreateBinary(xSemaphore_rp);
xSemaphoreTake(xSemaphore_rp, 0);
for (;;)
{
xSemaphoreTake(xSemaphore_rp, portMAX_DELAY);
if(gprs_connect_status())
{
rpprocess1();
}
xSemaphoreTake(xSemaphore_rp, 0);
}
}