河北水利局项目
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user