pieter Berteloot / Mbed 2 deprecated xtoff3

Dependencies:   xtoff2 RF24Network mbed

Fork of RF24Network_Receive by Akash Vibhute

Files at this revision

API Documentation at this revision

Comitter:
pietor
Date:
Wed Feb 21 12:05:17 2018 +0000
Parent:
6:6a82110ff393
Child:
8:c43411433ce1
Commit message:
Case;

Changed in this revision

Ontvanger.cpp Show annotated file Show diff for this revision Revisions of this file
Ontvanger.h Show annotated file Show diff for this revision Revisions of this file
Verzender.cpp Show diff for this revision Revisions of this file
Verzender.h Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/Ontvanger.cpp	Mon Feb 19 14:44:11 2018 +0000
+++ b/Ontvanger.cpp	Wed Feb 21 12:05:17 2018 +0000
@@ -23,11 +23,20 @@
     return network.available();
 }
 
-/*
+
 payload_t Ontvanger::read()
 {
     payload_t payload_rx;
     network.read(header_rx,&payload_rx,sizeof(payload_rx));
-    
     return payload_rx;
-}*/
\ No newline at end of file
+}
+
+bool Ontvanger::write(state_Packet message)
+{
+    RF24NetworkHeader header_tx(other_node);
+    state_Packet packet;
+    packet = message;
+    return network.write(header_tx,&packet,sizeof(packet));
+}
+
+
--- a/Ontvanger.h	Mon Feb 19 14:44:11 2018 +0000
+++ b/Ontvanger.h	Wed Feb 21 12:05:17 2018 +0000
@@ -14,12 +14,22 @@
 const uint16_t other_node = 01;
 
 
-struct payload_t 
-{
+struct payload_t {
     bool reedsensor;
-    int milligram; 
+    int milligram;
 };
 
+enum State {State_init,
+            State_tare,
+            State_position,
+            State_read,
+            State_send,
+            State_receive
+           };
+
+struct state_Packet {
+    State setState;
+};
 
 
 class Ontvanger
@@ -31,7 +41,7 @@
     Ontvanger();
     void update();
     bool available();
-    
+    bool write(state_Packet message);
     payload_t read();
 };
 
--- a/Verzender.cpp	Mon Feb 19 14:44:11 2018 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-#include "Verzender.h"
-
-RF24 radio(spi_MOSI, spi_MISO, spi_SCK, nrf_CE, nrf_CSN );
-RF24Network network(radio);
-Timer t;
-unsigned long packets_sent;
-Timer t_packet;
-
-
-
-Verzender::Verzender()
-{
-    radio.begin();
-    network.begin(90,this_node);
-    wait_ms(2000);
-    t.start();
-    t_packet.start();
-}
-
-
-void Verzender::update()
-{
-    network.update();
-}
-
-
-
-bool Verzender::write(payload_t message)
-{
-    RF24NetworkHeader header_tx(other_node);
-    payload_t payload_tx;
-    payload_tx = message;
-    return network.write(header_tx,&payload_tx,sizeof(payload_tx));
-}
--- a/Verzender.h	Mon Feb 19 14:44:11 2018 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-#ifndef Verzender_h
-#define Verzender_h
-#include "mbed.h"
-#include <RF24Network.h>
-#include <RF24.h>
-
-#define nrf_CE      p9
-#define nrf_CSN     p8
-#define spi_SCK     p7
-#define spi_MOSI    p5
-#define spi_MISO    p6
-
-const uint16_t this_node2 = 11;
-const uint16_t other_node2 = 10;
-
-const unsigned long interval = 100; //ms
-
-
-struct payload_t {
-    bool reedsensor;
-    float milligram;
-};
-
-class Verzender
-{
-private:
-
-
-public:
-    Verzender();
-    void update();
-    bool write(payload_t message);
-};
-
-#endif
-
-
-
-
-
--- a/main.cpp	Mon Feb 19 14:44:11 2018 +0000
+++ b/main.cpp	Wed Feb 21 12:05:17 2018 +0000
@@ -18,28 +18,79 @@
 
 Timer t;
 
+enum State2 {init_state,
+             send_state,
+             receive_state
+            };
+
+State2 current_state = init_state;
+
 void acitvateLed()
 {
     t.reset();
 }
 
+void setCurrentState( State2 setState )
+{
+    current_state = setState;
+}
+
+
+State2 getCurrentState()
+{
+    return current_state;
+}
+
 int main()
 {
-    pc.baud(9600);
-    pc.printf("Ontvangger: \r\n");
-    t.start();
     while(1) {
         receive.update();
-        while (receive.available()) {
-            payload_t payload;
-            payload = receive.read();
-            pc.printf("%d\r\n",payload.milligram);
-            if (payload.reedsensor)
-                acitvateLed();
+        switch (current_state) {
+            case init_state:
+                pc.baud(9600);
+                pc.printf("Ontvangger: \r\n");
+                t.start();
+                state_Packet packet;
+                payload_t payload;
+                setCurrentState(receive_state);
+                break;
+
+            case send_state:
+                packet.setState = State_position;
+                bool ok = receive.write(packet);
+                if (ok)
+                    pc.printf("ok.\n\r");
+                else
+                    pc.printf("failed.\n\r");
+                wait(0.1);
+                setCurrentState(receive_state);
+                break;
+
+            case receive_state:
+                pc.printf("");//print niet weg doen, één of andere reden werkt het dan wel
+
+                if (receive.available()) {
+                    payload_t payload;
+                    payload = receive.read();
+                    pc.printf("massa = %d\r\n",payload.milligram);
+                    if (payload.reedsensor) {
+                        acitvateLed();                        
+                    }
+                }
+
+                if (t.read() <= 1)
+                    myled1 = myled2 = myled3 = myled4 = 1;
+                else
+                    myled1 = myled2 = myled3 = myled4 = 0;
+
+                if(pc.readable()) {
+                    char c = pc.getc();
+                    if(c == 's')
+                        setCurrentState(send_state);
+                    wait(0.5);
+                }
+                break;
+
         }
-        if (t.read() <= 1)
-            myled1 = myled2 = myled3 = myled4 = 1;
-        else
-            myled1 = myled2 = myled3 = myled4 = 0;
     }
 }
\ No newline at end of file