in d mix

Dependencies:   xtoff2 RF24Network mbed

Fork of RF24Network_Receive by Akash Vibhute

main.cpp

Committer:
pietor
Date:
2018-02-21
Revision:
7:8515f205483b
Parent:
6:6a82110ff393
Child:
8:c43411433ce1

File content as of revision 7:8515f205483b:

/**
    Main.cpp
    Purpose: main class

    @author Pieter Berteloot
*/
#include "mbed.h"
#include "Ontvanger.h"

DigitalOut myled1(LED1);
DigitalOut myled2(LED2);
DigitalOut myled3(LED3);
DigitalOut myled4(LED4);

Serial pc(USBTX, USBRX);

Ontvanger receive;

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()
{
    while(1) {
        receive.update();
        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;

        }
    }
}