This documentation is very helpful:
1. For developers that want to communicate with Virtuino library without Virtuino app
2. For developers that want to create their own code to communicate with Virtuino app
Virtuino app uses TCP sockets to read/write values a Virtuino server
Command format to read a value from the Virtuino library
!Vxx=?$ or !Vxxx=?$
! is the command start character
V is the type of memory.
V virtual pin (any value type)
Q digital pins (0 or 1)
O analog output
A analog input
T text
xx is the pin number (two or three digits) 00 - 255
= The character after the pin number
? ask for value
$ is the last command character
Virtuino command to read the value of the V memory V0 (without password)
!V00=?$
Response from library !V00=12.5$ (12.5 is the value of V0)
Virtuino command to read the Digital Pin 13 (without password)
!Q13=?$
Response from library !Q13=1$ (1 is the value of D0)
Virtuino command to read the Analog Pin A2 (without password)
!A02=?$
Response from library !A02=512$ (512 is the value of A2)
Virtuino command to read the Digital Pin 6 and A1 and V4 (without password)
!Q06=?$!A01=?$!V04=?$
Response !Q06=0$!A01=100$!V04=23.45$
Virtuino command to upload a value to the V memory V0 (without password)
!V00=45$
Response from library !V00=45$ (The same with the request command)
Virtuino command to change the state of digital pin 13 (without password)
!Q13=1$
Response from library !Q13=1$ (The same with the request command)
Virtuino command to change the value analog pin 6 (without password)
!O06=23$
Response from library: !O06=23$ (The same with the request command)
Virtuino command to read and write to virtuino library memory and board pins (without password)
!Q06=1$!A01=?$!V04=32$
Response from library: !Q06=1$!A01=128$!V04=32$
If the library password is 1234 the request has to start with the password
Example:
Request from virtuino: 1234!Q06=1$!A01=?$!V04=32$
Response from library: !Q06=1$!A01=128$!V04=32$