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.

279 lines
5.9 KiB

#include "asp_oid.h"
TS_task_oid_ ts_task_oid;
Ts_OID_frame_xy_ oid_buf[POINT_LEN+10];
Ts_OID_frame_xy_ points[POINT_LEN+10];
#define D_TASK_OID_t1 0x11
#define D_TASK_OID_XY 0x12
#define TTSS_TASK_OID_STA 0x13
#define D_TASK_PEN_UP 0x14
#define TTSS_TASK_OID_WRITE 0x15
#define TTSS_TASK_OID_SEND 0x16
void L3_task_oid_handle(TS_task_oid_ *s)
{
TTSS_Task_init();
TTSS_Alarm_init(s->tts,1000);
///(X) = s_nos_tick.t_10ms + delay;
L2_task_go(D_TASK_OID_t1);
TTSS_Task_step(D_TASK_OID_t1)
if(TTSS_Alarm_AT(s->tts))
{///if( (X) < s_nos_tick.jiffies)
TTSS_Alarm_init(s->tts,1000);
s->p_ok = 1;
s->ts_frame.flag.sta = D_PEN_none;//超时没有数据
s->ts_frame.cd.xy100.x100 = 0;
s->ts_frame.cd.xy100.y100 = 0;
s->ts_frame.flag.angle= 0;
s->ts_frame.time= D_sys_now;
L2_task_go(TTSS_TASK_OID_WRITE);
}
else if(ts_oid.oid_p)
{
ts_oid.oid_p = 0;
TTSS_Alarm_init(s->tts,1000);
s->ts_frame.flag.sta = D_PEN_gcode;
s->ts_frame.cd.gcode = ts_oid.gCode;
s->ts_frame.time= D_sys_now;
//L0_uart2_sendArray((U8 *)&s->ts_frame,(U16)10);
//Lc_buf_copy_uc((U8 *)&R.points[0],(U8 *)&s->ts_frame,(U16)10);
//s->extra = 1;
//s->can_send = 1;
s->send_p = 1;
L2_task_go(TTSS_TASK_OID_WRITE);
}
else
{
L2_task_go(D_TASK_OID_XY);
}
TTSS_Task_step(D_TASK_OID_XY)
if(ts_oid.oid_x)
{
ts_oid.oid_x = 0;
TTSS_Alarm_init(s->tts,1000);
s->ts_frame.cd.xy100.x100 = ts_oid.X100;
s->ts_frame.cd.xy100.y100 = ts_oid.Y100;
s->ts_frame.flag.packageNo = 0;
s->ts_frame.flag.angle = ts_oid.angle;
s->ts_frame.time = ts_oid.time;
L2_task_go(TTSS_TASK_OID_STA);
}
else
{
L2_task_go(D_TASK_PEN_UP);
}
TTSS_Task_step(TTSS_TASK_OID_STA)
if(ts_oid.pre_x == 0 && ts_oid.pre_y == 0 && ts_oid.X100 != 0 &&ts_oid.Y100 != 0)
{
s->ts_frame.flag.sta = D_PEN_down;
L2_task_go(TTSS_TASK_OID_WRITE);
}
else if(ts_oid.pre_x != 0 && ts_oid.pre_y != 0&& ts_oid.X100 != 0 &&ts_oid.Y100 != 0)
{
s->ts_frame.flag.sta = D_PEN_normal;
L2_task_go(TTSS_TASK_OID_WRITE);
}
TTSS_Task_step(D_TASK_PEN_UP)
if(G.pen_up && G.pen_t)
{
G.pen_up = 0;
s->send_t =1;
TTSS_Alarm_init(s->tts,1000);
s->ts_frame.flag.sta = D_PEN_up;
s->ts_frame.time = D_sys_now;
ts_oid.X100 = 0;
ts_oid.Y100 = 0;
ts_oid.time = 0;
ts_oid.angle = 0;
L2_task_go(TTSS_TASK_OID_WRITE);
}
else
{
L2_task_go(D_TASK_OID_t1);
}
TTSS_Task_step(TTSS_TASK_OID_WRITE)
//L0_uart2_sendArray((U8 *)&s->ts_frame,(U16)10);
Lc_buf_copy_uc((U8 *)&oid_buf[s->point],(U8 *)&s->ts_frame,(U16)10);
s->point ++;
L2_task_go(TTSS_TASK_OID_SEND);
TTSS_Task_step(TTSS_TASK_OID_SEND)
if(((s->point) > (POINT_LEN - 1))|| s->send_t||s->p_ok||s->send_p)
{
U8 j;
U16 k;
s->extra = s->point;
s->point = 0;
s->p_ok = 0;
s->send_p = 0;
s->send_t = 0;
for(j = 0;j<s->extra;j++)
{
Lc_buf_copy_uc((U8 *)&points[j],(U8 *)&oid_buf[j],(U16)10);
//L0_uart2_sendArray((U8 *)&points[j],(U16)10);
}
//G.ccmd_slaver_info[1].buf = (U8*)&points;
//G.ccmd_slaver_info[1].extra_num = (s->extra)*5;
//L0_uart2_sendArray((U8 *)&points,(s->extra)*10);
//s->extra = 0;
s->can_send = 1;
#if 0
for(j = 0;j<k;j++)
{
L0_uart2_sendArray((U8 *)&oid_buf[j],(U16)10);
L0_uart2_uc(' ');
}
#endif
L2_task_go(D_TASK_OID_t1);
}
else
{
L2_task_go(D_TASK_OID_t1);
}
TTSS_Task_end();
}
void L1_oid_init(void)
{
L0_Oid_Init();
LD_Oid_SCK_LOW();
L1_task_init(&ts_task_oid.task);
ts_task_oid.can_send = 0;
ts_task_oid.p_ok = 0;
ts_task_oid.point = 0;
L3_task_s_go(ts_task_oid,D_task_init);
}
void L1_oid_main(void)
{
}
#ifdef doc2342342
1
//// fa 00 |00 04 00 03 46 A9
//// buf 0 1 |2 3 4 5 6 7
//// fa 00 |35 20 10 55 05 06
| | |cmd
|-filter | dat
oid cmd -|
////读取2010 fa 0d |36 20 10 55 05 06
#endif
void L1_oid_debug(u8 *para)
{
uint32_t r;
TS_oid_cmd *t =(TS_oid_cmd *)para;
// ET0 = 0;
L0_uart0_sendArray("\r\noid debug:",13);
//// fa 00 |00 04 00 03 46 A9
//// buf 0 1 |2 3 4 5 6 7
//// fa 00 |11 20 10 55 05 06
//// UDCMD_wakeup
//// fa 00 |22 20 42 53 64 75
//// cmd=20
switch(t->cmd)
{
case UDCMD_wakeup:
L0_uart0_sendstr("\r\nL1_OID_WakeUp ");
L1_OID_WakeUp();
break;
case UDCMD_cmdsend:
///fa 00 22 cmd 42 53 64 75
///fa 00 |22 cmd 42 53 64 75
L0_uart0_sendstr("\r\ncmd:");
L0_uart0_uchex(t->dat);L0_uart0_0d0a();
L1_oid_TransCmd(t->dat);
break;
case UDCMD_log:
L0_uart0_sendstr("\r\nLogRegister");
/// LogRegister();
break;
case UDCMD_CheckVersion:
L0_uart0_sendstr("\r\n CheckVersion");
/// L1_oid_CheckVersionAndInit(eAppDevice);
// while(1)
{
// OidTaskLoop();
}
break;
case UDCMD_get:
L0_uart0_sendstr("\r\n UDCMD_get");
while(9)
{
L1_Oid_readoid();
}
break;
case UDCMD_readreg:
///fa 00 22 cmd 42 53 64 75
///fa 00 |22 cmd 42 53 64 75
r = L1_oidReadRegister (t->reg);
L0_uart0_sendstr("\r\n read reg:");
L0_uart0_ushex(t->reg);
Lc_delay_ms(1);
L0_uart0_sendstr(" = ");
L0_uart0_ulhex(r);
L0_uart0_uc(0x09);
break;
#if 0
case UDCMD_testtime_us:
L0_uart0_sendstr("\r\nUDCMD_testtime_us");
L0_uart0_uchex(t->dat);L0_uart0_0d0a();
while(9)
{
/// delay_us(t->dat);
D_IO_LEDkey1_ON();
// delay_us(t->dat);
D_IO_LEDkey1_OFF();
}
break;
case UDCMD_testtime_ms:
L0_uart0_sendstr("\r\nUDCMD_testtime_ms");
L0_uart0_uchex(t->dat);L0_uart0_0d0a();
while(9)
{
/// delay_ms(t->dat);
D_IO_LEDkey1_ON();
// delay_ms(t->dat);
D_IO_LEDkey1_OFF();
}
break;
#endif
default:
L0_uart0_sendstr("\r\ncmd error!!");
L0_uart0_0d0a();
break;
}
ET0 = 1;
}