HTTP RPC Server mit vordefinierten Objekten

Dependencies:   EthernetInterface HttpServer Servo mbed-rtos mbed

Fork of RPCHTTPServerVariable by th.iotkit2.ch

Mittels RPCVariable lassen sich lokale Variablen setzen. Diese Variablen können gesetzt write oder gelesen read werden.

Mittels Ticker u.ä. Varianten lassen sich damit auch Objektwerte setzen, welche von RPC nicht unterstützt werden, z.B. Servo's.

Client

Wert setzen: http://<IP-Adresse mbed>/rpc/servo2/write+0.5

Committer:
stefan1691
Date:
Sun Mar 20 07:39:09 2016 +0000
Revision:
17:752e17b9aab4
Parent:
14:3835863bc412
https statt http verhindert Fehler

Who changed what in which revision?

UserRevisionLine numberNew contents of line
stefan1691 14:3835863bc412 1 /* mbed Microcontroller Library
stefan1691 14:3835863bc412 2 * Copyright (c) 2006-2013 ARM Limited
stefan1691 14:3835863bc412 3 *
stefan1691 14:3835863bc412 4 * Licensed under the Apache License, Version 2.0 (the "License");
stefan1691 14:3835863bc412 5 * you may not use this file except in compliance with the License.
stefan1691 14:3835863bc412 6 * You may obtain a copy of the License at
stefan1691 14:3835863bc412 7 *
stefan1691 14:3835863bc412 8 * http://www.apache.org/licenses/LICENSE-2.0
stefan1691 14:3835863bc412 9 *
stefan1691 14:3835863bc412 10 * Unless required by applicable law or agreed to in writing, software
stefan1691 14:3835863bc412 11 * distributed under the License is distributed on an "AS IS" BASIS,
stefan1691 14:3835863bc412 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
stefan1691 14:3835863bc412 13 * See the License for the specific language governing permissions and
stefan1691 14:3835863bc412 14 * limitations under the License.
stefan1691 14:3835863bc412 15 */
stefan1691 14:3835863bc412 16 #ifndef ARGUMENTS_H
stefan1691 14:3835863bc412 17 #define ARGUMENTS_H
stefan1691 14:3835863bc412 18
stefan1691 14:3835863bc412 19 #include "platform.h"
stefan1691 14:3835863bc412 20 #include "parse_pins.h"
stefan1691 14:3835863bc412 21
stefan1691 14:3835863bc412 22 namespace mbed {
stefan1691 14:3835863bc412 23
stefan1691 14:3835863bc412 24 #define RPC_MAX_STRING 128
stefan1691 14:3835863bc412 25 #define RPC_MAX_ARGS 16
stefan1691 14:3835863bc412 26
stefan1691 14:3835863bc412 27 class Arguments {
stefan1691 14:3835863bc412 28 public:
stefan1691 14:3835863bc412 29 Arguments(const char* rqs);
stefan1691 14:3835863bc412 30
stefan1691 14:3835863bc412 31 template<typename Arg>
stefan1691 14:3835863bc412 32 Arg getArg(void);
stefan1691 14:3835863bc412 33
stefan1691 14:3835863bc412 34 char *obj_name;
stefan1691 14:3835863bc412 35 char *method_name;
stefan1691 14:3835863bc412 36
stefan1691 14:3835863bc412 37 int argc;
stefan1691 14:3835863bc412 38 char* argv[RPC_MAX_ARGS];
stefan1691 14:3835863bc412 39
stefan1691 14:3835863bc412 40 private:
stefan1691 14:3835863bc412 41 // This copy can be removed if we can assume the request string is
stefan1691 14:3835863bc412 42 // persistent and writable for the duration of the call
stefan1691 14:3835863bc412 43 char request[RPC_MAX_STRING];
stefan1691 14:3835863bc412 44 int index;
stefan1691 14:3835863bc412 45 char* search_arg(char **arg, char *p, char next_sep);
stefan1691 14:3835863bc412 46 };
stefan1691 14:3835863bc412 47
stefan1691 14:3835863bc412 48 class Reply {
stefan1691 14:3835863bc412 49 public:
stefan1691 14:3835863bc412 50 Reply(char* r);
stefan1691 14:3835863bc412 51
stefan1691 14:3835863bc412 52 template<typename Data>
stefan1691 14:3835863bc412 53 void putData(Data d);
stefan1691 14:3835863bc412 54
stefan1691 14:3835863bc412 55 private:
stefan1691 14:3835863bc412 56 void separator(void);
stefan1691 14:3835863bc412 57 bool first;
stefan1691 14:3835863bc412 58 char* reply;
stefan1691 14:3835863bc412 59 };
stefan1691 14:3835863bc412 60
stefan1691 14:3835863bc412 61
stefan1691 14:3835863bc412 62 } // Namespace mbed
stefan1691 14:3835863bc412 63
stefan1691 14:3835863bc412 64 #endif