RPC over USB serial testing step by step

Dependencies:   mbed-rpc mbed

RPC over usbserial testing with python step by step ( tested on KL25Z on 29 Aug 2013).

1. Get start - mBed firmware installation.

mBed firmware.

http://mbed.org/media/uploads/samux/mbed_if_v2.0_frdm_kl25z.s19

2. Install RPC_USBSerial into KL25Z.

  • Register into mbed.org;
  • Select platform KL25Z in compiler;
  • Import program, Compile, download RPC_USBSerial.bin to PC;
  • Save RPC_USBSerial_KL25Z.bin to MBED drive;

3. Install mbed usbserial driver to PC.

  • Serial Communication with a PC;

http://mbed.org/handbook/SerialPC;

  • Windows serial configuration.

http://mbed.org/handbook/Windows-serial-configuration

Find COM Port name at:

  • Control Panel
  • > Syetem
  • > Hardware
  • > Device Manager
  • > Ports(COM & LPT)
  • > Mbed Virtual Serial Port(COM?) (My one is "COM11" in picture below)

/media/uploads/jooter/mbed_virtual_serial_port.png

4. Install Python and Pyserial

5. Have fun.

  • Modify Port number in serial_raw_rpc_test.py.txt
  • Copy/Paste from serial_raw_rpc_test.py.txt to python (command line);
  • Copy and run one line at a time to have real fun;

:)

Committer:
jooter
Date:
Thu Aug 29 00:09:41 2013 +0000
Revision:
0:b8cfe8c7e985
RPC over USB serial  testing step by step

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jooter 0:b8cfe8c7e985 1 #include "mbed.h"
jooter 0:b8cfe8c7e985 2 #include "USBSerial.h"
jooter 0:b8cfe8c7e985 3 #include "mbed_rpc.h"
jooter 0:b8cfe8c7e985 4
jooter 0:b8cfe8c7e985 5 USBSerial pc;
jooter 0:b8cfe8c7e985 6
jooter 0:b8cfe8c7e985 7 int main() {
jooter 0:b8cfe8c7e985 8 // setup the classes that can be created dynamically
jooter 0:b8cfe8c7e985 9 /*
jooter 0:b8cfe8c7e985 10 RPC::add_rpc_class<RpcAnalogIn>();
jooter 0:b8cfe8c7e985 11 RPC::add_rpc_class<RpcAnalogOut>();
jooter 0:b8cfe8c7e985 12 */
jooter 0:b8cfe8c7e985 13 RPC::add_rpc_class<RpcDigitalIn>();
jooter 0:b8cfe8c7e985 14 RPC::add_rpc_class<RpcDigitalOut>();
jooter 0:b8cfe8c7e985 15 RPC::add_rpc_class<RpcDigitalInOut>();
jooter 0:b8cfe8c7e985 16 RPC::add_rpc_class<RpcPwmOut>();
jooter 0:b8cfe8c7e985 17
jooter 0:b8cfe8c7e985 18 RPC::add_rpc_class<RpcTimer>();
jooter 0:b8cfe8c7e985 19 RPC::add_rpc_class<RpcSPI>();
jooter 0:b8cfe8c7e985 20
jooter 0:b8cfe8c7e985 21 // RPC::add_rpc_class<RpcBusOut>();
jooter 0:b8cfe8c7e985 22 // RPC::add_rpc_class<RpcBusIn>();
jooter 0:b8cfe8c7e985 23 // RPC::add_rpc_class<RpcBusInOut>();
jooter 0:b8cfe8c7e985 24 RPC::add_rpc_class<RpcSerial>();
jooter 0:b8cfe8c7e985 25 // receive commands, and send back the responses
jooter 0:b8cfe8c7e985 26 char buf[256], outbuf[256];
jooter 0:b8cfe8c7e985 27 while(1) {
jooter 0:b8cfe8c7e985 28 pc.gets(buf, 256);
jooter 0:b8cfe8c7e985 29 RPC::call(buf, outbuf);
jooter 0:b8cfe8c7e985 30 pc.printf("%s\n", outbuf);
jooter 0:b8cfe8c7e985 31 }
jooter 0:b8cfe8c7e985 32 }