河北水利局项目
This commit is contained in:
94
dl/dl.c
Normal file
94
dl/dl.c
Normal 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
7
dl/dl.h
Normal file
@@ -0,0 +1,7 @@
|
||||
#ifndef __DL__
|
||||
#define __DL__
|
||||
#include "Basedefine.h"
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
45
dl/dlarrivetime.c
Normal file
45
dl/dlarrivetime.c
Normal 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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user