Development mbed library for MAX32630FTHR

Dependents:   blinky_max32630fthr

Committer:
switches
Date:
Fri Dec 16 16:27:57 2016 +0000
Revision:
3:1198227e6421
Parent:
0:5c4d7b2438d3
Changed ADC scale for MAX32625 platforms to 1.2V full scale to match MAX32630 platforms

Who changed what in which revision?

UserRevisionLine numberNew contents of line
switches 0:5c4d7b2438d3 1 /* mbed Microcontroller Library
switches 0:5c4d7b2438d3 2 * Copyright (c) 2006-2013 ARM Limited
switches 0:5c4d7b2438d3 3 *
switches 0:5c4d7b2438d3 4 * Licensed under the Apache License, Version 2.0 (the "License");
switches 0:5c4d7b2438d3 5 * you may not use this file except in compliance with the License.
switches 0:5c4d7b2438d3 6 * You may obtain a copy of the License at
switches 0:5c4d7b2438d3 7 *
switches 0:5c4d7b2438d3 8 * http://www.apache.org/licenses/LICENSE-2.0
switches 0:5c4d7b2438d3 9 *
switches 0:5c4d7b2438d3 10 * Unless required by applicable law or agreed to in writing, software
switches 0:5c4d7b2438d3 11 * distributed under the License is distributed on an "AS IS" BASIS,
switches 0:5c4d7b2438d3 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
switches 0:5c4d7b2438d3 13 * See the License for the specific language governing permissions and
switches 0:5c4d7b2438d3 14 * limitations under the License.
switches 0:5c4d7b2438d3 15 */
switches 0:5c4d7b2438d3 16 #ifndef RPCVARIABLE_H_
switches 0:5c4d7b2438d3 17 #define RPCVARIABLE_H_
switches 0:5c4d7b2438d3 18
switches 0:5c4d7b2438d3 19 #include "rpc.h"
switches 0:5c4d7b2438d3 20
switches 0:5c4d7b2438d3 21 namespace mbed {
switches 0:5c4d7b2438d3 22
switches 0:5c4d7b2438d3 23 /**
switches 0:5c4d7b2438d3 24 *Class to read and set an attached variable using the RPC
switches 0:5c4d7b2438d3 25 *
switches 0:5c4d7b2438d3 26 */
switches 0:5c4d7b2438d3 27 template<class T>
switches 0:5c4d7b2438d3 28 class RPCVariable: public RPC {
switches 0:5c4d7b2438d3 29 public:
switches 0:5c4d7b2438d3 30 /**
switches 0:5c4d7b2438d3 31 * Constructor
switches 0:5c4d7b2438d3 32 *
switches 0:5c4d7b2438d3 33 *@param ptr Pointer to the variable to make accessible over RPC. Any type of
switches 0:5c4d7b2438d3 34 *variable can be connected
switches 0:5c4d7b2438d3 35 *@param name The name of that this object will be over RPC
switches 0:5c4d7b2438d3 36 */
switches 0:5c4d7b2438d3 37 template<class A>
switches 0:5c4d7b2438d3 38 RPCVariable(A * ptr, const char * name) : RPC(name) {
switches 0:5c4d7b2438d3 39 _ptr = ptr;
switches 0:5c4d7b2438d3 40 }
switches 0:5c4d7b2438d3 41 /**
switches 0:5c4d7b2438d3 42 *Read the variable over RPC.
switches 0:5c4d7b2438d3 43 *
switches 0:5c4d7b2438d3 44 *@return The value of the variable
switches 0:5c4d7b2438d3 45 */
switches 0:5c4d7b2438d3 46 T read() {
switches 0:5c4d7b2438d3 47 return (*_ptr);
switches 0:5c4d7b2438d3 48 }
switches 0:5c4d7b2438d3 49 /**
switches 0:5c4d7b2438d3 50 *Write a value to the variable over RPC
switches 0:5c4d7b2438d3 51 *
switches 0:5c4d7b2438d3 52 *@param The value to be written to the attached variable.
switches 0:5c4d7b2438d3 53 */
switches 0:5c4d7b2438d3 54 void write(T value) {
switches 0:5c4d7b2438d3 55 *_ptr = value;
switches 0:5c4d7b2438d3 56 }
switches 0:5c4d7b2438d3 57
switches 0:5c4d7b2438d3 58 virtual const struct rpc_method *get_rpc_methods();
switches 0:5c4d7b2438d3 59 static struct rpc_class *get_rpc_class();
switches 0:5c4d7b2438d3 60
switches 0:5c4d7b2438d3 61 private:
switches 0:5c4d7b2438d3 62 T * _ptr;
switches 0:5c4d7b2438d3 63 };
switches 0:5c4d7b2438d3 64
switches 0:5c4d7b2438d3 65 template<class T>
switches 0:5c4d7b2438d3 66 const rpc_method *RPCVariable<T>::get_rpc_methods() {
switches 0:5c4d7b2438d3 67 static const rpc_method rpc_methods[] = {
switches 0:5c4d7b2438d3 68 {"read" , rpc_method_caller<T, RPCVariable, &RPCVariable::read> },
switches 0:5c4d7b2438d3 69 {"write", rpc_method_caller<RPCVariable, T, &RPCVariable::write> },
switches 0:5c4d7b2438d3 70 RPC_METHOD_SUPER(RPC)
switches 0:5c4d7b2438d3 71 };
switches 0:5c4d7b2438d3 72 return rpc_methods;
switches 0:5c4d7b2438d3 73 }
switches 0:5c4d7b2438d3 74
switches 0:5c4d7b2438d3 75 template<class T>
switches 0:5c4d7b2438d3 76 rpc_class *RPCVariable<T>::get_rpc_class() {
switches 0:5c4d7b2438d3 77 static const rpc_function funcs[] = {
switches 0:5c4d7b2438d3 78 "new", rpc_function_caller<const char*, T, const char*, &RPC::construct<RPCVariable, T, const char*> > ,
switches 0:5c4d7b2438d3 79 RPC_METHOD_END
switches 0:5c4d7b2438d3 80 };
switches 0:5c4d7b2438d3 81 static rpc_class c = {"RPCVariable", funcs, NULL};
switches 0:5c4d7b2438d3 82 return &c;
switches 0:5c4d7b2438d3 83 }
switches 0:5c4d7b2438d3 84
switches 0:5c4d7b2438d3 85 }
switches 0:5c4d7b2438d3 86
switches 0:5c4d7b2438d3 87 #endif //RPCVARIABLE_H_