Michiel Berckvens / Mbed 2 deprecated ProjectHTTP

Dependencies:   DS1307 TextLCD mbed

Committer:
Michielber
Date:
Thu Dec 11 16:07:34 2014 +0000
Revision:
5:6878defcfeb9
Parent:
0:f615d151a72c
Project updated belastingslijn

Who changed what in which revision?

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