def parseMsg(self, message, networkhost): # Trame standard : [FROM] [INDEX] [commande] [argument] messageList = message.split(' ') serverForResponse = messageList[0] indexForResponse = messageList[1] commande = messageList[2] self.lg.log(clock_milliseconds(), "debug", "parseMsg message a parser " + message) if commande == "stop" : self.lg.log(clock_milliseconds(), "info", "Asked stop") os._exit(0) elif commande == "pid" : # On initialise l'objet piSrv = piServer() # On envoi la commande piSrv.sendToServer(serverForResponse, str(os.getpid()), networkhost) elif commande == "reloadXML" : piSrv.sendToServer(serverForResponse, str(os.getpid()), networkhost) elif commande == "getRepere" : self.lg.log(clock_milliseconds(), "debug", "parseMsg Asked getRepere : " + message) for index in range(3, len(messageList)) self.lg.log(clock_milliseconds(), "debug", "parseMsg Asked variable : " + messageList[index]) if messageList[index].find("sensor(") != -1 : # On demande la valeur d'un capteur msgSplitted = messageList[index].replace('(',' ').replace(')',' ').replace(',',' ').split() sensorIndex = msgSplitted[0] piSrv.sendToServer(serverForResponse, str(os.getpid()), networkhost) elif commande == "setRepere" : piSrv.sendToServer(serverForResponse, str(os.getpid()), networkhost) else: self.lg.log(clock_milliseconds(), "error", "Command" + commande + "non reconnue")
# On initialise la connexion avec le server de log lg = piLog() lg.openLog(piServer.serverLog, moduleLocalName, configXML.verbose) lg.log(clock_milliseconds(), "info", "starting " + moduleLocalName + " - PID : " + str(os.getpid())) lg.log(clock_milliseconds(), "info", "port " + moduleLocalName + " : ") #$::piServer::portNumber(${::moduleLocalName})" lg.log(clock_milliseconds(), "info", "confXML : ") #$confXML") # On affiche les infos dans le fichier de debug for element in [attr for attr in dir(configXML()) if not callable(attr) and not attr.startswith("__")]: lg.log(clock_milliseconds(), "info", element + " : " + getattr(configXML,element)) # Démarrage du serveur lg.log(clock_milliseconds(), "info", "starting serveur") piServ = piServer( moduleLocalName, configXML.verbose, "0.0.0.0", piServer.serverAcqSensorUSB) ssor = sensor.sensor(moduleLocalName, configXML.verbose, piServer.serverLog) readIsDone = 0 while True: # On écoute si un client veut se connecter piServ.listen() # Toute les 5 secondes on vient lire les différents capteurs time.sleep(0.01) epoch_time = int(time.time()) if epoch_time % 5 == 0: