Projectlab Elektronica-ICT KULeuven

Dependencies:   EthernetInterface TMP102 TextLCD mbed-rtos mbed

werking.pdf

main.cpp

Committer:
seppeduwe
Date:
2014-03-16
Revision:
2:1243006bb879
Parent:
1:635e76c52151
Child:
3:344115c04cd0

File content as of revision 2:1243006bb879:

#include "mbed.h"
#include "Server.h"
#include "Frame.h"
#include "Tune.h"
#include "Display.h"
#include "Temperature.h"
#include "Potentiometer.h"

InterruptIn buttonSend(p8);
bool Send;
void SendISR()
{
    Send=1;
}

InterruptIn buttonDestinationIpUp(p7);
int IpDestination=10;
bool BoolIpDestination;
char destIp[14];
void DestinationIpUp()
{
    BoolIpDestination=1;
}

//PWM-signaal gegenereerd op basis van de potentiometerwaarde
PwmOut PWMout(p22);
int main()
{
    buttonSend.rise(&SendISR);  // attach the address of the flip function to the rising edge
    buttonDestinationIpUp.rise(&DestinationIpUp);  // attach the address of the flip function to the rising edge

    char buf[256];
    Frame testFrame;
    Server server("192.168.0.107");
    server.printStatus();
    Display display;
    display.setText("Seppe's MBED");
    Tune tune;
    Temperature temp;
    Potentiometer potentiometer;

    while(1) {
        if(server.read(buf)) {
            if(!testFrame.Decode(buf))
                printf("Frame CRC Error \n\r");
            if(testFrame.getIdDestinationMbed()==7) {
                printf("Voor mij\n\r");
                PWMout=potentiometer.getPotentiometer()/100;
                tune.play(testFrame.getTune());
                //display.setText("Temp: %d",(0.026862*(testFrame.getTemperature()-25)));
                display.setText("Temp: %d",testFrame.getTemperature());
                testFrame.setIdDestinationMbed(IpDestination);
                testFrame.setTemperature(temp.getTemperature());
                testFrame.setPWMDutycycle(potentiometer.getPotentiometer());
                testFrame.setTune(testFrame.getTune()+1);
                testFrame.AddID(7);
                testFrame.Encode(buf);
            }
            if(!testFrame.CheckMyID(7)) {
                server.connect(destIp);
                server.send(buf);
            }
        }
        if(BoolIpDestination) {
            if(IpDestination!=15)
                IpDestination++;
            else
                IpDestination=1;
            sprintf(destIp,"192.168.0.1%02i",IpDestination);
            display.setText("192.168.0.1%02i",IpDestination);
            BoolIpDestination=0;
            wait(0.5);
        }
        if(Send) {
            testFrame.setIdDestinationMbed(IpDestination);
            testFrame.setTemperature(temp.getTemperature());
            testFrame.setPWMDutycycle(potentiometer.getPotentiometer());
            testFrame.setTune(1);
            testFrame.AddID(7);
            //char testIDs[]= {0x08,0x09,0x0A};
            //testFrame->setLengthIDs(3);
            //testFrame->setIDs(testIDs);
            testFrame.Encode(buf);

            server.connect(destIp);
            server.send(buf);
            Send=0;
            wait(0.5);
        }
    }
}