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;
:)
Revision 0:b8cfe8c7e985, committed 2013-08-29
- Comitter:
- jooter
- Date:
- Thu Aug 29 00:09:41 2013 +0000
- Commit message:
- RPC over USB serial testing step by step
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/KL25Z_RPC_instruction.txt Thu Aug 29 00:09:41 2013 +0000 @@ -0,0 +1,36 @@ + +KL25Z RPC testing step by step + +Get start - mBed firmware installation +http://mbed.org/platforms/KL25Z/ + +mBed firmware +http://mbed.org/media/uploads/samux/mbed_if_v2.0_frdm_kl25z.s19 + + + +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.bin to MBED drive; + + +Serial Communication with a PC +http://mbed.org/handbook/SerialPC + + + +Windows serial configuration +http://mbed.org/handbook/Windows-serial-configuration + + +Find COM Port number, "COM?", at: +Control Panel > Syetem > Hardware > Device Manager > Ports(COM & LPT) > Mbed Virtual Serial Port(COM?) + + +install python 2.7 +install pyserial http://sourceforge.net/projects/pyserial/files/pyserial/2.5/pyserial-2.5.win32.exe/download + + +Copy/Paste from serial_raw_rpc_test.py.txt to python command line terminal \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/USBDevice.lib Thu Aug 29 00:09:41 2013 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/Sissors/code/USBDevice/#0e8e73ebaa40
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Aug 29 00:09:41 2013 +0000 @@ -0,0 +1,32 @@ +#include "mbed.h" +#include "USBSerial.h" +#include "mbed_rpc.h" + +USBSerial pc; + +int main() { + // setup the classes that can be created dynamically + /* + RPC::add_rpc_class<RpcAnalogIn>(); + RPC::add_rpc_class<RpcAnalogOut>(); +*/ + RPC::add_rpc_class<RpcDigitalIn>(); + RPC::add_rpc_class<RpcDigitalOut>(); + RPC::add_rpc_class<RpcDigitalInOut>(); + RPC::add_rpc_class<RpcPwmOut>(); + + RPC::add_rpc_class<RpcTimer>(); + RPC::add_rpc_class<RpcSPI>(); + + // RPC::add_rpc_class<RpcBusOut>(); + // RPC::add_rpc_class<RpcBusIn>(); + // RPC::add_rpc_class<RpcBusInOut>(); + RPC::add_rpc_class<RpcSerial>(); + // 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); + } +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-rpc.lib Thu Aug 29 00:09:41 2013 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed-rpc/#4490a0d9cb2a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Thu Aug 29 00:09:41 2013 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/9c8f0e3462fb \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/serial_raw_rpc_test.py.txt Thu Aug 29 00:09:41 2013 +0000 @@ -0,0 +1,25 @@ +# +# install python 2.7 +# install pyserial http://sourceforge.net/projects/pyserial/files/pyserial/2.5/pyserial-2.5.win32.exe/download + +import serial +import time +ser = serial.Serial(port='COM11', baudrate=9600, timeout=0) +def ser_command (v): + ser.write(v + '\n') + +ser_command('/PwmOut/new LED1 blue') # turn on +ser_command('/blue/write 1') # turn off +ser_command('/blue/write 0.98') # dimm +ser_command('/blue/read') +ser_command('/blue/read') +ser_command('/blue/read') +ser_command('/blue/read') +ser_command('/blue/read') +ser_command('/blue/read') + + +for i in range(100): + time.sleep(0.1) + ser.write('/blue/write '+ str(i/100.0) + '\n') + print(i/100.0)