STM32 F103RB support for mbed-rpc, tested just once with the blinking example
Dependents: rpc_over_serial_irq
Fork of mbed-rpc by
Diff: rpc.cpp
- Revision:
- 1:6919289a5946
- Parent:
- 0:efe8172b4113
--- a/rpc.cpp Tue Nov 20 17:23:59 2012 +0000
+++ b/rpc.cpp Mon Apr 22 17:50:11 2013 +0100
@@ -1,23 +1,17 @@
/* mbed Microcontroller Library
- * Copyright (c) 2006-2012 ARM Limited
+ * Copyright (c) 2006-2013 ARM Limited
*
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
#include "rpc.h"
@@ -112,10 +106,10 @@
bool RPC::call(const char *request, char *reply) {
if (request == NULL) return false;
-
+
Arguments args(request);
Reply r(reply);
-
+
/* If there's no name print object and class names to result */
if (args.obj_name == NULL) {
for (RPC *p = RPC::_head; p != NULL; p = p->_next) {
@@ -126,20 +120,20 @@
}
return true;
}
-
+
/* First try matching an instance */
RPC *p = lookup(args.obj_name);
if (p != NULL) {
/* Get the list of methods we support */
const rpc_method *cur_method = p->get_rpc_methods();
-
+
/* When there's no method print method names to result */
if (args.method_name == NULL) {
while (true) {
for (; cur_method->name != NULL; cur_method++) {
r.putData<const char*>(cur_method->name);
}
-
+
/* write_name_arr's args are references, so result and cur_method will have changed */
if (cur_method->super != 0) {
cur_method = cur_method->super(p);
@@ -148,7 +142,7 @@
}
}
}
-
+
/* Look through the methods for the one whose name matches */
while (true) {
for (; cur_method->name != NULL; cur_method++) {
@@ -157,17 +151,17 @@
return true;
}
}
-
+
if (cur_method->super != 0) {
cur_method = cur_method->super(p);
} else {
/* end of methods and no match */
return false;
}
-
+
}
}
-
+
/* Then try a class */
for (const rpc_class *q = _classes; q != NULL; q = q->next) {
if (strcmp(q->name, args.obj_name) == 0) {
@@ -190,7 +184,7 @@
}
}
}
-
+
return false;
}
