Table of Contents

Scripts RCP

Sommaire Le serveur Rocrail


La seule chose nouvelle à propos des scripts est le fait que c'st maintenant documenté; Les scripts Rocrail sont disponibles depuis le début du projet.


Comment

Seulement quelques pas sont nécessaire pour exécuter un script défini par l'utilisateur. Les pages suivantes fournissent l'information nécessaire:

Il est également possible d'activer le script manuellement, à partir de la ligne de commande, ou par une autre application.


Python

Exemple

Un exemple Python pour allumer l'alimentation générale:

#!/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 ):
  buffer = "<xmlh><xml size=\"%d\" name=\"%s\"/></xmlh>%s" %(len(xmlMsg), xmlType, xmlMsg)
  s.send(buffer.encode())
 
# 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()

copiez et collez juste cet exemple Python dans un éditeur de texte et sauvegardez le dans un fichier avec l'extension ".py".
(Linux: Ajouter le bit d'exécution avec "chmod +x myscript.py".)

Trace du serveur

Les erreurs de la connexion fermé sont normales et peuvent être ignorées.

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.