def sendCommand(f): print '--------- Datalogger Simulator -----------' while len(sensorReceiver) > 0: print 'Ingrese uno de los siguientes comandos:' for key,val in sorted(command.items()): print " "*5,key, ":", val commandInput = raw_input('>>') if command.has_key(commandInput): print 'Ingrese un sensor destinatario' for key,val in sorted(sensorReceiver.items()): print " "*5,key, ":", val sensorInput = raw_input('>>') if sensorReceiver.has_key(sensorInput): if commandInput == '1': frequency = 0 elif commandInput == '2': print 'Ingrese una valor de frecuencia' frequency = raw_input('>>') else: frequency = 0 comando = Command(sensorReceiver[sensorInput],'client03' , 5, 100, ' ',command[commandInput], frequency) com.send(comando) f.write(comando.getReceiver().center(15)+ comando.getCommand().center(10) +str(comando.getValue()).center(10) +'-'.center(10)+'-'.center(10)+ time.strftime("%H:%M:%S").center(10)+'\n') if commandInput == '3': del sensorReceiver[sensorInput]; else: print 'el sensor no existe\n' else: print 'comando erroneo\n' exit(0)
def sendData(sensor, condition, key): # Cada hilo que atiende a un sensor inicia un bucle mientras el sensor exista. # Cuando el sensor desaparece del diccionario, el hilo termina su ejecucion while sensorDict.has_key(key): # Se adquiere el lock sobre la variable Condition para garantizar # la exclusion mutua sobre la variable frecuencia de cada sensor condition.acquire() if (sensor.getSenseFlag() == True): condition.wait(sensor.getFrequency()) # Se prepara el dato y se lo envia dato = sensor.getData('client03', 5,100,' ') #datoAEnviar = str(dato.getData()) + ' ' + dato.getUnit() com.send(dato) # Si el comando recibido es un SENSE, espera por un nuevo comando que # despierte el hilo if (sensor.getFrequency() == 0): sensor.setSenseFlag(False) condition.wait() condition.release() exit (0)
def main(): endMain = False os.system('clear') print '----------- MODULO DE COMUNICACION -----------\n' print '\t\t1 - Enviar mensaje/archivo' print '\t\t2 - Enviar instancia de mensaje' print '\t\t3 - Leer un mensaje' print '\t\t4 - Llamar a un número' print '\t\t5 - Atender la llamada' print '\t\t6 - Colgar la llamada' print '\t\t7 - Conectar GPRS' print '\t\t8 - Desconectar GPRS' print '\t\tq - Salir' print '\t\to - DEBUG: Abrir Comunicador' print '\t\tc - DEBUG: Cerrar Comunicador\n' communicator.open() while not endMain: try: #termios.tcflush(sys.stdin, termios.TCIOFLUSH) # Limpiamos el stdin optionSelected = raw_input() # Opcion 1 - Enviar mensaje if optionSelected is '1': # Preguntamos si se desea ver una lista con los clientes registrados selectClient = askClients() if selectClient is None: print 'Abortado.' continue # Indicamos el cliente al cual se va a enviar el mensaje receiver = raw_input('Cliente a enviar: ') # Indicamos el mensaje que se desea enviar messageToSend = raw_input('Mensaje a enviar: ') # Preguntamos si hay alguna preferencia en relación a los medios de comunicación selectMedia = askMedia() if selectMedia is True: # El medio preferido está dado por 'media' media = raw_input('Medio de comunicación preferido: ') communicator.send(messageToSend, receiver, media) # <----- IMPORTANTE elif selectMedia is False: # El medio se elige automáticamente communicator.send(messageToSend, receiver) # <----- IMPORTANTE else: print 'Abortado.' continue # Opcion 2 - Enviar instancia de mensaje elif optionSelected is '2': # Establecemos el campo 'sender' sender = raw_input('Nombre del emisor: ') # Preguntamos si se desea ver una lista con los clientes registrados selectClient = askClients() if selectClient is None: print 'Abortado.' continue # Establecemos el campo 'receiver' receiver = raw_input('Cliente a enviar: ') # Establecemos el campo 'infoText' infoText = raw_input('Mensaje a enviar: ') # Creamos la instancia de mensaje infoMessage = messageClass.InfoMessage(sender, receiver, infoText) # Preguntamos si hay alguna preferencia en relación a los medios de comunicación selectMedia = askMedia() if selectMedia is True: # El medio preferido está dado por 'media' media = raw_input('Medio de comunicación preferido: ') communicator.send(infoMessage, media = media) # <----- IMPORTANTE elif selectMedia is False: # El medio se elige automáticamente communicator.send(infoMessage) # <----- IMPORTANTE else: print 'Abortado.' continue # Opcion 3 - Leer un mensaje elif optionSelected is '3': messageReceived = communicator.receive() if messageReceived is not None: if isinstance(messageReceived, messageClass.Message): print 'Instancia de mensaje recibida: ' + str(messageReceived) print '\tPrioridad: ' + str(messageReceived.priority) print '\tEmisor: ' + messageReceived.sender if isinstance(messageReceived, messageClass.InfoMessage): print '\tMensaje de texto: ' + str(messageReceived.infoText) else: print 'Mensaje recibido: %s' % messageReceived # Opcion 4 - Llamar a un número elif optionSelected is '4': # Indicamos el número al cual efectuar la llamada de voz telephoneNumber = raw_input('Número a llamar: ') communicator.sendVoiceCall(telephoneNumber) # Opcion 5 - Atender la llamada elif optionSelected is '5': communicator.answerVoiceCall() # Opcion 6 - Colgar la llamada elif optionSelected is '6': communicator.hangUpVoiceCall() # Opcion 7 - Conectar GPRS elif optionSelected is '7': communicator.connectGprs() # Opcion 8 - Desconectar GPRS elif optionSelected is '8': communicator.disconnectGprs() elif optionSelected is 'q': endMain = True elif optionSelected is 'o': communicator.open() elif optionSelected is 'c': communicator.close() # Opcion inválida else: print 'Opción inválida!' except KeyboardInterrupt: endMain = True communicator.close() print '\n---------------- UNC - Fcefyn ----------------' print '---------- Ingeniería en Computación ---------'
import multiprocessing import time import communicator import csv import os.path import platform communicator = communicator.Communicator("youcanchangethis") communicator.setdefaultreceiver("127.0.0.1",1234) message="Hello! ;)" OS={ "name" : platform.system(), "version" : platform.release() } Lang={ "name" : "Python", "version" : platform.python_version() } sendingImage=buffer(open("./logo image/python logo.png", "rb").read()) communicator.send({"msg":message,"os":OS["name"],"osversion":OS["version"],"lang":Lang["name"],"langversion":Lang["version"],"senderimg":sendingImage },"TestMessage") print ("Message was sent") raw_input()