diff --git a/RIOT/examples/dynamic_app/main.c b/RIOT/examples/dynamic_app/main.c index 140643e..028d121 100755 --- a/RIOT/examples/dynamic_app/main.c +++ b/RIOT/examples/dynamic_app/main.c @@ -26,8 +26,8 @@ #include #include "periph/gpio.h" -#include "../../boards/stm32f4discovery/include/board.h" -#include "../../boards/stm32f4discovery/include/periph_conf.h" +#include "board.h" +#include "periph_conf.h" #include "net/sock/udp.h" #include "net/gnrc/ipv6.h" #include "net/af.h" @@ -86,29 +86,10 @@ #define PWM_FREQ 1000 #define PWM_RES 1000 -#define DEADLINE 40000 +#define DEADLINE 30000 static msg_t _main_msg_queue[MAIN_QUEUE_SIZE]; -extern int udp_cmd(int argc, char **argv); - -static const shell_command_t shell_commands[] = { - { "udp", "send data over UDP and listen on UDP ports", udp_cmd }, - { NULL, NULL, NULL } -}; - -// addr ipv6 link local node 1: fe80::3734:510e:3317:3402 -uint8_t node1[16]={0xfe,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x34,0x51,0x0e,0x33,0x17,0x34,0x02}; -// addr ipv6 link local node 2: fe80::3634:5110:3473:3762 -uint8_t node2[16]={0xfe,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x34,0x51,0x10,0x34,0x73,0x37,0x62}; -// addr ipv6 link local node 3: fe80::3734:510e:330b:342a -uint8_t node3[16]={0xfe,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x33,0x47,0x11,0x37,0x2c,0x34,0x12}; -// addr ipv6 link local node 4: fe80::3734:510b:330b:340a -uint8_t node4[16]={0xfe,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x34,0x51,0x0b,0x33,0x0b,0x34,0x0a}; -// addr ipv6 link local node 5: fe80::3734:510b:330a:341e -uint8_t node5[16]={0xfe,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x34,0x51,0x0b,0x33,0x0a,0x34,0x1e}; -//static char _stack_server[GNRC_PKTDUMP_STACKSIZE]; -char pwm_stack[THREAD_STACKSIZE_MAIN]; char sock_server_stack[THREAD_STACKSIZE_MAIN]; char sock_client_stack[THREAD_STACKSIZE_MAIN]; char sock_time_server_stack[THREAD_STACKSIZE_MAIN]; @@ -133,16 +114,8 @@ typedef struct tableau { /***************** RPL functions *****************/ -int crea_rpl_dodag_root(char *arg1, char *arg2) +int crea_rpl_dodag_root(uint8_t instance_id, ipv6_addr_t dodag_id) { - uint8_t instance_id = (uint8_t) atoi(arg1); - ipv6_addr_t dodag_id; - - if (ipv6_addr_from_str(&dodag_id, arg2) == NULL) { - puts("error: must be a valid IPv6 address"); - return 1; - } - gnrc_rpl_instance_t *inst = NULL; inst = gnrc_rpl_root_init(instance_id, &dodag_id, false, false); if (inst == NULL) { @@ -173,20 +146,10 @@ void *sock_time_server_thread(void *arg) if ((res = sock_udp_recv(&sock_ntp,&sntp_packet, sizeof(sntp_packet), SOCK_NO_TIMEOUT, &remote)) >= 0) { - puts("Received a message"); - //printf("TT: %lu\n", byteorder_ntohl(sntp_packet.transmit.seconds)); - - // printf("%c\n",remote.addr.ipv6[15]); - //xtimer_ticks64_t now = xtimer_now64(); - // heure actuelle du serveur - sntp_packet.receive.seconds=byteorder_htonl( xtimer_now_usec()); + sntp_packet.receive.seconds=byteorder_htonl( xtimer_now_usec()); sntp_packet.origin.seconds=sntp_packet.transmit.seconds; sntp_packet.transmit.seconds=byteorder_htonl( xtimer_now_usec()); - //printf("heure actuelle : %lu\n",xtimer_now_usec()); - //printf("TT2: %lu\n", byteorder_ntohl(sntp_packet.transmit.seconds)); - //memset(&sntp_packet, 0, sizeof(sntp_packet)); - //ntp_packet_set_vn(&sntp_packet); - //ntp_packet_set_mode(&sntp_packet, NTP_MODE_SERVER); + if (sock_udp_send(&sock_ntp, &sntp_packet, sizeof(sntp_packet), &remote) < 0) { puts("Error sending reply"); } @@ -204,6 +167,7 @@ void *sock_server_thread(void *arg) int deadline; local.port = 1234; int interruption_msg = 0; + int sync = 0; sock_udp_ep_t server = { .port = NTP_PORT, .family = AF_INET6 }; ipv6_addr_from_str((ipv6_addr_t *)&server.addr, "dead:beef::3402"); @@ -211,11 +175,6 @@ void *sock_server_thread(void *arg) puts("Error creating UDP sock"); return NULL; } - if (sntp_sync(&server, SOCK_NO_TIMEOUT) < 0) { - puts("Error in synchronization"); - } - offset = sntp_get_offset(); - printf("offset : %i\n",(int)offset); while (1) { sock_udp_ep_t remote; @@ -225,10 +184,19 @@ void *sock_server_thread(void *arg) printf("tps de transmission : %i\n",deadline); if(buf.donnees[0] == 'g' && buf.donnees[1] == 'o') { + if(sync == 0) + { + while(sntp_sync(&server, 5000000) < 0) { + puts("Erreur dans la synchronisation - Nouvelle tentative :"); + } + offset = sntp_get_offset(); + sync = 1; + printf("offset : %i\n",(int)offset); + } if(interruption_msg == 1) { - if (sntp_sync(&server, SOCK_NO_TIMEOUT) < 0) { - puts("Error in synchronization"); - return NULL; + puts("reprise de la communication - tentative de synchronisation :"); + while(sntp_sync(&server, 5000000) < 0) { + puts("Erreur dans la synchronisation - Nouvelle tentative :"); } offset = sntp_get_offset(); printf("offset : %i\n",(int)offset); @@ -252,12 +220,6 @@ void *sock_server_thread(void *arg) gpio_clear(LED2_PIN); gpio_set(LED0_PIN); timer_set(TIMER_DEV(1),0,25200); - /* if (sntp_sync(&server, SOCK_NO_TIMEOUT) < 0) { - * puts("Error in synchronization"); - * return NULL; - } - offset = sntp_get_offset(); - printf("offset : %i\n",(int)offset);*/ timer_run = 1; } } @@ -323,7 +285,7 @@ void *sock_client_thread(void *arg) ssize_t res; data.donnees[0] = 'g'; data.donnees[1] = 'o'; - //uint8_t paquet[]; + sock_udp_ep_t remote = { .family = AF_INET6 }; remote.port = 1234; @@ -333,7 +295,7 @@ void *sock_client_thread(void *arg) remote.addr.ipv6[3] = 0xef; remote.addr.ipv6[14] = 0x34; remote.addr.ipv6[15] = 0x1e; - // memcpy(remote.addr.ipv6,addr.u8,IPV6_ADDR_BIT_LEN); + while (1) { data.heure_actuelle = xtimer_now_usec(); if (sock_udp_send(&sock, &data, sizeof(data), &remote) < 0) { @@ -428,7 +390,7 @@ static void _init_interface(void) gnrc_ipv6_netif_add_addr(ifs[0], &addr, 64, GNRC_IPV6_NETIF_ADDR_FLAGS_UNICAST); /* model ipv6 addr: dead:beef::Hwaddr */ if((addr.u8[14]==0x34)&&(addr.u8[15]==0x02)){ - crea_rpl_dodag_root("1", "dead:beef::3402"); + crea_rpl_dodag_root(1, addr); client=thread_create(sock_client_stack,sizeof(sock_client_stack),8,THREAD_CREATE_STACKTEST | THREAD_CREATE_WOUT_YIELD,sock_client_thread,NULL,"sock_client_thread"); time_server=thread_create(sock_time_server_stack,sizeof(sock_time_server_stack),6,THREAD_CREATE_STACKTEST,sock_time_server_thread,NULL,"sock_time_server_thread"); }else if((addr.u8[14]==0x37)&&(addr.u8[15]==0x62)){ @@ -439,13 +401,17 @@ static void _init_interface(void) }else if((addr.u8[14]==0x34)&&(addr.u8[15]==0x1e)){ _init_timer(); _init_pwm(); - xtimer_sleep(10); + xtimer_sleep(2); server=thread_create(sock_server_stack,sizeof(sock_server_stack),6,THREAD_CREATE_STACKTEST,sock_server_thread,NULL,"sock_server_thread"); }else{ puts("new node ?"); } } +static const shell_command_t shell_commands[] = { + { NULL, NULL, NULL } +}; + int main(void) { @@ -457,8 +423,8 @@ int main(void) /* start shell */ puts("All up, running the shell now"); char line_buf[SHELL_DEFAULT_BUFSIZE]; - shell_run(shell_commands, line_buf, SHELL_DEFAULT_BUFSIZE); + shell_run(shell_commands, line_buf, SHELL_DEFAULT_BUFSIZE); /* should be never reached */ return 0; } diff --git a/RIOT/examples/real_time_app/main.c b/RIOT/examples/real_time_app/main.c index 7d0b6f2..2ea9320 100755 --- a/RIOT/examples/real_time_app/main.c +++ b/RIOT/examples/real_time_app/main.c @@ -25,8 +25,8 @@ #include #include -#include "../../boards/stm32f4discovery/include/board.h" -#include "../../boards/stm32f4discovery/include/periph_conf.h" +#include "board.h" +#include "periph_conf.h" #include "periph/gpio.h" #include "net/sock/udp.h" #include "net/gnrc/ipv6.h" @@ -89,16 +89,10 @@ uint8_t node2[16]={0xfe,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x34,0x51,0x10,0 //addr ipv6 link local node 3: fe80::3634:5110:3471:3766 uint8_t node3[16]={0xfe,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x34,0x51,0x0b,0x33,0x0a,0x34,0x1e}; -//static char _stack_server[GNRC_PKTDUMP_STACKSIZE]; -char pwm_stack[THREAD_STACKSIZE_MAIN]; char sock_server_stack[THREAD_STACKSIZE_MAIN]; char sock_client_stack[THREAD_STACKSIZE_MAIN]; char sock_time_server_stack[THREAD_STACKSIZE_MAIN]; -// static gnrc_netreg_entry_t server = GNRC_NETREG_ENTRY_INIT_PID(GNRC_NETREG_DEMUX_CTX_ALL, -// KERNEL_PID_UNDEF); -// -// kernel_pid_t gnrc_server_pid = KERNEL_PID_UNDEF; -// + kernel_pid_t server, client, time_server; int ordre = 0; int64_t offset = 0; @@ -133,20 +127,10 @@ void *sock_time_server_thread(void *arg) if ((res = sock_udp_recv(&sock_ntp,&sntp_packet, sizeof(sntp_packet), SOCK_NO_TIMEOUT, &remote)) >= 0) { - // puts("Received a message"); - //printf("TT: %lu\n", byteorder_ntohl(sntp_packet.transmit.seconds)); - - // printf("%c\n",remote.addr.ipv6[15]); - //xtimer_ticks64_t now = xtimer_now64(); - // heure actuelle du serveur sntp_packet.receive.seconds=byteorder_htonl( xtimer_now_usec()); sntp_packet.origin.seconds=sntp_packet.transmit.seconds; sntp_packet.transmit.seconds=byteorder_htonl( xtimer_now_usec()); - //printf("heure actuelle : %lu\n",xtimer_now_usec()); - //printf("TT2: %lu\n", byteorder_ntohl(sntp_packet.transmit.seconds)); - //memset(&sntp_packet, 0, sizeof(sntp_packet)); - //ntp_packet_set_vn(&sntp_packet); - //ntp_packet_set_mode(&sntp_packet, NTP_MODE_SERVER); + if (sock_udp_send(&sock_ntp, &sntp_packet, sizeof(sntp_packet), &remote) < 0) { puts("Error sending reply"); } @@ -213,12 +197,6 @@ void *sock_server_thread(void *arg) gpio_clear(LED2_PIN); gpio_set(LED0_PIN); timer_set(TIMER_DEV(1),0,25200); - /* if (sntp_sync(&server, SOCK_NO_TIMEOUT) < 0) { - * puts("Error in synchronization"); - * return NULL; - } - offset = sntp_get_offset(); - printf("offset : %i\n",(int)offset);*/ timer_run = 1; } } @@ -426,10 +404,7 @@ static void _init_interface(void) static msg_t _main_msg_queue[MAIN_QUEUE_SIZE]; -extern int udp_cmd(int argc, char **argv); - static const shell_command_t shell_commands[] = { - { "udp", "send data over UDP and listen on UDP ports", udp_cmd }, { NULL, NULL, NULL } }; diff --git a/RIOT/sys/net/application_layer/sntp/sntp.c b/RIOT/sys/net/application_layer/sntp/sntp.c index 04cb16a..6b6522a 100755 --- a/RIOT/sys/net/application_layer/sntp/sntp.c +++ b/RIOT/sys/net/application_layer/sntp/sntp.c @@ -63,7 +63,7 @@ int sntp_sync(sock_udp_ep_t *server, uint32_t timeout) if ((result = (int)sock_udp_recv(&_sntp_sock, &_sntp_packet, sizeof(_sntp_packet), - SOCK_NO_TIMEOUT, + timeout, NULL)) < 0) { DEBUG("Error receiving message\n"); sock_udp_close(&_sntp_sock); diff --git a/RIOT/sys/net/gnrc/network_layer/ipv6/gnrc_ipv6.c b/RIOT/sys/net/gnrc/network_layer/ipv6/gnrc_ipv6.c index 3027059..82e0ba2 100755 --- a/RIOT/sys/net/gnrc/network_layer/ipv6/gnrc_ipv6.c +++ b/RIOT/sys/net/gnrc/network_layer/ipv6/gnrc_ipv6.c @@ -16,6 +16,8 @@ #include #include +#include "board.h" +#include "periph_conf.h" #include "byteorder.h" #include "cpu_conf.h" #include "kernel_types.h" @@ -923,7 +925,7 @@ static void _receive(gnrc_pktsnip_t *pkt) gnrc_pktsnip_t *reversed_pkt = NULL, *ptr = pkt; DEBUG("ipv6: forward packet to next hop\n"); - // printf ("transmission\n"); + LED1_TOGGLE; /* pkt might not be writable yet, if header was given above */ ipv6 = gnrc_pktbuf_start_write(ipv6); if (ipv6 == NULL) { diff --git a/RIOT/sys/net/gnrc/routing/rpl/gnrc_rpl_dodag.c b/RIOT/sys/net/gnrc/routing/rpl/gnrc_rpl_dodag.c index a64afec..e34980c 100755 --- a/RIOT/sys/net/gnrc/routing/rpl/gnrc_rpl_dodag.c +++ b/RIOT/sys/net/gnrc/routing/rpl/gnrc_rpl_dodag.c @@ -309,7 +309,6 @@ static gnrc_rpl_parent_t *_gnrc_rpl_find_preferred_parent(gnrc_rpl_dodag_t *doda gnrc_rpl_parent_t *elt, *tmp; if (dodag->parents == NULL) { - puts("NULL 1"); return NULL; } @@ -318,7 +317,6 @@ static gnrc_rpl_parent_t *_gnrc_rpl_find_preferred_parent(gnrc_rpl_dodag_t *doda } if (new_best->rank == GNRC_RPL_INFINITE_RANK) { - puts("NULL 2"); return NULL; } diff --git a/RIOT/sys/net/gnrc/routing/rpl/of0.c b/RIOT/sys/net/gnrc/routing/rpl/of0.c index a61c9dd..6458dec 100755 --- a/RIOT/sys/net/gnrc/routing/rpl/of0.c +++ b/RIOT/sys/net/gnrc/routing/rpl/of0.c @@ -54,10 +54,8 @@ uint16_t calc_rank(gnrc_rpl_parent_t *parent, uint16_t base_rank) { if (base_rank == 0) { if (parent == NULL) { - puts("pas parent"); return GNRC_RPL_INFINITE_RANK; } - //puts("if1"); base_rank = parent->rank; } @@ -65,26 +63,21 @@ uint16_t calc_rank(gnrc_rpl_parent_t *parent, uint16_t base_rank) uint16_t add; if (parent != NULL) { - //puts("if2"); - //add = parent->dodag->instance->min_hop_rank_inc; /*******************************************************************/ //ADDED BY PFE7 2017 add = 256 - (parent->mc.rssi + parent->mc.lqi)/10; parent->dodag->instance->min_hop_rank_inc=add; - //printf("add= %u\n",add); //\ADDED BY PFE7 2017 /*******************************************************************/ } else { - puts("else1"); add = GNRC_RPL_DEFAULT_MIN_HOP_RANK_INCREASE; } if ((base_rank + add) < base_rank) { - puts("b_r + add < br"); return GNRC_RPL_INFINITE_RANK; } return base_rank + add; -- libgit2 0.21.2