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 * @section Description
Michielber 0:f615d151a72c 24 *This class provides an object which can be called over RPC to run the function which is attached to it.
Michielber 0:f615d151a72c 25 *
Michielber 0:f615d151a72c 26 */
Michielber 0:f615d151a72c 27 #ifndef RPCFUNCTION_RPC
Michielber 0:f615d151a72c 28 #define RPCFUNCTION_RPC
Michielber 0:f615d151a72c 29 /**
Michielber 0:f615d151a72c 30 *Includes
Michielber 0:f615d151a72c 31 */
Michielber 0:f615d151a72c 32 #include "mbed.h"
Michielber 0:f615d151a72c 33 #include "platform.h"
Michielber 0:f615d151a72c 34 #include "rpc.h"
Michielber 0:f615d151a72c 35 #define STR_LEN 64
Michielber 0:f615d151a72c 36 #include "platform.h"
Michielber 0:f615d151a72c 37
Michielber 0:f615d151a72c 38 #ifdef MBED_RPC
Michielber 0:f615d151a72c 39 #include "rpc.h"
Michielber 0:f615d151a72c 40 #endif
Michielber 0:f615d151a72c 41 /**
Michielber 0:f615d151a72c 42 *
Michielber 0:f615d151a72c 43 *Class to call custom functions over RPC
Michielber 0:f615d151a72c 44 *
Michielber 0:f615d151a72c 45 */
Michielber 0:f615d151a72c 46 class RPCFunction : public Base{
Michielber 0:f615d151a72c 47 public:
Michielber 0:f615d151a72c 48 /**
Michielber 0:f615d151a72c 49 * Constructor
Michielber 0:f615d151a72c 50 *
Michielber 0:f615d151a72c 51 *@param f Pointer to the function to call. the function must be of the form void foo(char * input, char * output)
Michielber 0:f615d151a72c 52 *@param name The name of this object
Michielber 0:f615d151a72c 53 */
Michielber 0:f615d151a72c 54 RPCFunction(void(*f)(char*, char*), const char* = NULL);
Michielber 0:f615d151a72c 55
Michielber 0:f615d151a72c 56 /**
Michielber 0:f615d151a72c 57 *run
Michielber 0:f615d151a72c 58 *
Michielber 0:f615d151a72c 59 *Calls the attached function passing the string in but doesn't return the result.
Michielber 0:f615d151a72c 60 *@param str The string to be passed into the attached function. This string can consist of any ASCII characters apart from escape codes. The usual limtations on argument content for RPC strings has been removed
Michielber 0:f615d151a72c 61 *@return A string output from the function
Michielber 0:f615d151a72c 62 */
Michielber 0:f615d151a72c 63 char * run(char* str);
Michielber 0:f615d151a72c 64
Michielber 0:f615d151a72c 65 /**
Michielber 0:f615d151a72c 66 *Reads the value of the output string.
Michielber 0:f615d151a72c 67 *
Michielber 0:f615d151a72c 68 *@returns the string outputted from the last time the function was called
Michielber 0:f615d151a72c 69 */
Michielber 0:f615d151a72c 70 char * read();
Michielber 0:f615d151a72c 71
Michielber 0:f615d151a72c 72
Michielber 0:f615d151a72c 73 #ifdef MBED_RPC
Michielber 0:f615d151a72c 74 virtual const struct rpc_method *get_rpc_methods();
Michielber 0:f615d151a72c 75 #endif
Michielber 0:f615d151a72c 76
Michielber 0:f615d151a72c 77 private:
Michielber 0:f615d151a72c 78 void (*_ftr)(char*, char*);
Michielber 0:f615d151a72c 79
Michielber 0:f615d151a72c 80 char _input[STR_LEN];
Michielber 0:f615d151a72c 81 char _output[STR_LEN];
Michielber 0:f615d151a72c 82
Michielber 0:f615d151a72c 83 };
Michielber 0:f615d151a72c 84 #endif