Scripts RCP
- Scripts RCP | Scripts SRCP
- Protocole Client Rocrail (RCP)
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:
- Les scripts peuvent être activés par les actions de type "Externes".
- Le protocole est le même pour tous les clients l'utilisant pour communiquer avec le serveur.
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.