|
|
|
#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)
|
|
|
|
{
|
|
|
|
// L0_uart0_sendstr("oid_p");
|
|
|
|
|
|
|
|
TTSS_Task_init();
|
|
|
|
TTSS_Alarm_init(s->tts,300);
|
|
|
|
///(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_uart0_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_uart0_sendArray((U8 *)&points[j],(U16)10); // 1
|
|
|
|
//L0_uart0_0d0a();
|
|
|
|
}
|
|
|
|
|
|
|
|
//L0_uart0_sendstr("points->cd.xy100.x100 = "); // 2
|
|
|
|
//L0_uart0_ushex(points->cd.xy100.x100);
|
|
|
|
//L0_uart0_0d0a();
|
|
|
|
//L0_uart0_sendstr("points->cd.xy100.y100 = ");
|
|
|
|
//L0_uart0_ushex(points->cd.xy100.y100);
|
|
|
|
//L0_uart0_0d0a();
|
|
|
|
|
|
|
|
//G.ccmd_slaver_info[1].buf = (U8*)&points;
|
|
|
|
//G.ccmd_slaver_info[1].extra_num = (s->extra)*5;
|
|
|
|
//L0_uart0_sendArray((U8 *)&points,(s->extra)*10);
|
|
|
|
//s->extra = 0;
|
|
|
|
s->can_send = 1;
|
|
|
|
#if 0//3
|
|
|
|
for(j = 0;j<k;j++)
|
|
|
|
{
|
|
|
|
L0_uart0_sendArray((U8 *)&oid_buf[j],(U16)10);
|
|
|
|
L0_uart0_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;
|
|
|
|
}
|
|
|
|
|
|
|
|
|