Paul Rabbat / mbed-rpc

Fork of mbed-rpc by mbed official

Committer:
prabbat3
Date:
Sat Nov 15 19:36:33 2014 +0000
Revision:
6:c91d31663056
Parent:
1:6919289a5946
working

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emilmont 1:6919289a5946 1 /* mbed Microcontroller Library
emilmont 1:6919289a5946 2 * Copyright (c) 2006-2013 ARM Limited
emilmont 1:6919289a5946 3 *
emilmont 1:6919289a5946 4 * Licensed under the Apache License, Version 2.0 (the "License");
emilmont 1:6919289a5946 5 * you may not use this file except in compliance with the License.
emilmont 1:6919289a5946 6 * You may obtain a copy of the License at
emilmont 1:6919289a5946 7 *
emilmont 1:6919289a5946 8 * http://www.apache.org/licenses/LICENSE-2.0
emilmont 1:6919289a5946 9 *
emilmont 1:6919289a5946 10 * Unless required by applicable law or agreed to in writing, software
emilmont 1:6919289a5946 11 * distributed under the License is distributed on an "AS IS" BASIS,
emilmont 1:6919289a5946 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
emilmont 1:6919289a5946 13 * See the License for the specific language governing permissions and
emilmont 1:6919289a5946 14 * limitations under the License.
emilmont 1:6919289a5946 15 */
emilmont 1:6919289a5946 16 #ifndef MBED_CLASSES_H
emilmont 1:6919289a5946 17 #define MBED_CLASSES_H
emilmont 1:6919289a5946 18
emilmont 1:6919289a5946 19 #include "rpc.h"
prabbat3 6:c91d31663056 20 #include "alarmContainer.h"
emilmont 1:6919289a5946 21
emilmont 1:6919289a5946 22 namespace mbed {
emilmont 1:6919289a5946 23
prabbat3 6:c91d31663056 24 class RpcDigitalOut : public RPC {
prabbat3 6:c91d31663056 25 public:
prabbat3 6:c91d31663056 26 RpcDigitalOut(PinName a0, const char *name=NULL) : RPC(name), o(a0) {}
prabbat3 6:c91d31663056 27
prabbat3 6:c91d31663056 28 void write(int a0) {o.write(a0);}
prabbat3 6:c91d31663056 29 int read(void) {return o.read();}
prabbat3 6:c91d31663056 30
prabbat3 6:c91d31663056 31 virtual const struct rpc_method *get_rpc_methods() {
prabbat3 6:c91d31663056 32 static const rpc_method rpc_methods[] = {
prabbat3 6:c91d31663056 33 {"write", rpc_method_caller<RpcDigitalOut, int, &RpcDigitalOut::write>},
prabbat3 6:c91d31663056 34 {"read", rpc_method_caller<int, RpcDigitalOut, &RpcDigitalOut::read>},
prabbat3 6:c91d31663056 35 RPC_METHOD_SUPER(RPC)
prabbat3 6:c91d31663056 36 };
prabbat3 6:c91d31663056 37 return rpc_methods;
prabbat3 6:c91d31663056 38 }
prabbat3 6:c91d31663056 39 static struct rpc_class *get_rpc_class() {
prabbat3 6:c91d31663056 40 static const rpc_function funcs[] = {
prabbat3 6:c91d31663056 41 {"new", rpc_function_caller<const char*, PinName, const char*, &RPC::construct<RpcDigitalOut, PinName, const char*> >},
prabbat3 6:c91d31663056 42 RPC_METHOD_END
prabbat3 6:c91d31663056 43 };
prabbat3 6:c91d31663056 44 static rpc_class c = {"DigitalOut", funcs, NULL};
prabbat3 6:c91d31663056 45 return &c;
prabbat3 6:c91d31663056 46 }
prabbat3 6:c91d31663056 47 private:
prabbat3 6:c91d31663056 48 DigitalOut o;
prabbat3 6:c91d31663056 49 };
prabbat3 6:c91d31663056 50
prabbat3 6:c91d31663056 51 class RpcAlarm : public RPC {
prabbat3 6:c91d31663056 52 public:
prabbat3 6:c91d31663056 53 // Shouldnt need pinName.
prabbat3 6:c91d31663056 54 RpcAlarm(const char *name=NULL) : RPC(name) {}
prabbat3 6:c91d31663056 55
prabbat3 6:c91d31663056 56 void setAlarm()
prabbat3 6:c91d31663056 57 {
prabbat3 6:c91d31663056 58 printf("Setting alarm..");
prabbat3 6:c91d31663056 59 _alarm.setAlarm();
prabbat3 6:c91d31663056 60 printf("Alarm set.\n");
prabbat3 6:c91d31663056 61 }
prabbat3 6:c91d31663056 62
prabbat3 6:c91d31663056 63 void updateAlarmPreference(int hours, int minutes, int amPm){
prabbat3 6:c91d31663056 64 printf("Updating alarm preferences..");
prabbat3 6:c91d31663056 65 _alarm.updateAlarmPreference(hours,minutes,amPm);
prabbat3 6:c91d31663056 66 printf("Preferences set.\n");
prabbat3 6:c91d31663056 67 }
prabbat3 6:c91d31663056 68
prabbat3 6:c91d31663056 69 virtual const struct rpc_method *get_rpc_methods() {
prabbat3 6:c91d31663056 70 static const rpc_method rpc_methods[] = {
prabbat3 6:c91d31663056 71 {"setAlarm", rpc_method_caller<RpcAlarm, &RpcAlarm::setAlarm>},
prabbat3 6:c91d31663056 72 {"updateAlarmPreference", rpc_method_caller<RpcAlarm, int, int, int, &RpcAlarm::updateAlarmPreference>},
prabbat3 6:c91d31663056 73 RPC_METHOD_SUPER(RPC)
prabbat3 6:c91d31663056 74 };
prabbat3 6:c91d31663056 75 return rpc_methods;
prabbat3 6:c91d31663056 76 }
prabbat3 6:c91d31663056 77 static struct rpc_class *get_rpc_class() {
prabbat3 6:c91d31663056 78 static const rpc_function funcs[] = {
prabbat3 6:c91d31663056 79 {"new", rpc_function_caller<const char*, const char*, &RPC::construct<RpcAlarm, const char*> >},
prabbat3 6:c91d31663056 80 RPC_METHOD_END
prabbat3 6:c91d31663056 81 };
prabbat3 6:c91d31663056 82 static rpc_class c = {"Alarm", funcs, NULL};
prabbat3 6:c91d31663056 83 return &c;
prabbat3 6:c91d31663056 84 }
prabbat3 6:c91d31663056 85 private:
prabbat3 6:c91d31663056 86 //Alarm ();
prabbat3 6:c91d31663056 87 };
emilmont 1:6919289a5946 88
prabbat3 6:c91d31663056 89 /* class RpcAlarm : public RPC {
prabbat3 6:c91d31663056 90 public:
prabbat3 6:c91d31663056 91 // Shouldnt need pinName.
prabbat3 6:c91d31663056 92 RpcAlarm(const char *name=NULL) : RPC(name) {}
prabbat3 6:c91d31663056 93
prabbat3 6:c91d31663056 94 void setAlarm(){
prabbat3 6:c91d31663056 95 printf("Setting alarm..");
prabbat3 6:c91d31663056 96 _alarm.setAlarm();
prabbat3 6:c91d31663056 97 printf("Alarm set.\n");
prabbat3 6:c91d31663056 98 }
prabbat3 6:c91d31663056 99
prabbat3 6:c91d31663056 100 void updateAlarmPreference(int hours, int minutes, int amPm){
prabbat3 6:c91d31663056 101 printf("Updating alarm preferences..");
prabbat3 6:c91d31663056 102 _alarm.updateAlarmPreference(hours,minutes,amPm);
prabbat3 6:c91d31663056 103 printf("Preferences set.\n");
prabbat3 6:c91d31663056 104 }
prabbat3 6:c91d31663056 105
prabbat3 6:c91d31663056 106 virtual const struct rpc_method *get_rpc_methods() {
prabbat3 6:c91d31663056 107 static const rpc_method rpc_methods[] = {
prabbat3 6:c91d31663056 108 {"setAlarm", rpc_method_caller<RpcAlarm, &RpcAlarm::setAlarm>},
prabbat3 6:c91d31663056 109 {"updateAlarmPreference", rpc_method_caller<RpcAlarm, int, int, int, &RpcAlarm::updateAlarmPreference>},
prabbat3 6:c91d31663056 110 RPC_METHOD_SUPER(RPC)
prabbat3 6:c91d31663056 111 };
prabbat3 6:c91d31663056 112 return rpc_methods;
prabbat3 6:c91d31663056 113 }
prabbat3 6:c91d31663056 114 static struct rpc_class *get_rpc_class() {
prabbat3 6:c91d31663056 115 static const rpc_function funcs[] = {
prabbat3 6:c91d31663056 116 {"new", rpc_function_caller<const char*, const char*, &RPC::construct<RpcAlarm, const char*> >},
prabbat3 6:c91d31663056 117 RPC_METHOD_END
prabbat3 6:c91d31663056 118 };
prabbat3 6:c91d31663056 119 static rpc_class c = {"RpcAlarm", funcs, NULL};
prabbat3 6:c91d31663056 120 return &c;
prabbat3 6:c91d31663056 121 }
prabbat3 6:c91d31663056 122 private:
prabbat3 6:c91d31663056 123 //RpcAlarm ();
prabbat3 6:c91d31663056 124 };*/
emilmont 1:6919289a5946 125
emilmont 1:6919289a5946 126 }
emilmont 1:6919289a5946 127
emilmont 1:6919289a5946 128 #endif