Browse Source

fix: 添加rfid没小时发送一次轮询指令

bfysop-v2
mr.zhangsan 1 year ago
parent
commit
1145363142
  1. 33
      source/app/task_rfid.c
  2. 1
      source/app/task_rfid.h

33
source/app/task_rfid.c

@ -30,6 +30,7 @@ U8 rfidLoopRead[] = {0xBB,0x00,0x27,0x00,0x03,0x22,0xFF,0xFF,0x4A,0x7E};
//=============================================
void L3_task_rfid_init(void)
{
_s_task_rfid.last_send_time = 0;
L1_task_init(&_s_task_rfid.task);
L3_task_s_go(_s_task_rfid,D_task_init);
}
@ -48,18 +49,24 @@ void L3_task_rfid_handler(S_TASK_RFID *s)
L2_task_go_Tdelay(D_task_RFID_SET,D_Tdelay_4s);
TTSS_Task_step(D_task_RFID_SET)
//1.设置天线
L0_uart4_sendArray(rfidSetChannelCmd, sizeof(rfidSetChannelCmd) / sizeof(U8));
NOP10();
//2.设置功率
L0_uart4_sendArray(rfidSetWCmd, sizeof(rfidSetWCmd) / sizeof(U8));
NOP10();
//3.选择掩码
L0_uart4_sendArray(rfidSelCmd, sizeof(rfidSelCmd) / sizeof(U8));
NOP10();
//4.启动轮询
L0_uart4_sendArray(rfidLoopRead, sizeof(rfidLoopRead) / sizeof(U8));
NOP10();
//1个小时发一次
if(s->last_send_time == 0 || D_sys_now - s->last_send_time > D_sys_Jiffies(3600000))
{
//1.设置天线
L0_uart4_sendArray(rfidSetChannelCmd, sizeof(rfidSetChannelCmd) / sizeof(U8));
NOP10();
//2.设置功率
L0_uart4_sendArray(rfidSetWCmd, sizeof(rfidSetWCmd) / sizeof(U8));
NOP10();
//3.选择掩码
L0_uart4_sendArray(rfidSelCmd, sizeof(rfidSelCmd) / sizeof(U8));
NOP10();
//4.启动轮询
L0_uart4_sendArray(rfidLoopRead, sizeof(rfidLoopRead) / sizeof(U8));
NOP10();
//记录上次发送时间
s->last_send_time = D_sys_now;
}
L2_task_go(D_task_RFID_READ);
TTSS_Task_step(D_task_RFID_READ)
@ -69,7 +76,7 @@ void L3_task_rfid_handler(S_TASK_RFID *s)
parse_rfid_pkg();
}
//read next
L2_task_go_Tdelay(D_task_RFID_READ,0);
L2_task_go_Tdelay(D_task_RFID_SET,0);
TTSS_Task_end();
}

1
source/app/task_rfid.h

@ -19,6 +19,7 @@
typedef struct _s_task_rfid
{
U32 last_send_time;
TS_task task;
}S_TASK_RFID;

Loading…
Cancel
Save