You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
2.8 KiB
124 lines
2.8 KiB
3 years ago
|
#include "asp_task_WC.h"
|
||
|
|
||
|
TS_WCapp_ ts_WCapp;
|
||
|
|
||
|
|
||
|
#define D_task_WC_send 0x51
|
||
|
|
||
|
#define D_task_WC_rx 0x52
|
||
|
#define D_task_WC_wait 0x53
|
||
|
#define D_task_WC_ack 0x54
|
||
|
|
||
|
|
||
|
#define D_task_WC_listen 0x61
|
||
|
#define D_task_WC_REV 0x62
|
||
|
|
||
|
#define D_task_WC_send_over 0x63
|
||
|
#define D_task_WC_send_next 0x64
|
||
|
|
||
|
#define D_task_WC_REC_ACK 0x65
|
||
|
#define D_task_WC_rev_what 0x72
|
||
|
|
||
|
#define D_task_WC_END 0x74
|
||
|
|
||
|
|
||
|
void L2_task_WC_init(void)
|
||
|
{
|
||
|
L1_task_init(&ts_WCapp.task);
|
||
|
L3_task_s_go(ts_WCapp,D_task_init);
|
||
|
}
|
||
|
|
||
|
|
||
|
////对应文字版流程图
|
||
|
#ifdef doc909809
|
||
|
从机流程图: 文本版,将来甚至可以直接生成流程图及代码。20210409
|
||
|
step 1;进入接收模式
|
||
|
step 2 判断:
|
||
|
接收到数据进入解析step 3
|
||
|
未接收到一直等待
|
||
|
step 3:解析
|
||
|
如果是本机需要响应的命令 进入step4
|
||
|
step 4:应答发送
|
||
|
返回主机从机的信息
|
||
|
step 5;显示信息
|
||
|
|
||
|
|
||
|
测试步骤
|
||
|
1,验证流程的逻辑完整性
|
||
|
2,验证流程中每一步骤的时间合理性
|
||
|
3,验证流程中每一步骤的功能分配的合理性
|
||
|
4,验证流程和程序对应的正确性
|
||
|
5,检查handdle调用入口的有效性(是否会被执行,以及分配时间的合理性)
|
||
|
6,检查任务初始化init的调用有效性,确保在handle执行前被调用
|
||
|
7,检查init的打印是否正确
|
||
|
8,分步骤检查,及打印
|
||
|
9,模拟关键
|
||
|
|
||
|
#endif
|
||
|
|
||
|
///L3_task_WC_handle_NOACK(&ts_WCapp);
|
||
|
////目前使用的no ack 标准应用,发送和接收
|
||
|
void L3_task_WC_master_handle(TS_WCapp_ *s)
|
||
|
{
|
||
|
//---------------------------------------------------------------//
|
||
|
TTSS_Task_init():
|
||
|
L0_uart0_sendstr("mC:init\r\n");
|
||
|
L2_SI24R1_init_config();
|
||
|
L2_task_2g4_init();
|
||
|
L2_task_go(D_task_WC_send);
|
||
|
TTSS_Task_step(D_task_WC_send):
|
||
|
L0_uart0_sendstr("\r\nmC:send ");
|
||
|
L3_task_s_go(ts_2g4,D_task_2g4_send);
|
||
|
TTSS_overtime_init(s->over,D_Tdelay_5s);
|
||
|
|
||
|
L2_task_go(D_task_WC_send_over);
|
||
|
TTSS_Task_step(D_task_WC_send_over):
|
||
|
if (D_SI24R1_SENDOK == ts_2g4.ok)
|
||
|
{
|
||
|
L0_uart0_sendstr("mC:ok rec ack\r\n");
|
||
|
ts_2g4.ok = 0;
|
||
|
L3_task_s_go(ts_2g4,D_task_2g4_REV_start);
|
||
|
TTSS_overtime_init(s->over,D_Tdelay_10s);
|
||
|
L2_task_go(D_task_WC_REC_ACK);
|
||
|
}else
|
||
|
{
|
||
|
TTSS_overtime_get(s->over)
|
||
|
L0_uart0_uc('v');
|
||
|
L2_task_go(D_task_WC_END);
|
||
|
TTSS_overtime_end
|
||
|
}
|
||
|
TTSS_Task_step(D_task_WC_REC_ACK):
|
||
|
if(D_SI24R1_RX_DR == ts_2g4.ok)
|
||
|
{
|
||
|
ts_2g4.ok = 0;
|
||
|
L0_uart0_sendstr("mC:recok \r\n");
|
||
|
L0_uart0_sendArray(ts_2g4.Rbuf,ts_2g4.rx_fifo_num);
|
||
|
L2_task_go(D_task_WC_END);
|
||
|
}else
|
||
|
{
|
||
|
TTSS_overtime_get(s->over)
|
||
|
///L0_uart0_uc('r');
|
||
|
L0_uart0_sendstr("\r\nmC:!overtime \r\n");
|
||
|
L2_task_go(D_task_WC_END);
|
||
|
L3_task_s_go(ts_2g4,D_task_close);
|
||
|
TTSS_overtime_end
|
||
|
}
|
||
|
TTSS_Task_step(D_task_WC_END):
|
||
|
L2_task_go(D_task_WC_send);
|
||
|
L1_task_Tdelay(D_Tdelay_2s);
|
||
|
TTSS_Task_end();
|
||
|
(*L3_task_2g4_handle)(&ts_2g4);
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|