Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.21 KB | None | 0 0
  1. #include "contiki.h"
  2. #include "net/netstack.h"
  3. #include "net/nullnet/nullnet.h"
  4.  
  5. #include "lib/random.h"
  6. #include <string.h>
  7. #include <stdio.h>
  8.  
  9. #include "sys/log.h"
  10. #define LOG_MODULE "Test"
  11. #define LOG_LEVEL LOG_LEVEL_INFO
  12.  
  13. PROCESS (n2ncomms, "N2N Comms");
  14. AUTOSTART_PROCESSES (&n2ncomms);
  15.  
  16. struct ctimer reply_timer;
  17. static linkaddr+
  18. uint8_t sourceAddres;
  19. static uint8_t distance = -1;
  20.  
  21.  
  22. void broadcast(){
  23.   LOG_INFO ("Callback\n");
  24.   static uint8_t buffer[1];
  25.   buffer[0] = distance;
  26.   nullnet_buf = buffer;
  27.   nullnet_len = 1;  // Nullnet packet is 1B
  28.   NETSTACK_NETWORK.output(NULL);
  29. }
  30.  
  31. void nullnet_receive (const void *data, uint16_t len,
  32.                       const linkaddr_t *src, const linkaddr_t *dest)
  33. {
  34.   uint8_t distanceFromParent = ((uint8_t*)data)[0];
  35.   if(distance > distanceFromParent ){
  36. //if(distance > distanceFromParent +1)
  37.     distance = distanceFromParent + 1;
  38.     sourceAddres = *src;
  39.     broadcast();
  40. }
  41. }
  42.  
  43.  
  44.  
  45.  
  46. PROCESS_THREAD (n2ncomms, ev, data)
  47. {
  48.  
  49.  
  50.   PROCESS_BEGIN ();
  51.   if(linkaddr_node_addr.u8[0] == 1){
  52.  
  53.     distance = 0;
  54.     broadcast();
  55.    
  56. }
  57.  
  58. nullnet_set_input_callback(nullnet_receive);
  59.  
  60.  
  61. //nullnet_set_input_callback (nullnet_receive);
  62.   PROCESS_END ();
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement