河北水利局项目

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

94
dl/dl.c Normal file
View File

@@ -0,0 +1,94 @@
#include "dl.h"
#include "include.h"
#include "doc.h"
//static bool is_dl_task_rp = false;
static bool is_dl_task = false;
SemaphoreHandle_t xSemaphore_dl;
extern void ClearMeterInfo();
extern void simul_plc_rx_addr(u8 *str1);
extern void rp_start();
bool get_dl_task_state()
{
return is_dl_task;
}
extern void mbus_master_tx_begin();
extern void mbus_master_tx_end();
extern bool get_pro_sucess_status();
extern void time_reset();
void dl_task_1()
{
is_dl_task = true;
u16 num = meter_get_count();
u16 i = 0;
u8 addr[7];
//清除数据
ClearMeterInfo();
mbus_master_tx_begin();
for(i=0;i<num;i++)
{
// = metertable_getadddr(i);
memset(addr,0,sizeof(addr));
meter_get_addr(i,addr);
simul_plc_rx_addr(addr);
//暂时用这个,
//以后会提高抄表速度
//切换需要的时间
// if(get_pro_sucess_status())
//{
vTaskDelay(3000);
// }
// else
// {
// vTaskDelay(40*1000);
// mbus_master_tx_begin();
// }
time_reset();
}
mbus_master_tx_end();
//如果有抄表抄不到的,需要重新抄抄不到的表。
is_dl_task = false;
}
void dl_start()
{
printf("实时抄表开始\r\n");
xSemaphoreGive(xSemaphore_dl);
}
void dl_task()
{
vSemaphoreCreateBinary(xSemaphore_dl);
xSemaphoreTake(xSemaphore_dl, 0);
for (;;)
{
xSemaphoreTake(xSemaphore_dl, portMAX_DELAY);
dl_task_1();
xSemaphoreTake(xSemaphore_dl, 0);
}
}

7
dl/dl.h Normal file
View File

@@ -0,0 +1,7 @@
#ifndef __DL__
#define __DL__
#include "Basedefine.h"
#endif

45
dl/dlarrivetime.c Normal file
View File

@@ -0,0 +1,45 @@
#include "include.h"
#include "rtc_ext.h"
/*
抄表过程
*/
extern u32 time_cur;
static bool is_dltimearrive = false;
static u32 dltime_cur = 0;
void dl_set()
{
is_dltimearrive = true;
}
bool is_dl_time()
{
st_rtc_ext * time_dat = NULL;
time_dat = (st_rtc_ext *)GetCurrentTime();
if(time_dat->hour == 0x01 && time_dat->min == 0x01 && is_dltimearrive == false)
{
is_dltimearrive = true;
dltime_cur = time_cur;
}
if(is_dltimearrive)
{
if(time_cur-dltime_cur > 2*60)
{
printf("\r\n**************** 一点时间到 启动抄表开始 ********\r\n");
is_dltimearrive = false;
return true;
}
}
return false;
}