Preliminary main mbed library for nexpaq development

Committer:
nexpaq
Date:
Fri Nov 04 20:54:50 2016 +0000
Revision:
1:d96dbedaebdb
Parent:
0:6c56fb4bc5f0
Removed extra directories for other platforms

Who changed what in which revision?

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