Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: xtoff2 RF24Network mbed
Fork of xtoff3 by
Revision 7:8515f205483b, committed 2018-02-21
- Comitter:
- pietor
- Date:
- Wed Feb 21 12:05:17 2018 +0000
- Parent:
- 6:6a82110ff393
- Child:
- 8:c43411433ce1
- Commit message:
- Case;
Changed in this revision
--- 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
