3.4 Remote Control Interface
The remote control interface allows other programs to control the PICSimLab simulation through a TCP/IP socket using text formatted commands.
The PICSimLab remote control interface supports TCP connections using telnet or nc (netcat).
The default port is 5000 and can be changed in configuration windows.
The ’rlwrap’ command can be used for best command edition support in telnet or nc:
The supported commands can be shown using the “help” command:
help List of supported commands: dumpe [a] [s]- dump internal EEPROM memory dumpf [a] [s]- dump Flash memory dumpr [a] [s]- dump RAM memory exit - shutdown PICSimLab get ob - get object value help - show this message info - show actual setup info and objects loadhex file - load hex file (use full path) pins - show pins directions and values pinsl - show pins formated info quit - exit remote control interface reset - reset the board set ob vl - set object with value sim [cmd] - show simulation status or execute cmd start/stop sync - wait to syncronize with timer event version - show PICSimLab version Ok
The “info” command show all available "objects" and values:
info Board: Arduino Uno Processor: atmega328p Frequency: 16000000 Hz Use Spare: 1 board.out[00] LD_L= 254 part[00]: LEDs part[00].out[08] LD_1= 254 part[00].out[09] LD_2= 30 part[00].out[10] LD_3= 254 part[00].out[11] LD_4= 254 part[00].out[12] LD_5 254 part[00].out[13] LD_6= 254 part[00].out[14] LD_7= 254 part[01]: Buzzer part[01].out[02] LD_1= 140 part[02]: Push buttons part[02].in[00] PB_1= 1 part[02].in[01] PB_2= 0 part[02].in[02] PB_3= 1 part[02].in[03] PB_4= 1 part[02].in[04] PB_5= 1 part[02].in[05] PB_6= 1 part[02].in[06] PB_7= 1 part[02].in[07] PB_8= 1 Ok
The “pins” command show all pins directions and digital values:
pins pin[01] ( PC6/RST) < 0 pin[15] ( PB1/~9) > 0 pin[02] ( PD0/0) < 1 pin[16] ( PB2/~10) > 0 pin[03] ( PD1/1) < 1 pin[17] ( PB3/~11) > 0 pin[04] ( PD2/2) < 1 pin[18] ( PB4/12) < 0 pin[05] ( PD3/~3) > 0 pin[19] ( PB5/13) > 0 pin[06] ( PD4/4) < 1 pin[20] ( +5V) < 1 pin[07] ( +5V) < 1 pin[21] ( AREF) < 0 pin[08] ( GND) < 0 pin[22] ( GND) < 0 pin[09] ( PB6/X1) < 0 pin[23] ( PC0/A0) < 0 pin[10] ( PB7/X2) < 0 pin[24] ( PC1/A1) < 0 pin[11] ( PD5/~5) < 1 pin[25] ( PC2/A2) < 0 pin[12] ( PD6/~6) < 1 pin[26] ( PC3/A3) < 0 pin[13] ( PD7/7) < 1 pin[27] ( PC4/A4) > 0 pin[14] ( PB0/8) > 0 pin[28] ( PC5/A5) > 0 Ok
The “pinsl” command show all pins info in text formatted output:
pinsl 28 pins [atmega328p]: pin[01] D I 0 000 0.000 "PC6/RST " pin[02] D I 1 200 0.000 "PD0/0 " pin[03] D I 1 200 0.000 "PD1/1 " pin[04] D I 1 200 0.000 "PD2/2 " pin[05] D O 0 007 0.000 "PD3/~3 " pin[06] D I 1 200 0.000 "PD4/4 " pin[07] P I 1 200 0.000 "+5V " pin[08] P I 0 000 0.000 "GND " pin[09] D I 0 000 0.000 "PB6/X1 " pin[10] D I 0 000 0.000 "PB7/X2 " pin[11] D I 1 200 0.000 "PD5/~5 " pin[12] D I 1 200 0.000 "PD6/~6 " pin[13] D I 1 200 0.000 "PD7/7 " pin[14] D O 0 000 0.000 "PB0/8 " pin[15] D O 0 000 0.000 "PB1/~9 " pin[16] D O 0 000 0.000 "PB2/~10 " pin[17] D O 0 006 0.000 "PB3/~11 " pin[18] D I 0 000 0.000 "PB4/12 " pin[19] D O 0 000 0.000 "PB5/13 " pin[20] P I 1 200 0.000 "+5V " pin[21] R I 0 000 0.000 "AREF " pin[22] P I 0 000 0.000 "GND " pin[23] A I 0 000 0.875 "PC0/A0 " pin[24] A I 0 000 1.925 "PC1/A1 " pin[25] A I 0 000 2.700 "PC2/A2 " pin[26] A I 0 000 4.275 "PC3/A3 " pin[27] D O 1 179 0.000 "PC4/A4 " pin[28] D O 1 186 0.000 "PC5/A5 " Ok
You can view one input/output state using the “get” command:
Its possible use the “get” command to view individual pins state:
#digital state get pin[19] pin[19]= 0 Ok #digital mean value (0-200) get pinm[19] pin[18]= 100 Ok #analog state get apin[25] apin[25]= 2.700 Ok #all info get pinl[13] pin[13] D I 1 200 0.000 "PD7/7 " Ok
And set value of one input using the “set” command:
Or set value of one pin using the “set” command:
For windows users putty telnet client is a good option to access the remote control interface.