예제 #1
0
void YADA_57 (ARC *P,U8 Size)
{
    send_word(0xaa57);
    if(Size==0)
    {
        U16 i=sizeof(P);
        U16 j;
        for(j=0; j<i; j++)
        {
            send_byte(P->style);
            send_xy(P->X_0,P->Y_0);
            send_byte(P->R_0);
            P++;
        }
    }
    else
    {
        U16 k;
        for(k=0; k<Size; k++)
        {
            send_byte(P->style);
            send_xy(P->X_0,P->Y_0);
            send_byte(P->R_0);
            P++;
        }
    }
    send_end();
}
예제 #2
0
void YADA_C10700 (U16 Addr,U16 X_Len,U16 Y_Len)
{
    send_xy(0xAAC1,0X0700);
    send_xy(Addr,X_Len);
    send_word(Y_Len);
    send_end();
}
예제 #3
0
void YADA_C10702 (U16 Addr,U16 X_Len,U16 Y_Len,U16 X,U16 Y,U16 Color)
{
    send_xy(0xAAC1,0X0702);
    send_area(Addr,X_Len,Y_Len,X);
    send_xy(Y,Color);
    send_end();
}
예제 #4
0
void YADA_C10701 (U16 Addr,U16 X_Len,U16 Y_Len,U16 X,U16 Y,U16 Color,U8 MODE,U16 *P,U8 Size)
{
    send_xy(0xAAC1,0X0701);
    send_area(Addr,X_Len,Y_Len,X);
    send_xy(Y,Color);
    send_byte(MODE);
    send_U16str(P,Size);
    send_end();
}
예제 #5
0
void YADA_98 (U16 X,U16 Y,U8 Lib_ID,U8 C_Mode,U8 C_Dots,U16 FrontC,U16 BackC,U8 *P,U8 Size)
{
    send_word(0xAA98);
    send_xy(X,Y);
    send_byte(Lib_ID);
    send_byte(C_Mode);
    send_byte(C_Dots);
    send_xy(FrontC,BackC);
    send_U8str(P,Size);
    send_end();
}
예제 #6
0
void YADA_C103 (U16 Addr,U16 X,U16 Y,U16 Line_Number,U8 D_X,U8 Dis_X,U8 K_y,U16 Color)
{
    send_byte(0xAA);
    send_word(0xC103);
    send_xy(Addr,X);
    send_xy(Y,Line_Number);
    send_byte(D_X);
    send_byte(Dis_X);
    send_byte(K_y);
    send_word(Color);
    send_end();
}
예제 #7
0
 /* 使用暂存缓冲区的数据点高速无闪烁连线(示波器) */
