User Tools

Site Tools


rocrail-server-scripting-it

Scripting RCP

Indice Server Rocrail


L'unica cosa nuova dello scripting è il fatto che ora è documentato; lo scripting Rocrail è sempre stato disponibile dall'inizio del progetto.


Come fare

Sono necessari solo pochi passi per eseguire uno script personale. Le pagine seguenti forniscono le informazioni necessarie:

  • Gli script possono essere attivati tramite azioni di tipo "Esterno (External)".
  • Il protocollo è lo stesso usato da tutti i client che comunicano con il server.

E' anche possibile attivare lo script manualmente dalla linea comando o tramite un'altre applicazione.


Python

Esempio

Un esempio in Phyton per dare alimentazione:

#!/usr/bin/python
# Rocrail XML script example: Power ON.
 
from socket import *
 
# Subroutine for adding the XML-Header and send it to the server
def sendMsg( s, xmlType, xmlMsg ):
  s.send("<xmlh><xml size=\"%d\" name=\"%s\"/></xmlh>%s" %(len(xmlMsg), xmlType, xmlMsg))
 
# Create the server connection
s = socket(AF_INET, SOCK_STREAM)
s.connect(('localhost', 8051))
 
# Compose the power on command and send it
rrMsg = "<sys cmd=\"go\"/>"
sendMsg( s, "sys", rrMsg )
 
# Close server connection
s.close()

Basta solo copiare e incollare l'esempio in un editor di testi e salvarlo in un file con estensione ".py".
(Linux: aggiungere il bit di esecuzione con "chmod +x myscript.py".)

Messaggi del server

Gli errori della chiusura della connessione sono normali e possono essere ignorati.

20110515.150347.205 r9999I cconmngr OClntCon 0354 client connect count: 18
20110515.150347.206 r9999I cmdrB730 OClntCon 0209 cmdReader started for:127.0.0.1.
20110515.150347.206 r9999I infwB730 OClntCon 0104 infoWriter started for:127.0.0.1.
20110515.150348.206 r9999c cmdrB730 OVirtual 0324 Power ON
20110515.150348.207 r9999I cmdrB730 OControl 0826 State event from=vcs-1
20110515.150348.207 r9999I cmdrB730 OModel   1704 informing 1 listeners of a system event...

(Ignore the errors:)
20110515.150348.209 r8030E infwB730 OSocket  0626 send() failed [32] [Broken pipe]
20110515.150348.209 r9999E infwB730 OSocket  0630 Connection broken!
20110515.150348.217 r9999E cmdrB730 OSocket  0685 Socket 0x00000000 error 88

20110515.150348.217 r9999I cmdrB730 OClntCon 0322 Server ended.
20110515.150348.220 r9999I infwB730 OClntCon 0172 InfoService ended.
rocrail-server-scripting-it.txt · Last modified: 2018/11/12 08:56 (external edit)