Chris Pepper / Mbed 2 deprecated SimpleSerialProtocolExample

Dependencies:   mbed SimpleSerialProtocol MODSERIAL

Committer:
p3p
Date:
Sat Mar 17 16:42:31 2012 +0000
Revision:
5:f693f68e9de6
Parent:
4:c0a69c32d054
Child:
6:d33e929ebaa9
override Serial io

Who changed what in which revision?

UserRevisionLine numberNew contents of line
p3p 4:c0a69c32d054 1 #ifndef _TEST_PROTOCOL_H
p3p 4:c0a69c32d054 2 #define _TEST_PROTOCOL_H
p3p 4:c0a69c32d054 3
p3p 4:c0a69c32d054 4 #include <mbed.h>
p3p 4:c0a69c32d054 5 #include <SimpleSerialProtocol/Protocol.h>
p3p 4:c0a69c32d054 6
p3p 4:c0a69c32d054 7 //class will receive a packet and echo it back out
p3p 4:c0a69c32d054 8 class TestProtocol : public SimpleSerialProtocol::Protocol {
p3p 4:c0a69c32d054 9 public:
p3p 5:f693f68e9de6 10 TestProtocol() : Protocol(USBTX, USBRX, LED1) { //LED1 to 4 for a status led, NC to disable
p3p 5:f693f68e9de6 11 _dma_port = MODDMA::Channel_7; //set the dma port, must be unique per class 0 - 9
p3p 5:f693f68e9de6 12 receiveCallback(1, this, &TestProtocol::onEchoPacket);
p3p 4:c0a69c32d054 13 }
p3p 4:c0a69c32d054 14 virtual ~TestProtocol() {};
p3p 5:f693f68e9de6 15 void onEchoPacket(SimpleSerialProtocol::Packet* packet);
p3p 4:c0a69c32d054 16 void reply();
p3p 4:c0a69c32d054 17
p3p 4:c0a69c32d054 18 class EchoPacket : public SimpleSerialProtocol::Packet {
p3p 4:c0a69c32d054 19 public:
p3p 4:c0a69c32d054 20 EchoPacket() {}
p3p 4:c0a69c32d054 21 virtual ~EchoPacket() {}
p3p 4:c0a69c32d054 22
p3p 4:c0a69c32d054 23 #pragma pack(push, 1) //must pack the structure to byte boundary for raw recast to work reliably
p3p 4:c0a69c32d054 24 struct Interface {
p3p 4:c0a69c32d054 25 Interface() {
p3p 4:c0a69c32d054 26 type = 1; // initialise the type
p3p 4:c0a69c32d054 27 }
p3p 4:c0a69c32d054 28 uint8_t type;
p3p 4:c0a69c32d054 29 uint8_t data;
p3p 4:c0a69c32d054 30 uint16_t datashort;
p3p 4:c0a69c32d054 31 uint32_t dataint;
p3p 4:c0a69c32d054 32 float datafloat;
p3p 4:c0a69c32d054 33 } interface;
p3p 4:c0a69c32d054 34 #pragma pack(pop)
p3p 4:c0a69c32d054 35
p3p 4:c0a69c32d054 36 };
p3p 4:c0a69c32d054 37
p3p 4:c0a69c32d054 38 uint8_t temp;
p3p 4:c0a69c32d054 39 short temp1;
p3p 4:c0a69c32d054 40 int temp2;
p3p 4:c0a69c32d054 41 float temp3;
p3p 4:c0a69c32d054 42 };
p3p 4:c0a69c32d054 43
p3p 4:c0a69c32d054 44 #endif