void YADA_C104 (U16 Addr1,U16 X,U16 Y,U16 Line_Number,U8 Dis_X,U16 Color1,U16 Addr0,U16 Color0)
{
    send_byte(0xAA);
    send_word(0xC104);
    send_xy(Addr1,X);
    send_xy(Y,Line_Number);
    send_byte(0x01);//自动固定写01
    send_byte(Dis_X);
    send_word(Color1);
    send_xy(Addr0,Color0);
    send_end();
}
예제 #8
0
void YADA_C106 (U16 Addr,U16 X,U16 Y,U16 Line_Number,U8 D_X,U8 Dis_X,U8 M_y,U8 D_y,U16 Color,U16 Ymin,U16 Ymax)
{
    send_byte(0xAA);
    send_word(0xC106);
    send_xy(Addr,X);
    send_xy(Y,Line_Number);
    send_byte(D_X);
    send_byte(Dis_X);
    send_byte(M_y);
    send_byte(D_y);
    send_word(Color);
    send_xy(Ymin,Ymax);
    send_end();
}
예제 #9
0
void YADA_64 (U16 X,U16 Y,U16 Color)
{
    send_word(0xaa64);
    send_xy(X,Y);
    send_word(Color);
    send_end();
}
예제 #10
0
void YADA_78 (U16 X,U16 Y,U8 *P,U8 Size)
{
    send_word(0xaa78);
    send_xy(X,Y);
    send_U8str(P,Size);
    send_end();
}
예제 #11
0
void YADA_5704 (U16 X,U16 Y,U16 R,U16 AS,U16 AE)
{
    send_byte(0xaa);
    send_xy(0x5704,X);
    send_area(Y,R,AS,AE);
    send_end();
}
예제 #12
0
void YADA_C101 (U16 Addr,U16 Pixel_Number)
{
    send_byte(0xAA);
    send_word(0xC101);
    send_xy(Addr,Pixel_Number);
    send_end();
}
예제 #13
0
void YADA_C102 (U16 Addr,U16 Line_Number)
{
    send_byte(0xAA);
    send_word(0xC102);
    send_xy(Addr,Line_Number);
    send_end();
}
예제 #14
0
void prints(U8 cmd,U16 x,U16 y,U8 *s,U8 size)//显示文本,字符串以0x00结束,cmd可为53/54/55/6E/6F
{
    send_byte(0xAA);
    send_byte(cmd);
    send_xy(x,y);
    send_U8str(s,size);
    send_end();
}
예제 #15
0
void YADA_75 (U16 X,U16 Y,U8 H_Max,U8 *P,U8 Size)
{
    send_word(0xaa75);
    send_xy(X,Y);
    send_byte(H_Max);
    send_U8str(P,Size);
    send_end();
}
예제 #16
0
void YADA_9D (U16 ID,U16 XS,U16 YS,U16 XE,U16 YE,U16 X,U16 Y)
{
    send_word(0xaa9D);
    send_word(ID);
    send_area(XS,YS,XE,YE);
    send_xy(X,Y);
    send_end();
}
예제 #17
0
void YADA_44 (U8 EN,U16 X,U16 Y,U8 Width,U8 Height)
{
    send_word(0xaa44);
    send_byte(EN);
    send_xy(X,Y);
    send_byte(Width);
    send_byte(Height);
    send_end();
}
예제 #18
0
void YADA_E0 (U8 TFT_ID,U8 Bode_Set,U8 Para1)
{
    send_xy(0xaae0,0x55aa);
    send_word(0x5aa5);
    send_byte(TFT_ID);
    send_byte(Bode_Set);
    send_byte(Para1);
    send_end();
}
예제 #19
0
void YADA_90_ORDER (U32 Addr,U8 *P,U8 Size)
{
    send_xy(0xaa90,0x55aa);
    send_word(0x5aa5);
    send_word(Addr/65536);
    send_word(Addr%65536);
    send_U8str(P,Size);
    send_end();
}
예제 #20
0
void YADA_9BFF (U8 RTC_Mode,U8 Text_Mode,U16 Color,U16 X,U16 Y)
{
    send_word(0xaa9B);
    send_byte(0xFF);
    send_byte(RTC_Mode);
    send_byte(Text_Mode);
    send_word(Color);
    send_xy(X,Y);
    send_end();
}
예제 #21
0
void YADA_E7(U8 YY,U8 MM,U8 DD,U8 HH,U8 M,U8 SS)
{
    send_xy(0xaae7,0x55aa);
    send_word(0x5aa5);
    send_byte(YY);
    send_byte(MM);
    send_byte(DD);
    send_byte(HH);
    send_byte(M);
    send_byte(SS);
    send_end();
}
예제 #22
0
void YADA_C2 (U16 Addr,U16 Data_Length)
{
    send_word(0xAAC2);
    send_xy(Addr,Data_Length);
    send_end();
}
예제 #23
0
void YADA_C0 (U16 Addr,U16 *P,U8 Size)
{
    send_xy(0xAAC0,Addr);
    send_U16str(P,Size);
    send_end();
}
예제 #24
0
PROCESS_THREAD(udp_client_process, ev, data)
{
    static struct etimer start_timer, send_timer;
    static int flag=1;int i=0;
    static struct mt_thread sending_thread, attackinit_thread;	

    PROCESS_BEGIN();

    SENSORS_ACTIVATE(button_sensor);
    SENSORS_ACTIVATE(radio_sensor);

    set_global_address();

    printf("UDP client process started\n");

    print_local_addresses();

	myip=uip_ds6_get_link_local(ADDR_PREFERRED)->ipaddr;

    /* new connection with remote host */
    client_conn = udp_new(NULL, NULL, NULL);
    if(client_conn == NULL) {
        printf("No UDP connection available, exiting the process!\n");
        PROCESS_EXIT();
    }
    udp_bind(client_conn, UIP_HTONS(10000+(int)myip.u8[15]));

    udp_bconn = udp_broadcast_new(UIP_HTONS(BROADCAST_PORT),tcpip_handler);
    //uip_create_unspecified(&udp_bconn->ripaddr);	
    if(udp_bconn == NULL) {
        printf("No UDP broadcast connection available, exiting the process!\n");
        PROCESS_EXIT();
    }
	
    printf("Created a connection with the server ");
    PRINT6ADDR(&client_conn->ripaddr);
    printf(" local/remote port %u/%u\n", UIP_HTONS(client_conn->lport), UIP_HTONS(client_conn->rport));

    etimer_set(&start_timer, 60 * CLOCK_SECOND);//network setting time
    etimer_set(&send_timer, CLOCK_SECOND * ((int)myip.u8[15]+60+40));//node check/send parent info
    char buf[3]="hi";


    mt_init();
    mt_start(&sending_thread, sendpacket, 0);
    mt_start(&attackinit_thread, attack_init, NULL);	
    while(1) {

        PROCESS_YIELD();

        //NETSTACK_RDC.off(0);
        //NETSTACK_MAC.off(0);
        //NETSTACK_RADIO.off();
        //button_sensor::value(0);

        if(ev==tcpip_event)
        {
			
	    tcpip_handler();	                  
        }
	if(rssi_stored==5)// if got 5 rssi value from parent or child
	{
		monitor=0;
		monitor_target=0;
		for(i=0;i<5;i++)
			printf("Monitered value %d \n",mrssi[i]);
		rssi_stored=0;
	}
        if((ev==sensors_event) && (data == &button_sensor)) {            
	if(attack_flag)      
	{
		printf("Attack deactivated\n");   
		attack_flag=0;
		attacker=0;
		attacker_set=0;
		dis_output(NULL);
	}else {
		printf("Attack activated\n");   
		mt_exec(&attackinit_thread);
	}	
        }
        if((ev==sensors_event) && (data == &radio_sensor))
        {
            printf("Radio value %d",radio_sensor.value(0));
        }
        if(etimer_expired(&send_timer))
	{
		//uip_udp_packet_sendto(client_conn, buf, sizeof(buf), &server_ipaddr, UIP_HTONS(2345));
		//uip_create_unspecified(&client_conn->ripaddr); 
		//if(myip.u8[15]==4)
		//sendpacket(0);
		etimer_set(&send_timer, CLOCK_SECOND*(myip.u8[15]+60));
		if(parent_change)        // send only at parent change event
		{	            
	            if(!attack_flag)	//  this is not attacker and
		    {	
			mt_exec(&sending_thread);
			//sendpacket(0);	//  send nbr info by broadcast 0 for broadcast 
			parent_change=0;
			printf("Thread initiated\n");
		    }
	        }
	}
        if(etimer_expired(&start_timer) && flag==1)
        {
            flag=0;
            send_xy();
	    etimer_set(&start_timer, CLOCK_SECOND*(myip.u8[15]+1));
	    PROCESS_WAIT_UNTIL(etimer_expired(&start_timer));
	    send_broadcast("hi",sizeof("hi"));	
	    sendpacket(1);	// 0 means send by unicast	
	    	
        }
    }

    PROCESS_END();
}
예제 #25
0
void YADA_43 (U16 X,U16 Y)
{
    send_word(0xaa43);
    send_xy(X,Y);
    send_end();
}
예제 #26
0
/*
 *  Main definition
 */
