project wireless

Dependencies:   mbed nRF24L01P nRF24L01P_Hello_World TextLCD

Fork of nRF24L01P_Hello_World by Owen Edwards

Committer:
ninoderkinderen
Date:
Tue May 19 17:26:07 2015 +0000
Revision:
4:da91478e0ca4
uitvoer - wireless

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ninoderkinderen 4:da91478e0ca4 1 /**
ninoderkinderen 4:da91478e0ca4 2 * @section LICENSE
ninoderkinderen 4:da91478e0ca4 3 *Copyright (c) 2010 ARM Ltd.
ninoderkinderen 4:da91478e0ca4 4 *
ninoderkinderen 4:da91478e0ca4 5 *Permission is hereby granted, free of charge, to any person obtaining a copy
ninoderkinderen 4:da91478e0ca4 6 *of this software and associated documentation files (the "Software"), to deal
ninoderkinderen 4:da91478e0ca4 7 *in the Software without restriction, including without limitation the rights
ninoderkinderen 4:da91478e0ca4 8 *to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
ninoderkinderen 4:da91478e0ca4 9 *copies of the Software, and to permit persons to whom the Software is
ninoderkinderen 4:da91478e0ca4 10 *furnished to do so, subject to the following conditions:
ninoderkinderen 4:da91478e0ca4 11 *
ninoderkinderen 4:da91478e0ca4 12 *The above copyright notice and this permission notice shall be included in
ninoderkinderen 4:da91478e0ca4 13 *all copies or substantial portions of the Software.
ninoderkinderen 4:da91478e0ca4 14 *
ninoderkinderen 4:da91478e0ca4 15 *THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
ninoderkinderen 4:da91478e0ca4 16 *IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
ninoderkinderen 4:da91478e0ca4 17 *FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
ninoderkinderen 4:da91478e0ca4 18 *AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
ninoderkinderen 4:da91478e0ca4 19 *LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
ninoderkinderen 4:da91478e0ca4 20 *OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
ninoderkinderen 4:da91478e0ca4 21 *THE SOFTWARE.
ninoderkinderen 4:da91478e0ca4 22 *
ninoderkinderen 4:da91478e0ca4 23 *
ninoderkinderen 4:da91478e0ca4 24 * @section DESCRIPTION
ninoderkinderen 4:da91478e0ca4 25 *
ninoderkinderen 4:da91478e0ca4 26 *This class sets up RPC communication over serial.
ninoderkinderen 4:da91478e0ca4 27 */
ninoderkinderen 4:da91478e0ca4 28 #ifndef INTERFACE
ninoderkinderen 4:da91478e0ca4 29 #define INTERFACE
ninoderkinderen 4:da91478e0ca4 30
ninoderkinderen 4:da91478e0ca4 31 /**
ninoderkinderen 4:da91478e0ca4 32 *Includes
ninoderkinderen 4:da91478e0ca4 33 */
ninoderkinderen 4:da91478e0ca4 34 #include "mbed.h"
ninoderkinderen 4:da91478e0ca4 35 #include "platform.h"
ninoderkinderen 4:da91478e0ca4 36 #include "rpc.h"
ninoderkinderen 4:da91478e0ca4 37 #include "RPCFunction.h"
ninoderkinderen 4:da91478e0ca4 38 #include "RPCVariable.h"
ninoderkinderen 4:da91478e0ca4 39
ninoderkinderen 4:da91478e0ca4 40
ninoderkinderen 4:da91478e0ca4 41 namespace mbed{
ninoderkinderen 4:da91478e0ca4 42 /**
ninoderkinderen 4:da91478e0ca4 43 *Provides an Interface to mbed over RPC.
ninoderkinderen 4:da91478e0ca4 44 *
ninoderkinderen 4:da91478e0ca4 45 *For the chosen communication type this class sets up the necessary interrupts to receive RPC messages. Receives the messages, passes them to the rpc function and then returns the result.
ninoderkinderen 4:da91478e0ca4 46 */
ninoderkinderen 4:da91478e0ca4 47 class SerialRPCInterface{
ninoderkinderen 4:da91478e0ca4 48 public:
ninoderkinderen 4:da91478e0ca4 49 /**
ninoderkinderen 4:da91478e0ca4 50 *Constructor
ninoderkinderen 4:da91478e0ca4 51 *
ninoderkinderen 4:da91478e0ca4 52 *Sets up RPC communication using serial communication.
ninoderkinderen 4:da91478e0ca4 53 *
ninoderkinderen 4:da91478e0ca4 54 *@param tx The transmit pin of the serial port.
ninoderkinderen 4:da91478e0ca4 55 *@param rx The receive pin of the serial port.
ninoderkinderen 4:da91478e0ca4 56 *@param baud Set the baud rate, default is 9600.
ninoderkinderen 4:da91478e0ca4 57 */
ninoderkinderen 4:da91478e0ca4 58 SerialRPCInterface(PinName tx, PinName rx, int baud = 9600);
ninoderkinderen 4:da91478e0ca4 59
ninoderkinderen 4:da91478e0ca4 60 /**
ninoderkinderen 4:da91478e0ca4 61 *Disable the RPC.
ninoderkinderen 4:da91478e0ca4 62 *
ninoderkinderen 4:da91478e0ca4 63 *This will stop RPC messages being recevied and interpreted by this library. This might be used to prevent RPC commands interrupting an important piece of code on mbed.
ninoderkinderen 4:da91478e0ca4 64 */
ninoderkinderen 4:da91478e0ca4 65 void Disable(void);
ninoderkinderen 4:da91478e0ca4 66
ninoderkinderen 4:da91478e0ca4 67 /**
ninoderkinderen 4:da91478e0ca4 68 *Enable the RPC
ninoderkinderen 4:da91478e0ca4 69 *
ninoderkinderen 4:da91478e0ca4 70 *This will set this class to receiving and executing RPC commands. The class starts in this mode so this function only needs to be called if you have previosuly disabled the RPC.
ninoderkinderen 4:da91478e0ca4 71 *
ninoderkinderen 4:da91478e0ca4 72 */
ninoderkinderen 4:da91478e0ca4 73 void Enable(void);
ninoderkinderen 4:da91478e0ca4 74
ninoderkinderen 4:da91478e0ca4 75 //The Serial Port
ninoderkinderen 4:da91478e0ca4 76 Serial pc;
ninoderkinderen 4:da91478e0ca4 77
ninoderkinderen 4:da91478e0ca4 78
ninoderkinderen 4:da91478e0ca4 79 private:
ninoderkinderen 4:da91478e0ca4 80 //Handle messgaes and take appropriate action
ninoderkinderen 4:da91478e0ca4 81 void _MsgProcess(void);
ninoderkinderen 4:da91478e0ca4 82 void _RegClasses(void);
ninoderkinderen 4:da91478e0ca4 83 void _RPCSerial();
ninoderkinderen 4:da91478e0ca4 84 bool _enabled;
ninoderkinderen 4:da91478e0ca4 85 char _command[256];
ninoderkinderen 4:da91478e0ca4 86 char _response[256];
ninoderkinderen 4:da91478e0ca4 87 bool _RPCflag;
ninoderkinderen 4:da91478e0ca4 88 };
ninoderkinderen 4:da91478e0ca4 89 }
ninoderkinderen 4:da91478e0ca4 90 #endif