Small Testprogram to have WebAccess via Webserver to a 433Mhz tranmitter to control remotly some devices from remote, with TFTP, NTP and RMF. This could be a base to develop applications.

Dependencies:   ChaNFSSD TFTPServer RMFWeb

Dependents:   RMFWeb

Committer:
ED7418
Date:
Mon Jun 16 07:40:08 2014 +0000
Revision:
1:809b59c7a800
Parent:
0:51f1ef89ec7b
mbed-lib and other libs are a based on a project, published in a Elektor-book "ARM-microkontroller Part II".

Who changed what in which revision?

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