se

Dependencies:   mbed nRF24L01P

Fork of nRF24L01P_Project by Michiel Van Endert

Committer:
ninoderkinderen
Date:
Tue May 19 17:25:21 2015 +0000
Revision:
5:87f98ed1ee9a
sens

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ninoderkinderen 5:87f98ed1ee9a 1 /**
ninoderkinderen 5:87f98ed1ee9a 2 * @section LICENSE
ninoderkinderen 5:87f98ed1ee9a 3 *Copyright (c) 2010 ARM Ltd.
ninoderkinderen 5:87f98ed1ee9a 4 *
ninoderkinderen 5:87f98ed1ee9a 5 *Permission is hereby granted, free of charge, to any person obtaining a copy
ninoderkinderen 5:87f98ed1ee9a 6 *of this software and associated documentation files (the "Software"), to deal
ninoderkinderen 5:87f98ed1ee9a 7 *in the Software without restriction, including without limitation the rights
ninoderkinderen 5:87f98ed1ee9a 8 *to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
ninoderkinderen 5:87f98ed1ee9a 9 *copies of the Software, and to permit persons to whom the Software is
ninoderkinderen 5:87f98ed1ee9a 10 *furnished to do so, subject to the following conditions:
ninoderkinderen 5:87f98ed1ee9a 11 *
ninoderkinderen 5:87f98ed1ee9a 12 *The above copyright notice and this permission notice shall be included in
ninoderkinderen 5:87f98ed1ee9a 13 *all copies or substantial portions of the Software.
ninoderkinderen 5:87f98ed1ee9a 14 *
ninoderkinderen 5:87f98ed1ee9a 15 *THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
ninoderkinderen 5:87f98ed1ee9a 16 *IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
ninoderkinderen 5:87f98ed1ee9a 17 *FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
ninoderkinderen 5:87f98ed1ee9a 18 *AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
ninoderkinderen 5:87f98ed1ee9a 19 *LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
ninoderkinderen 5:87f98ed1ee9a 20 *OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
ninoderkinderen 5:87f98ed1ee9a 21 *THE SOFTWARE.
ninoderkinderen 5:87f98ed1ee9a 22 *
ninoderkinderen 5:87f98ed1ee9a 23 * @section Description
ninoderkinderen 5:87f98ed1ee9a 24 *This class provides an object which can be called over RPC to run the function which is attached to it.
ninoderkinderen 5:87f98ed1ee9a 25 *
ninoderkinderen 5:87f98ed1ee9a 26 */
ninoderkinderen 5:87f98ed1ee9a 27 #ifndef RPCFUNCTION_RPC
ninoderkinderen 5:87f98ed1ee9a 28 #define RPCFUNCTION_RPC
ninoderkinderen 5:87f98ed1ee9a 29 /**
ninoderkinderen 5:87f98ed1ee9a 30 *Includes
ninoderkinderen 5:87f98ed1ee9a 31 */
ninoderkinderen 5:87f98ed1ee9a 32 #include "mbed.h"
ninoderkinderen 5:87f98ed1ee9a 33 #include "platform.h"
ninoderkinderen 5:87f98ed1ee9a 34 #include "rpc.h"
ninoderkinderen 5:87f98ed1ee9a 35 #define STR_LEN 64
ninoderkinderen 5:87f98ed1ee9a 36 #include "platform.h"
ninoderkinderen 5:87f98ed1ee9a 37
ninoderkinderen 5:87f98ed1ee9a 38 #ifdef MBED_RPC
ninoderkinderen 5:87f98ed1ee9a 39 #include "rpc.h"
ninoderkinderen 5:87f98ed1ee9a 40 #endif
ninoderkinderen 5:87f98ed1ee9a 41 /**
ninoderkinderen 5:87f98ed1ee9a 42 *
ninoderkinderen 5:87f98ed1ee9a 43 *Class to call custom functions over RPC
ninoderkinderen 5:87f98ed1ee9a 44 *
ninoderkinderen 5:87f98ed1ee9a 45 */
ninoderkinderen 5:87f98ed1ee9a 46 class RPCFunction : public Base{
ninoderkinderen 5:87f98ed1ee9a 47 public:
ninoderkinderen 5:87f98ed1ee9a 48 /**
ninoderkinderen 5:87f98ed1ee9a 49 * Constructor
ninoderkinderen 5:87f98ed1ee9a 50 *
ninoderkinderen 5:87f98ed1ee9a 51 *@param f Pointer to the function to call. the function must be of the form void foo(char * input, char * output)
ninoderkinderen 5:87f98ed1ee9a 52 *@param name The name of this object
ninoderkinderen 5:87f98ed1ee9a 53 */
ninoderkinderen 5:87f98ed1ee9a 54 RPCFunction(void(*f)(char*, char*), const char* = NULL);
ninoderkinderen 5:87f98ed1ee9a 55
ninoderkinderen 5:87f98ed1ee9a 56 /**
ninoderkinderen 5:87f98ed1ee9a 57 *run
ninoderkinderen 5:87f98ed1ee9a 58 *
ninoderkinderen 5:87f98ed1ee9a 59 *Calls the attached function passing the string in but doesn't return the result.
ninoderkinderen 5:87f98ed1ee9a 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
ninoderkinderen 5:87f98ed1ee9a 61 *@return A string output from the function
ninoderkinderen 5:87f98ed1ee9a 62 */
ninoderkinderen 5:87f98ed1ee9a 63 char * run(char* str);
ninoderkinderen 5:87f98ed1ee9a 64
ninoderkinderen 5:87f98ed1ee9a 65 /**
ninoderkinderen 5:87f98ed1ee9a 66 *Reads the value of the output string.
ninoderkinderen 5:87f98ed1ee9a 67 *
ninoderkinderen 5:87f98ed1ee9a 68 *@returns the string outputted from the last time the function was called
ninoderkinderen 5:87f98ed1ee9a 69 */
ninoderkinderen 5:87f98ed1ee9a 70 char * read();
ninoderkinderen 5:87f98ed1ee9a 71
ninoderkinderen 5:87f98ed1ee9a 72
ninoderkinderen 5:87f98ed1ee9a 73 #ifdef MBED_RPC
ninoderkinderen 5:87f98ed1ee9a 74 virtual const struct rpc_method *get_rpc_methods();
ninoderkinderen 5:87f98ed1ee9a 75 #endif
ninoderkinderen 5:87f98ed1ee9a 76
ninoderkinderen 5:87f98ed1ee9a 77 private:
ninoderkinderen 5:87f98ed1ee9a 78 void (*_ftr)(char*, char*);
ninoderkinderen 5:87f98ed1ee9a 79
ninoderkinderen 5:87f98ed1ee9a 80 char _input[STR_LEN];
ninoderkinderen 5:87f98ed1ee9a 81 char _output[STR_LEN];
ninoderkinderen 5:87f98ed1ee9a 82
ninoderkinderen 5:87f98ed1ee9a 83 };
ninoderkinderen 5:87f98ed1ee9a 84 #endif