ISEN Nimes CSI3 / Mbed 2 deprecated ISEN_RF24Network_Node_01

Dependencies:   mbed RF24Network RF24

Committer:
Giamarchi
Date:
Thu May 20 07:26:02 2021 +0000
Revision:
4:d7a0a07f21f3
Parent:
3:d605536db315
version 00

Who changed what in which revision?

UserRevisionLine numberNew contents of line
akashvibhute 0:3982c0e9eda1 1 #include "mbed.h"
akashvibhute 0:3982c0e9eda1 2 #include <RF24Network.h>
akashvibhute 2:926b93a68399 3 #include <RF24.h>
Giamarchi 4:d7a0a07f21f3 4 #include "isen32_board.h"
akashvibhute 0:3982c0e9eda1 5
Giamarchi 4:d7a0a07f21f3 6 Serial pc(USBTX, USBRX); // 9600 baud par défaut
akashvibhute 0:3982c0e9eda1 7
Giamarchi 4:d7a0a07f21f3 8 #define nrf_CE PB_3 // D3 sur connecteur Arduino
Giamarchi 4:d7a0a07f21f3 9 #define nrf_CSN PB_12
Giamarchi 4:d7a0a07f21f3 10 #define spi_MOSI PB_15
Giamarchi 4:d7a0a07f21f3 11 #define spi_MISO PB_14
Giamarchi 4:d7a0a07f21f3 12 #define spi_SCK PB_13
akashvibhute 0:3982c0e9eda1 13
akashvibhute 3:d605536db315 14 RF24 radio(spi_MOSI, spi_MISO, spi_SCK, nrf_CE, nrf_CSN );
akashvibhute 0:3982c0e9eda1 15
akashvibhute 0:3982c0e9eda1 16 // Network uses that radio
akashvibhute 0:3982c0e9eda1 17 RF24Network network(radio);
akashvibhute 0:3982c0e9eda1 18
akashvibhute 0:3982c0e9eda1 19 // Address of our node
akashvibhute 3:d605536db315 20 const uint16_t this_node = 01;
akashvibhute 0:3982c0e9eda1 21
akashvibhute 0:3982c0e9eda1 22 // Address of the other node
akashvibhute 3:d605536db315 23 const uint16_t other_node = 00;
akashvibhute 0:3982c0e9eda1 24
akashvibhute 2:926b93a68399 25 // How often to send payload packet to the other unit
Giamarchi 4:d7a0a07f21f3 26 const unsigned long interval = 1000; //ms
akashvibhute 0:3982c0e9eda1 27
akashvibhute 0:3982c0e9eda1 28 // When did we last send?
akashvibhute 0:3982c0e9eda1 29 unsigned long last_sent;
akashvibhute 1:5be48a9550c3 30 Timer t;
akashvibhute 0:3982c0e9eda1 31
akashvibhute 0:3982c0e9eda1 32 // How many have we sent already
akashvibhute 0:3982c0e9eda1 33 unsigned long packets_sent;
akashvibhute 1:5be48a9550c3 34 Timer t_packet;
akashvibhute 0:3982c0e9eda1 35
akashvibhute 0:3982c0e9eda1 36 // Structure of our payload
akashvibhute 2:926b93a68399 37 struct payload_t
akashvibhute 0:3982c0e9eda1 38 {
Giamarchi 4:d7a0a07f21f3 39 // unsigned long ms;
Giamarchi 4:d7a0a07f21f3 40 // unsigned long counter;
Giamarchi 4:d7a0a07f21f3 41 uint8_t num;
Giamarchi 4:d7a0a07f21f3 42 uint8_t del;
akashvibhute 0:3982c0e9eda1 43 };
akashvibhute 0:3982c0e9eda1 44
Giamarchi 4:d7a0a07f21f3 45 struct _node
Giamarchi 4:d7a0a07f21f3 46 {
Giamarchi 4:d7a0a07f21f3 47 uint8_t num;
Giamarchi 4:d7a0a07f21f3 48 uint8_t del;
Giamarchi 4:d7a0a07f21f3 49 };
akashvibhute 0:3982c0e9eda1 50
akashvibhute 2:926b93a68399 51 int main()
akashvibhute 0:3982c0e9eda1 52 {
Giamarchi 4:d7a0a07f21f3 53 _node node;
Giamarchi 4:d7a0a07f21f3 54
Giamarchi 4:d7a0a07f21f3 55 BTN1.mode(PullUp); // Resist interne Pull up
Giamarchi 4:d7a0a07f21f3 56 pc.baud(9600);
akashvibhute 0:3982c0e9eda1 57 wait_ms(1000);
akashvibhute 2:926b93a68399 58
Giamarchi 4:d7a0a07f21f3 59 pc.printf("mBed RF24Network node : 01\r\n");
akashvibhute 0:3982c0e9eda1 60 radio.begin();
akashvibhute 0:3982c0e9eda1 61 network.begin(/*channel*/ 90, /*node address*/ this_node);
akashvibhute 0:3982c0e9eda1 62 wait_ms(2000);
akashvibhute 1:5be48a9550c3 63 t.start();
akashvibhute 1:5be48a9550c3 64 t_packet.start();
Giamarchi 4:d7a0a07f21f3 65
akashvibhute 2:926b93a68399 66 while(1)
akashvibhute 0:3982c0e9eda1 67 {
Giamarchi 4:d7a0a07f21f3 68 // Refresh Dels
Giamarchi 4:d7a0a07f21f3 69 Set_8Dels(node.del);
Giamarchi 4:d7a0a07f21f3 70
akashvibhute 0:3982c0e9eda1 71 // Pump the network regularly
akashvibhute 0:3982c0e9eda1 72 network.update();
akashvibhute 2:926b93a68399 73
akashvibhute 1:5be48a9550c3 74 /* If it's time to send a message, send it! */
akashvibhute 1:5be48a9550c3 75 unsigned long now = t.read_ms();
akashvibhute 2:926b93a68399 76 if ( now >= interval )
akashvibhute 1:5be48a9550c3 77 {
akashvibhute 1:5be48a9550c3 78 t.reset();
akashvibhute 1:5be48a9550c3 79
Giamarchi 4:d7a0a07f21f3 80 pc.printf("Envoi...");
akashvibhute 1:5be48a9550c3 81 payload_t payload_tx;
Giamarchi 4:d7a0a07f21f3 82 if(!BTN1)
Giamarchi 4:d7a0a07f21f3 83 payload_tx.num = 02;
Giamarchi 4:d7a0a07f21f3 84 else
Giamarchi 4:d7a0a07f21f3 85 payload_tx.num = 00;
Giamarchi 4:d7a0a07f21f3 86
Giamarchi 4:d7a0a07f21f3 87 payload_tx.del++;
akashvibhute 2:926b93a68399 88
akashvibhute 2:926b93a68399 89
akashvibhute 1:5be48a9550c3 90 RF24NetworkHeader header_tx(/*to node*/ other_node);
akashvibhute 1:5be48a9550c3 91 bool ok = network.write(header_tx,&payload_tx,sizeof(payload_tx));
akashvibhute 1:5be48a9550c3 92 if (ok)
Giamarchi 4:d7a0a07f21f3 93 pc.printf("%d ok.\r\n",payload_tx.del);
akashvibhute 1:5be48a9550c3 94 else
Giamarchi 4:d7a0a07f21f3 95 pc.printf("erreur.\r\n");
Giamarchi 4:d7a0a07f21f3 96
Giamarchi 4:d7a0a07f21f3 97
akashvibhute 2:926b93a68399 98 }
Giamarchi 4:d7a0a07f21f3 99 while ( network.available() )
Giamarchi 4:d7a0a07f21f3 100 {
Giamarchi 4:d7a0a07f21f3 101 // If so, grab it and print it out
Giamarchi 4:d7a0a07f21f3 102 RF24NetworkHeader header_rx;
Giamarchi 4:d7a0a07f21f3 103 payload_t payload_rx;
Giamarchi 4:d7a0a07f21f3 104 network.read(header_rx,&payload_rx,sizeof(payload_rx));
Giamarchi 4:d7a0a07f21f3 105 // pc.printf("Received packet # %d at %d ms\r\n",payload_rx.counter,payload_rx.ms);
Giamarchi 4:d7a0a07f21f3 106 pc.printf("Node %d del %d\r\n",payload_rx.num,payload_rx.del);
Giamarchi 4:d7a0a07f21f3 107
Giamarchi 4:d7a0a07f21f3 108 if (payload_rx.num == 01)
Giamarchi 4:d7a0a07f21f3 109 {
Giamarchi 4:d7a0a07f21f3 110 node.del = payload_rx.del;
Giamarchi 4:d7a0a07f21f3 111 }
Giamarchi 4:d7a0a07f21f3 112 }
akashvibhute 0:3982c0e9eda1 113 }
akashvibhute 0:3982c0e9eda1 114 }