in d mix

Dependencies:   xtoff2 RF24Network mbed

Fork of RF24Network_Receive by Akash Vibhute

main.cpp

Committer:
pietor
Date:
2018-03-08
Revision:
9:e14f65b8ffc2
Parent:
8:c43411433ce1
Child:
10:0a4c465f7838

File content as of revision 9:e14f65b8ffc2:

/**
    Main.cpp
    Purpose: main class

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

Serial pc(USBTX, USBRX);
Ontvanger receive;
Timer t;

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

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:
                pc.printf("Send State\n\r");
                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("%f\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;
        }
    }
}