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.
 
 
 
 

147 lines
3.4 KiB

#include "task_pen_head.h"
#include "../clib/clib.h"
#include "../bsp/bsp_oid.h"
#include "../msp/msp_uart2.h"
struct _s_task_pen_head_ s_task_pen_write;
struct _s_task_pen_head_ s_task_pen_read;
void L3_task_pen_head_write_init(void)
{
L1_task_init(&s_task_pen_write.task);
L3_task_s_go(s_task_pen_write,D_task_init);
}
void L3_task_pen_head_read_init(void)
{
L1_task_init(&s_task_pen_read.task);
L3_task_s_go(s_task_pen_read,D_task_init);
}
#define TTSS_TASK_HEAD_DATA_GET 0x01
#define TTSS_TASK_HEAD_DATA_WRITE 0x02
#define TTSS_TASK_HEAD_DATA_END 0x03
#define TTSS_TASK_HEAD_DATA_WRITE_TO 0x04
#if 0
///U8 i = 0;
U8 j ;
void L3_task_pen_head_write_handle(struct _s_task_pen_head_ *s)
{
TTSS_Task_init()
L2_task_go(TTSS_TASK_HEAD_DATA_GET);
TTSS_Task_step(TTSS_TASK_HEAD_DATA_GET)
if(G.oid_x)
{
G.oid_x = 0;
s->point.x_axis = (U16)(U32)ts_oid.x *10.0;
s->point.y_axis = (U16)(U32)ts_oid.y *10.0;
s->point.time = ts_oid.time;
s->point.angle = (U16)ts_oid.angle>>1;
L2_task_go(TTSS_TASK_HEAD_DATA_WRITE);
}
else
{
L2_task_go(TTSS_TASK_HEAD_DATA_END);
}
TTSS_Task_step(TTSS_TASK_HEAD_DATA_WRITE)////判断
if(G.pen_down)
{
G.pen_down= 0;
s->point.x_axis += (U16)16384;
L2_task_go(TTSS_TASK_HEAD_DATA_WRITE_TO);
}
else if(G.pen_hold)
{
G.pen_hold = 0;
s->point.x_axis += (U16)32768;
L2_task_go(TTSS_TASK_HEAD_DATA_WRITE_TO);
}
TTSS_Task_step(TTSS_TASK_HEAD_DATA_END)
if(G.pen_up && G.pen_t)
{
G.pen_up = 0;
G.pen_end = 1;
s->point.x_axis += (U16)16384;
s->point.time = D_sys_now;
ts_oid.x = 0;
ts_oid.y = 0;
ts_oid.time = 0;
ts_oid.angle = 0;
L2_task_go(TTSS_TASK_HEAD_DATA_WRITE_TO);
}
else
{
L2_task_go(TTSS_TASK_HEAD_DATA_GET);
}
TTSS_Task_step(TTSS_TASK_HEAD_DATA_WRITE_TO)
L0_uart2_ushex(s->point.x_axis);
//Lc_buf_copy_uc((U8 *)&wr_buf.buf[i],(U8 *)&s->point,(U16)10);
Lc_buf_copy_uc((U8 *)&wr_buf.buf[wr_buf.Index],(U8 *)&s->point,10);
wr_buf.Index ++;
////L2_task_go_Tdelay(TTSS_TASK_HEAD_DATA_GET,D_Tdelay_40ms);
L2_task_go(TTSS_TASK_HEAD_DATA_GET);
#if 0
s->point.x_axis = i;
s->point.y_axis = i;
s->point.time = D_sys_now;
i++;
L0_uart2_ushex(s->point.x_axis);
if(Lc_write_cyc_buf(&s->point,&wr_buf,1) == 0)
{
s->full = 1;
}
#if 0
for(j = 0;j<POINT_LEN*2;j++)
{
L0_uart0_ushex(wr_buf.buf[j].x_axis);
L0_uart0_uc(' ');
L0_uart0_ushex(wr_buf.buf[j].y_axis);
L0_uart0_uc(' ');
L0_uart0_ulhex(wr_buf.buf[j].time);
L0_uart0_0d0a();
}
L2_task_go_Tdelay(TTSS_TASK_HEAD_DATA,D_Tdelay_100ms);
U16 k = Lc_read_cyc_buf(R.points,&wr_buf, POINT_LEN);
for(j = 0;j<k;j++)
{
L0_uart0_ushex(R.points[j].x_axis);
L0_uart0_uc(' ');
L0_uart0_ushex(R.points[j].y_axis);
L0_uart0_ulhex(R.points[j].time);
L0_uart0_0d0a();
}//Lc_buf_full(&wr_buf);
}
#endif
L2_task_go_Tdelay(TTSS_TASK_HEAD_DATA_WRITE,D_Tdelay_100ms);
#endif
TTSS_Task_end();
}
#define TTSS_TASK_HEAD_DATA_READ 0x21
void L3_task_pen_head_read_handle(struct _s_task_pen_head_ *s)
{
TTSS_Task_init()
L2_task_go(TTSS_TASK_HEAD_DATA_READ);
TTSS_Task_step(TTSS_TASK_HEAD_DATA_READ)
if(wr_buf.Index >= POINT_LEN-1)
{
wr_buf.Index = 0;
G.datapkg = 1;
Lc_buf_copy_uc((U8 *)&R.points,(U8 *)&wr_buf.buf,(U16)POINT_LEN*10);
//G.ccmd_slaver_info[2].extra_num = POINT_LEN *5;
}
L2_task_go_Tdelay(TTSS_TASK_HEAD_DATA_READ,D_Tdelay_300ms);
TTSS_Task_end();
}
#endif