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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
/* 使用暂存缓冲区的数据点高速无闪烁连线(示波器) */ 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(); }
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(); }
void YADA_64 (U16 X,U16 Y,U16 Color) { send_word(0xaa64); send_xy(X,Y); send_word(Color); send_end(); }
void YADA_78 (U16 X,U16 Y,U8 *P,U8 Size) { send_word(0xaa78); send_xy(X,Y); send_U8str(P,Size); send_end(); }
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(); }
void YADA_C101 (U16 Addr,U16 Pixel_Number) { send_byte(0xAA); send_word(0xC101); send_xy(Addr,Pixel_Number); send_end(); }
void YADA_C102 (U16 Addr,U16 Line_Number) { send_byte(0xAA); send_word(0xC102); send_xy(Addr,Line_Number); send_end(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
void YADA_C2 (U16 Addr,U16 Data_Length) { send_word(0xAAC2); send_xy(Addr,Data_Length); send_end(); }
void YADA_C0 (U16 Addr,U16 *P,U8 Size) { send_xy(0xAAC0,Addr); send_U16str(P,Size); send_end(); }
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(); }
void YADA_43 (U16 X,U16 Y) { send_word(0xaa43); send_xy(X,Y); send_end(); }
/* * 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); }
void YADA_40 (U16 FrontC,U16 BackC) { send_word(0xaa40); send_xy(FrontC,BackC); send_end(); }