Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
10 years, 4 months ago.
AnalogIn not working in rpc???
hi, i am trying to interface python and mbed LPC11U24 using serial rpc. i have been successful in controlling digital pins so far. but the analog controll gives me the following error:
Error: Undefined symbol mbed::Reply::putData<unsigned short>(T1) (referred from main.cpp.LPC11U24.o).
my code is as follows:
controlling analog pins
#include "mbed.h" #include "mbed_rpc.h" Serial pc(USBTX, USBRX); int main() { // setup the classes that can be created dynamically RPC::add_rpc_class<RpcAnalogIn>(); RPC::add_rpc_class<RpcDigitalIn>(); RPC::add_rpc_class<RpcDigitalOut>(); RpcAnalogIn rpc_ain(p19, "ain"); RpcDigitalOut rpc_led(LED1, "led"); // receive commands, and send back the responses char buf[256], outbuf[256]; while(1) { pc.gets(buf, 256); RPC::call(buf, outbuf); pc.printf("%s\n", outbuf); } }
how to solve the error and why is it happening???
getting the above error because analogin also returns unsigned integer. in arguments.cpp file there is a reply class which is responsible for returning outputs through the putData template which doesnt have a definition to handle unsigned integer data type. solution is to add a putData template to handle it. its a plain copy paste as follows: (copy the following in arguments.cpp after the last putData template)
putData template for unsigned integer data type