mbed-os

Dependents:   cobaLCDJoyMotor_Thread odometry_omni_3roda_v3 odometry_omni_3roda_v1 odometry_omni_3roda_v2 ... more

Committer:
be_bryan
Date:
Mon Dec 11 17:54:04 2017 +0000
Revision:
0:b74591d5ab33
motor ++

Who changed what in which revision?

UserRevisionLine numberNew contents of line
be_bryan 0:b74591d5ab33 1 /* mbed Microcontroller Library
be_bryan 0:b74591d5ab33 2 * Copyright (c) 2006-2013 ARM Limited
be_bryan 0:b74591d5ab33 3 *
be_bryan 0:b74591d5ab33 4 * Licensed under the Apache License, Version 2.0 (the "License");
be_bryan 0:b74591d5ab33 5 * you may not use this file except in compliance with the License.
be_bryan 0:b74591d5ab33 6 * You may obtain a copy of the License at
be_bryan 0:b74591d5ab33 7 *
be_bryan 0:b74591d5ab33 8 * http://www.apache.org/licenses/LICENSE-2.0
be_bryan 0:b74591d5ab33 9 *
be_bryan 0:b74591d5ab33 10 * Unless required by applicable law or agreed to in writing, software
be_bryan 0:b74591d5ab33 11 * distributed under the License is distributed on an "AS IS" BASIS,
be_bryan 0:b74591d5ab33 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
be_bryan 0:b74591d5ab33 13 * See the License for the specific language governing permissions and
be_bryan 0:b74591d5ab33 14 * limitations under the License.
be_bryan 0:b74591d5ab33 15 */
be_bryan 0:b74591d5ab33 16 #ifndef MBED_CLASSES_H
be_bryan 0:b74591d5ab33 17 #define MBED_CLASSES_H
be_bryan 0:b74591d5ab33 18
be_bryan 0:b74591d5ab33 19 #include "rpc.h"
be_bryan 0:b74591d5ab33 20
be_bryan 0:b74591d5ab33 21 namespace mbed {
be_bryan 0:b74591d5ab33 22
be_bryan 0:b74591d5ab33 23 class RpcDigitalOut : public RPC {
be_bryan 0:b74591d5ab33 24 public:
be_bryan 0:b74591d5ab33 25 RpcDigitalOut(PinName a0, const char *name=NULL) : RPC(name), o(a0) {}
be_bryan 0:b74591d5ab33 26
be_bryan 0:b74591d5ab33 27 void write(int a0) {o.write(a0);}
be_bryan 0:b74591d5ab33 28 int read(void) {return o.read();}
be_bryan 0:b74591d5ab33 29
be_bryan 0:b74591d5ab33 30 virtual const struct rpc_method *get_rpc_methods() {
be_bryan 0:b74591d5ab33 31 static const rpc_method rpc_methods[] = {
be_bryan 0:b74591d5ab33 32 {"write", rpc_method_caller<RpcDigitalOut, int, &RpcDigitalOut::write>},
be_bryan 0:b74591d5ab33 33 {"read", rpc_method_caller<int, RpcDigitalOut, &RpcDigitalOut::read>},
be_bryan 0:b74591d5ab33 34 RPC_METHOD_SUPER(RPC)
be_bryan 0:b74591d5ab33 35 };
be_bryan 0:b74591d5ab33 36 return rpc_methods;
be_bryan 0:b74591d5ab33 37 }
be_bryan 0:b74591d5ab33 38 static struct rpc_class *get_rpc_class() {
be_bryan 0:b74591d5ab33 39 static const rpc_function funcs[] = {
be_bryan 0:b74591d5ab33 40 {"new", rpc_function_caller<const char*, PinName, const char*, &RPC::construct<RpcDigitalOut, PinName, const char*> >},
be_bryan 0:b74591d5ab33 41 RPC_METHOD_END
be_bryan 0:b74591d5ab33 42 };
be_bryan 0:b74591d5ab33 43 static rpc_class c = {"DigitalOut", funcs, NULL};
be_bryan 0:b74591d5ab33 44 return &c;
be_bryan 0:b74591d5ab33 45 }
be_bryan 0:b74591d5ab33 46 private:
be_bryan 0:b74591d5ab33 47 DigitalOut o;
be_bryan 0:b74591d5ab33 48 };
be_bryan 0:b74591d5ab33 49
be_bryan 0:b74591d5ab33 50 class RpcDigitalIn : public RPC {
be_bryan 0:b74591d5ab33 51 public:
be_bryan 0:b74591d5ab33 52 RpcDigitalIn(PinName a0, const char *name=NULL) : RPC(name), o(a0) {}
be_bryan 0:b74591d5ab33 53
be_bryan 0:b74591d5ab33 54 int read(void) {return o.read();}
be_bryan 0:b74591d5ab33 55
be_bryan 0:b74591d5ab33 56 virtual const struct rpc_method *get_rpc_methods() {
be_bryan 0:b74591d5ab33 57 static const rpc_method rpc_methods[] = {
be_bryan 0:b74591d5ab33 58 {"read", rpc_method_caller<int, RpcDigitalIn, &RpcDigitalIn::read>},
be_bryan 0:b74591d5ab33 59 RPC_METHOD_SUPER(RPC)
be_bryan 0:b74591d5ab33 60 };
be_bryan 0:b74591d5ab33 61 return rpc_methods;
be_bryan 0:b74591d5ab33 62 }
be_bryan 0:b74591d5ab33 63 static struct rpc_class *get_rpc_class() {
be_bryan 0:b74591d5ab33 64 static const rpc_function funcs[] = {
be_bryan 0:b74591d5ab33 65 {"new", rpc_function_caller<const char*, PinName, const char*, &RPC::construct<RpcDigitalIn, PinName, const char*> >},
be_bryan 0:b74591d5ab33 66 RPC_METHOD_END
be_bryan 0:b74591d5ab33 67 };
be_bryan 0:b74591d5ab33 68 static rpc_class c = {"DigitalIn", funcs, NULL};
be_bryan 0:b74591d5ab33 69 return &c;
be_bryan 0:b74591d5ab33 70 }
be_bryan 0:b74591d5ab33 71 private:
be_bryan 0:b74591d5ab33 72 DigitalIn o;
be_bryan 0:b74591d5ab33 73 };
be_bryan 0:b74591d5ab33 74
be_bryan 0:b74591d5ab33 75 class RpcDigitalInOut : public RPC {
be_bryan 0:b74591d5ab33 76 public:
be_bryan 0:b74591d5ab33 77 RpcDigitalInOut(PinName a0, const char *name=NULL) : RPC(name), o(a0) {}
be_bryan 0:b74591d5ab33 78
be_bryan 0:b74591d5ab33 79 int read(void) {return o.read();}
be_bryan 0:b74591d5ab33 80 void write(int a0) {o.write(a0);}
be_bryan 0:b74591d5ab33 81 void input(void) {o.input();}
be_bryan 0:b74591d5ab33 82 void output(void) {o.output();}
be_bryan 0:b74591d5ab33 83
be_bryan 0:b74591d5ab33 84 virtual const struct rpc_method *get_rpc_methods() {
be_bryan 0:b74591d5ab33 85 static const rpc_method rpc_methods[] = {
be_bryan 0:b74591d5ab33 86 {"read", rpc_method_caller<int, RpcDigitalInOut, &RpcDigitalInOut::read>},
be_bryan 0:b74591d5ab33 87 {"write", rpc_method_caller<RpcDigitalInOut, int, &RpcDigitalInOut::write>},
be_bryan 0:b74591d5ab33 88 {"input", rpc_method_caller<RpcDigitalInOut, &RpcDigitalInOut::input>},
be_bryan 0:b74591d5ab33 89 {"output", rpc_method_caller<RpcDigitalInOut, &RpcDigitalInOut::output>},
be_bryan 0:b74591d5ab33 90 RPC_METHOD_SUPER(RPC)
be_bryan 0:b74591d5ab33 91 };
be_bryan 0:b74591d5ab33 92 return rpc_methods;
be_bryan 0:b74591d5ab33 93 }
be_bryan 0:b74591d5ab33 94 static struct rpc_class *get_rpc_class() {
be_bryan 0:b74591d5ab33 95 static const rpc_function funcs[] = {
be_bryan 0:b74591d5ab33 96 {"new", rpc_function_caller<const char*, PinName, const char*, &RPC::construct<RpcDigitalInOut, PinName, const char*> >},
be_bryan 0:b74591d5ab33 97 RPC_METHOD_END
be_bryan 0:b74591d5ab33 98 };
be_bryan 0:b74591d5ab33 99 static rpc_class c = {"DigitalInOut", funcs, NULL};
be_bryan 0:b74591d5ab33 100 return &c;
be_bryan 0:b74591d5ab33 101 }
be_bryan 0:b74591d5ab33 102 private:
be_bryan 0:b74591d5ab33 103 DigitalInOut o;
be_bryan 0:b74591d5ab33 104 };
be_bryan 0:b74591d5ab33 105
be_bryan 0:b74591d5ab33 106 #if DEVICE_ANALOGIN
be_bryan 0:b74591d5ab33 107 class RpcAnalogIn : public RPC {
be_bryan 0:b74591d5ab33 108 public:
be_bryan 0:b74591d5ab33 109 RpcAnalogIn(PinName a0, const char *name=NULL) : RPC(name), o(a0) {}
be_bryan 0:b74591d5ab33 110
be_bryan 0:b74591d5ab33 111 float read(void) {return o.read();}
be_bryan 0:b74591d5ab33 112 unsigned short read_u16(void) {return o.read_u16();}
be_bryan 0:b74591d5ab33 113
be_bryan 0:b74591d5ab33 114 virtual const struct rpc_method *get_rpc_methods() {
be_bryan 0:b74591d5ab33 115 static const rpc_method rpc_methods[] = {
be_bryan 0:b74591d5ab33 116 {"read", rpc_method_caller<float, RpcAnalogIn, &RpcAnalogIn::read>},
be_bryan 0:b74591d5ab33 117 {"read_u16", rpc_method_caller<unsigned short, RpcAnalogIn, &RpcAnalogIn::read_u16>},
be_bryan 0:b74591d5ab33 118 RPC_METHOD_SUPER(RPC)
be_bryan 0:b74591d5ab33 119 };
be_bryan 0:b74591d5ab33 120 return rpc_methods;
be_bryan 0:b74591d5ab33 121 }
be_bryan 0:b74591d5ab33 122 static struct rpc_class *get_rpc_class() {
be_bryan 0:b74591d5ab33 123 static const rpc_function funcs[] = {
be_bryan 0:b74591d5ab33 124 {"new", rpc_function_caller<const char*, PinName, const char*, &RPC::construct<RpcAnalogIn, PinName, const char*> >},
be_bryan 0:b74591d5ab33 125 RPC_METHOD_END
be_bryan 0:b74591d5ab33 126 };
be_bryan 0:b74591d5ab33 127 static rpc_class c = {"AnalogIn", funcs, NULL};
be_bryan 0:b74591d5ab33 128 return &c;
be_bryan 0:b74591d5ab33 129 }
be_bryan 0:b74591d5ab33 130 private:
be_bryan 0:b74591d5ab33 131 AnalogIn o;
be_bryan 0:b74591d5ab33 132 };
be_bryan 0:b74591d5ab33 133 #endif
be_bryan 0:b74591d5ab33 134
be_bryan 0:b74591d5ab33 135 #if DEVICE_ANALOGOUT
be_bryan 0:b74591d5ab33 136 class RpcAnalogOut : public RPC {
be_bryan 0:b74591d5ab33 137 public:
be_bryan 0:b74591d5ab33 138 RpcAnalogOut(PinName a0, const char *name=NULL) : RPC(name), o(a0) {}
be_bryan 0:b74591d5ab33 139
be_bryan 0:b74591d5ab33 140 float read(void) {return o.read();}
be_bryan 0:b74591d5ab33 141 void write(float a0) {o.write(a0);}
be_bryan 0:b74591d5ab33 142 void write_u16(unsigned short a0) {o.write_u16(a0);}
be_bryan 0:b74591d5ab33 143
be_bryan 0:b74591d5ab33 144 virtual const struct rpc_method *get_rpc_methods() {
be_bryan 0:b74591d5ab33 145 static const rpc_method rpc_methods[] = {
be_bryan 0:b74591d5ab33 146 {"read", rpc_method_caller<float, RpcAnalogOut, &RpcAnalogOut::read>},
be_bryan 0:b74591d5ab33 147 {"write", rpc_method_caller<RpcAnalogOut, float, &RpcAnalogOut::write>},
be_bryan 0:b74591d5ab33 148 {"write_u16", rpc_method_caller<RpcAnalogOut, unsigned short, &RpcAnalogOut::write_u16>},
be_bryan 0:b74591d5ab33 149 RPC_METHOD_SUPER(RPC)
be_bryan 0:b74591d5ab33 150 };
be_bryan 0:b74591d5ab33 151 return rpc_methods;
be_bryan 0:b74591d5ab33 152 }
be_bryan 0:b74591d5ab33 153 static struct rpc_class *get_rpc_class() {
be_bryan 0:b74591d5ab33 154 static const rpc_function funcs[] = {
be_bryan 0:b74591d5ab33 155 {"new", rpc_function_caller<const char*, PinName, const char*, &RPC::construct<RpcAnalogOut, PinName, const char*> >},
be_bryan 0:b74591d5ab33 156 RPC_METHOD_END
be_bryan 0:b74591d5ab33 157 };
be_bryan 0:b74591d5ab33 158 static rpc_class c = {"AnalogOut", funcs, NULL};
be_bryan 0:b74591d5ab33 159 return &c;
be_bryan 0:b74591d5ab33 160 }
be_bryan 0:b74591d5ab33 161 private:
be_bryan 0:b74591d5ab33 162 AnalogOut o;
be_bryan 0:b74591d5ab33 163 };
be_bryan 0:b74591d5ab33 164 #endif
be_bryan 0:b74591d5ab33 165
be_bryan 0:b74591d5ab33 166 #if DEVICE_PWMOUT
be_bryan 0:b74591d5ab33 167 class RpcPwmOut : public RPC {
be_bryan 0:b74591d5ab33 168 public:
be_bryan 0:b74591d5ab33 169 RpcPwmOut(PinName a0, const char *name=NULL) : RPC(name), o(a0) {}
be_bryan 0:b74591d5ab33 170
be_bryan 0:b74591d5ab33 171 float read(void) {return o.read();}
be_bryan 0:b74591d5ab33 172 void write(float a0) {o.write(a0);}
be_bryan 0:b74591d5ab33 173 void period(float a0) {o.period(a0);}
be_bryan 0:b74591d5ab33 174 void period_ms(int a0) {o.period_ms(a0);}
be_bryan 0:b74591d5ab33 175 void pulsewidth(float a0) {o.pulsewidth(a0);}
be_bryan 0:b74591d5ab33 176 void pulsewidth_ms(int a0) {o.pulsewidth_ms(a0);}
be_bryan 0:b74591d5ab33 177
be_bryan 0:b74591d5ab33 178 virtual const struct rpc_method *get_rpc_methods() {
be_bryan 0:b74591d5ab33 179 static const rpc_method rpc_methods[] = {
be_bryan 0:b74591d5ab33 180 {"read", rpc_method_caller<float, RpcPwmOut, &RpcPwmOut::read>},
be_bryan 0:b74591d5ab33 181 {"write", rpc_method_caller<RpcPwmOut, float, &RpcPwmOut::write>},
be_bryan 0:b74591d5ab33 182 {"period", rpc_method_caller<RpcPwmOut, float, &RpcPwmOut::period>},
be_bryan 0:b74591d5ab33 183 {"period_ms", rpc_method_caller<RpcPwmOut, int, &RpcPwmOut::period_ms>},
be_bryan 0:b74591d5ab33 184 {"pulsewidth", rpc_method_caller<RpcPwmOut, float, &RpcPwmOut::pulsewidth>},
be_bryan 0:b74591d5ab33 185 {"pulsewidth_ms", rpc_method_caller<RpcPwmOut, int, &RpcPwmOut::pulsewidth_ms>},
be_bryan 0:b74591d5ab33 186 RPC_METHOD_SUPER(RPC)
be_bryan 0:b74591d5ab33 187 };
be_bryan 0:b74591d5ab33 188 return rpc_methods;
be_bryan 0:b74591d5ab33 189 }
be_bryan 0:b74591d5ab33 190 static struct rpc_class *get_rpc_class() {
be_bryan 0:b74591d5ab33 191 static const rpc_function funcs[] = {
be_bryan 0:b74591d5ab33 192 {"new", rpc_function_caller<const char*, PinName, const char*, &RPC::construct<RpcPwmOut, PinName, const char*> >},
be_bryan 0:b74591d5ab33 193 RPC_METHOD_END
be_bryan 0:b74591d5ab33 194 };
be_bryan 0:b74591d5ab33 195 static rpc_class c = {"PwmOut", funcs, NULL};
be_bryan 0:b74591d5ab33 196 return &c;
be_bryan 0:b74591d5ab33 197 }
be_bryan 0:b74591d5ab33 198 private:
be_bryan 0:b74591d5ab33 199 PwmOut o;
be_bryan 0:b74591d5ab33 200 };
be_bryan 0:b74591d5ab33 201 #endif
be_bryan 0:b74591d5ab33 202
be_bryan 0:b74591d5ab33 203 #if DEVICE_SPI
be_bryan 0:b74591d5ab33 204 class RpcSPI : public RPC {
be_bryan 0:b74591d5ab33 205 public:
be_bryan 0:b74591d5ab33 206 RpcSPI(PinName a0, PinName a1, PinName a2, const char *name=NULL) : RPC(name), o(a0, a1, a2) {}
be_bryan 0:b74591d5ab33 207
be_bryan 0:b74591d5ab33 208 void format(int a0, int a1) {o.format(a0, a1);}
be_bryan 0:b74591d5ab33 209 void frequency(int a0) {o.frequency(a0);}
be_bryan 0:b74591d5ab33 210 int write(int a0) {return o.write(a0);}
be_bryan 0:b74591d5ab33 211
be_bryan 0:b74591d5ab33 212 virtual const struct rpc_method *get_rpc_methods() {
be_bryan 0:b74591d5ab33 213 static const rpc_method rpc_methods[] = {
be_bryan 0:b74591d5ab33 214 {"format", rpc_method_caller<RpcSPI, int, int, &RpcSPI::format>},
be_bryan 0:b74591d5ab33 215 {"frequency", rpc_method_caller<RpcSPI, int, &RpcSPI::frequency>},
be_bryan 0:b74591d5ab33 216 {"write", rpc_method_caller<int, RpcSPI, int, &RpcSPI::write>},
be_bryan 0:b74591d5ab33 217 RPC_METHOD_SUPER(RPC)
be_bryan 0:b74591d5ab33 218 };
be_bryan 0:b74591d5ab33 219 return rpc_methods;
be_bryan 0:b74591d5ab33 220 }
be_bryan 0:b74591d5ab33 221 static struct rpc_class *get_rpc_class() {
be_bryan 0:b74591d5ab33 222 static const rpc_function funcs[] = {
be_bryan 0:b74591d5ab33 223 {"new", rpc_function_caller<const char*, PinName, PinName, PinName, const char*, &RPC::construct<RpcSPI, PinName, PinName, PinName, const char*> >},
be_bryan 0:b74591d5ab33 224 RPC_METHOD_END
be_bryan 0:b74591d5ab33 225 };
be_bryan 0:b74591d5ab33 226 static rpc_class c = {"SPI", funcs, NULL};
be_bryan 0:b74591d5ab33 227 return &c;
be_bryan 0:b74591d5ab33 228 }
be_bryan 0:b74591d5ab33 229 private:
be_bryan 0:b74591d5ab33 230 SPI o;
be_bryan 0:b74591d5ab33 231 };
be_bryan 0:b74591d5ab33 232 #endif
be_bryan 0:b74591d5ab33 233
be_bryan 0:b74591d5ab33 234 #if DEVICE_SERIAL
be_bryan 0:b74591d5ab33 235 class RpcSerial : public RPC {
be_bryan 0:b74591d5ab33 236 public:
be_bryan 0:b74591d5ab33 237 RpcSerial(PinName a0, PinName a1, const char *name=NULL) : RPC(name), o(a0, a1) {}
be_bryan 0:b74591d5ab33 238
be_bryan 0:b74591d5ab33 239 void baud(int a0) {o.baud(a0);}
be_bryan 0:b74591d5ab33 240 int readable(void) {return o.readable();}
be_bryan 0:b74591d5ab33 241 int writeable(void) {return o.writeable();}
be_bryan 0:b74591d5ab33 242 int putc(int a0) {return o.putc(a0);}
be_bryan 0:b74591d5ab33 243 int getc(void) {return o.getc();}
be_bryan 0:b74591d5ab33 244 int puts(const char * a0) {return o.puts(a0);}
be_bryan 0:b74591d5ab33 245
be_bryan 0:b74591d5ab33 246 virtual const struct rpc_method *get_rpc_methods() {
be_bryan 0:b74591d5ab33 247 static const rpc_method rpc_methods[] = {
be_bryan 0:b74591d5ab33 248 {"baud", rpc_method_caller<RpcSerial, int, &RpcSerial::baud>},
be_bryan 0:b74591d5ab33 249 {"readable", rpc_method_caller<int, RpcSerial, &RpcSerial::readable>},
be_bryan 0:b74591d5ab33 250 {"writeable", rpc_method_caller<int, RpcSerial, &RpcSerial::writeable>},
be_bryan 0:b74591d5ab33 251 {"putc", rpc_method_caller<int, RpcSerial, int, &RpcSerial::putc>},
be_bryan 0:b74591d5ab33 252 {"getc", rpc_method_caller<int, RpcSerial, &RpcSerial::getc>},
be_bryan 0:b74591d5ab33 253 {"puts", rpc_method_caller<int, RpcSerial, const char *, &RpcSerial::puts>},
be_bryan 0:b74591d5ab33 254 RPC_METHOD_SUPER(RPC)
be_bryan 0:b74591d5ab33 255 };
be_bryan 0:b74591d5ab33 256 return rpc_methods;
be_bryan 0:b74591d5ab33 257 }
be_bryan 0:b74591d5ab33 258 static struct rpc_class *get_rpc_class() {
be_bryan 0:b74591d5ab33 259 static const rpc_function funcs[] = {
be_bryan 0:b74591d5ab33 260 {"new", rpc_function_caller<const char*, PinName, PinName, const char*, &RPC::construct<RpcSerial, PinName, PinName, const char*> >},
be_bryan 0:b74591d5ab33 261 RPC_METHOD_END
be_bryan 0:b74591d5ab33 262 };
be_bryan 0:b74591d5ab33 263 static rpc_class c = {"Serial", funcs, NULL};
be_bryan 0:b74591d5ab33 264 return &c;
be_bryan 0:b74591d5ab33 265 }
be_bryan 0:b74591d5ab33 266 private:
be_bryan 0:b74591d5ab33 267 Serial o;
be_bryan 0:b74591d5ab33 268 };
be_bryan 0:b74591d5ab33 269 #endif
be_bryan 0:b74591d5ab33 270
be_bryan 0:b74591d5ab33 271 class RpcTimer : public RPC {
be_bryan 0:b74591d5ab33 272 public:
be_bryan 0:b74591d5ab33 273 RpcTimer(const char *name=NULL) : RPC(name), o() {}
be_bryan 0:b74591d5ab33 274
be_bryan 0:b74591d5ab33 275 void start(void) {o.start();}
be_bryan 0:b74591d5ab33 276 void stop(void) {o.stop();}
be_bryan 0:b74591d5ab33 277 void reset(void) {o.reset();}
be_bryan 0:b74591d5ab33 278 float read(void) {return o.read();}
be_bryan 0:b74591d5ab33 279 int read_ms(void) {return o.read_ms();}
be_bryan 0:b74591d5ab33 280 int read_us(void) {return o.read_us();}
be_bryan 0:b74591d5ab33 281
be_bryan 0:b74591d5ab33 282 virtual const struct rpc_method *get_rpc_methods() {
be_bryan 0:b74591d5ab33 283 static const rpc_method rpc_methods[] = {
be_bryan 0:b74591d5ab33 284 {"start", rpc_method_caller<RpcTimer, &RpcTimer::start>},
be_bryan 0:b74591d5ab33 285 {"stop", rpc_method_caller<RpcTimer, &RpcTimer::stop>},
be_bryan 0:b74591d5ab33 286 {"reset", rpc_method_caller<RpcTimer, &RpcTimer::reset>},
be_bryan 0:b74591d5ab33 287 {"read", rpc_method_caller<float, RpcTimer, &RpcTimer::read>},
be_bryan 0:b74591d5ab33 288 {"read_ms", rpc_method_caller<int, RpcTimer, &RpcTimer::read_ms>},
be_bryan 0:b74591d5ab33 289 {"read_us", rpc_method_caller<int, RpcTimer, &RpcTimer::read_us>},
be_bryan 0:b74591d5ab33 290 RPC_METHOD_SUPER(RPC)
be_bryan 0:b74591d5ab33 291 };
be_bryan 0:b74591d5ab33 292 return rpc_methods;
be_bryan 0:b74591d5ab33 293 }
be_bryan 0:b74591d5ab33 294 static struct rpc_class *get_rpc_class() {
be_bryan 0:b74591d5ab33 295 static const rpc_function funcs[] = {
be_bryan 0:b74591d5ab33 296 {"new", rpc_function_caller<const char*, const char*, &RPC::construct<RpcTimer, const char*> >},
be_bryan 0:b74591d5ab33 297 RPC_METHOD_END
be_bryan 0:b74591d5ab33 298 };
be_bryan 0:b74591d5ab33 299 static rpc_class c = {"Timer", funcs, NULL};
be_bryan 0:b74591d5ab33 300 return &c;
be_bryan 0:b74591d5ab33 301 }
be_bryan 0:b74591d5ab33 302 private:
be_bryan 0:b74591d5ab33 303 Timer o;
be_bryan 0:b74591d5ab33 304 };
be_bryan 0:b74591d5ab33 305
be_bryan 0:b74591d5ab33 306 }
be_bryan 0:b74591d5ab33 307
be_bryan 0:b74591d5ab33 308 #endif