int main(int argc, char *argv[]){
    int sock;
    int id = 0;
    int turn = 0;
    char buff[BUFF_S];
    char *ip;
    struct sockaddr_in serv_addr;
    pthread_t close_thr;
    WINDOW *outgoing;
    WINDOW *in_stats;
    WINDOW *in_turn;
    PANEL *out_panel;
    regex_t re_stat;
    regex_t re_turn;
    regmatch_t m_stat;
    regmatch_t m_turn;
    out_t info;

    if( argc != 2 ){
        fprintf(stderr, "Usage: %s [HOST]\n", argv[0]);
        exit(EXIT_FAILURE);
    }

    ip = argv[1];

    pthread_mutex_init(&sock_kill_lock, NULL);
    pthread_cond_init(&sock_kill_cond, NULL);
    signal(SIGINT, sighandler);

    regcomp(&re_stat, "^[><-]{2}[^=]*\n", REG_EXTENDED);
    regcomp(&re_turn, "==[^><-]*\n", REG_EXTENDED);

    memset(&serv_addr, 0, sizeof serv_addr);
    serv_addr.sin_family = AF_INET;
    serv_addr.sin_port = htons(PORT);
    serv_addr.sin_addr.s_addr = inet_addr(ip);

    if( (sock = socket(AF_INET, SOCK_STREAM, 0)) < 0 ){
        fprintf(stderr, "socket: %s\n", strerror(errno));
    }

    if( connect(sock, (struct sockaddr *)&serv_addr, sizeof serv_addr) < 0 ){
        fprintf(stderr, "connect(): %s\n", strerror(errno));
        exit(EXIT_FAILURE);
    }

    initscr();
    start_color();
    nonl();
    cbreak();

    init_pair(1, COLOR_BLACK, COLOR_RED);

    outgoing = newwin(3, COLS , LINES-3, 0);
    out_panel = new_panel(outgoing);
    in_turn = newwin(1, COLS, LINES-4, 0);
    in_stats = newwin(LINES-4, COLS, 0, 0);
    scrollok(in_stats, TRUE);

    info.win = outgoing;
    info.panel = out_panel;
    info.socket = sock;

    hide_panel(out_panel);
    update_panels();

    pthread_create(&close_thr, NULL, close_socket, &sock);

    memset(buff, 0, BUFF_S);
    while( recv(sock, buff, BUFF_S, 0) > 0 ){
        if( ! regexec(&re_stat, buff, 1, &m_stat, 0) )
            waddnstr(in_stats, buff+m_stat.rm_so, m_stat.rm_eo-m_stat.rm_so);
        if( ! regexec(&re_turn, buff, 1, &m_turn, 0) ){
            wclear(in_turn);
            waddnstr(in_turn, buff+m_turn.rm_so, m_turn.rm_eo-m_turn.rm_so);
        }

        sscanf(buff, "%*[^#]#%d", ( ! id ) ? &id : &turn);
        memset(buff, 0, BUFF_S);

        wnoutrefresh(in_turn);
        wnoutrefresh(in_stats);

        if( turn == id )
            send_xy(&info);

        doupdate();
    }

    close(sock);
    pthread_cancel(close_thr);

    regfree(&re_stat);
    regfree(&re_turn);

    pthread_mutex_destroy(&sock_kill_lock);
    pthread_cond_destroy(&sock_kill_cond);

    box(outgoing, 0, 0);
    mvwaddstr(outgoing, 1, 1, "Aperte qualquer tecla para sair...");
    wgetch(outgoing);
    update_panels();
    doupdate();
    endwin();

    exit(EXIT_SUCCESS);
}
예제 #27
0
void YADA_40 (U16 FrontC,U16 BackC)
{
    send_word(0xaa40);
    send_xy(FrontC,BackC);
    send_end();
}