Rtos API example

Committer:
marcozecchini
Date:
Sat Feb 23 12:13:36 2019 +0000
Revision:
0:9fca2b23d0ba
final commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
marcozecchini 0:9fca2b23d0ba 1 /* mbed Microcontroller Library
marcozecchini 0:9fca2b23d0ba 2 * Copyright (c) 2006-2013 ARM Limited
marcozecchini 0:9fca2b23d0ba 3 *
marcozecchini 0:9fca2b23d0ba 4 * Licensed under the Apache License, Version 2.0 (the "License");
marcozecchini 0:9fca2b23d0ba 5 * you may not use this file except in compliance with the License.
marcozecchini 0:9fca2b23d0ba 6 * You may obtain a copy of the License at
marcozecchini 0:9fca2b23d0ba 7 *
marcozecchini 0:9fca2b23d0ba 8 * http://www.apache.org/licenses/LICENSE-2.0
marcozecchini 0:9fca2b23d0ba 9 *
marcozecchini 0:9fca2b23d0ba 10 * Unless required by applicable law or agreed to in writing, software
marcozecchini 0:9fca2b23d0ba 11 * distributed under the License is distributed on an "AS IS" BASIS,
marcozecchini 0:9fca2b23d0ba 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
marcozecchini 0:9fca2b23d0ba 13 * See the License for the specific language governing permissions and
marcozecchini 0:9fca2b23d0ba 14 * limitations under the License.
marcozecchini 0:9fca2b23d0ba 15 */
marcozecchini 0:9fca2b23d0ba 16 #ifndef RPCFUNCTION_RPC
marcozecchini 0:9fca2b23d0ba 17 #define RPCFUNCTION_RPC
marcozecchini 0:9fca2b23d0ba 18
marcozecchini 0:9fca2b23d0ba 19 #include "rpc.h"
marcozecchini 0:9fca2b23d0ba 20 #define STR_LEN 64
marcozecchini 0:9fca2b23d0ba 21
marcozecchini 0:9fca2b23d0ba 22 namespace mbed {
marcozecchini 0:9fca2b23d0ba 23
marcozecchini 0:9fca2b23d0ba 24 /**
marcozecchini 0:9fca2b23d0ba 25 *
marcozecchini 0:9fca2b23d0ba 26 *Class to call custom functions over RPC
marcozecchini 0:9fca2b23d0ba 27 *
marcozecchini 0:9fca2b23d0ba 28 */
marcozecchini 0:9fca2b23d0ba 29 class RPCFunction: public RPC {
marcozecchini 0:9fca2b23d0ba 30 public:
marcozecchini 0:9fca2b23d0ba 31 /**
marcozecchini 0:9fca2b23d0ba 32 * Constructor
marcozecchini 0:9fca2b23d0ba 33 *
marcozecchini 0:9fca2b23d0ba 34 *@param f Pointer to the function to call. the function must be of the form void foo(char * input, char * output)
marcozecchini 0:9fca2b23d0ba 35 *@param name The name of this object
marcozecchini 0:9fca2b23d0ba 36 */
marcozecchini 0:9fca2b23d0ba 37 RPCFunction(void (*f)(Arguments*, Reply*), const char* = NULL);
marcozecchini 0:9fca2b23d0ba 38
marcozecchini 0:9fca2b23d0ba 39 /**
marcozecchini 0:9fca2b23d0ba 40 *run
marcozecchini 0:9fca2b23d0ba 41 *
marcozecchini 0:9fca2b23d0ba 42 *Calls the attached function passing the string in but doesn't return the result.
marcozecchini 0:9fca2b23d0ba 43 *@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
marcozecchini 0:9fca2b23d0ba 44 *@return A string output from the function
marcozecchini 0:9fca2b23d0ba 45 */
marcozecchini 0:9fca2b23d0ba 46 void run(Arguments* args, Reply* r);
marcozecchini 0:9fca2b23d0ba 47
marcozecchini 0:9fca2b23d0ba 48 virtual const struct rpc_method *get_rpc_methods();
marcozecchini 0:9fca2b23d0ba 49
marcozecchini 0:9fca2b23d0ba 50 private:
marcozecchini 0:9fca2b23d0ba 51 void (*_ftr)(Arguments*, Reply*);
marcozecchini 0:9fca2b23d0ba 52
marcozecchini 0:9fca2b23d0ba 53 char _input[STR_LEN];
marcozecchini 0:9fca2b23d0ba 54 char _output[STR_LEN];
marcozecchini 0:9fca2b23d0ba 55 };
marcozecchini 0:9fca2b23d0ba 56
marcozecchini 0:9fca2b23d0ba 57 }
marcozecchini 0:9fca2b23d0ba 58
marcozecchini 0:9fca2b23d0ba 59 #endif