RPC over USB serial testing step by step
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)
4. Install Python and Pyserial
- install python 2.7
- install pyserial http://sourceforge.net/projects/pyserial/files/pyserial/2.5/pyserial-2.5.win32.exe/download
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;
:)
main.cpp@0:b8cfe8c7e985, 2013-08-29 (annotated)
- 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?
User | Revision | Line number | New 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 | } |