This week only. Pastebin PRO Accounts Christmas Special! Don't miss out!Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Jan 4th, 2013  |  syntax: None  |  size: 1.84 KB  |  views: 17  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. def threadSocket(Socket, port):
  2.     '''
  3.     Thread encargado de sotener comunicacion entre Socket cliente y
  4.     el puerto serial asignado
  5.     Mientras se mantenga activo el thread de recepcion se intentara leer del
  6.     puerto serial y enviarlo al socket cliente
  7.     Se asume que socket y port son objetos vaidos validos
  8.     '''
  9.     #Intenta abrir el puerto serial
  10.     try:
  11.         COM = serial.Serial(port-1)
  12.     except:
  13.         #Si esta en uso no se encuentra disponible, muestra error
  14.         print 'Error: Puerto COM'+str(port)+' no disponible'
  15.     else:
  16.         #Al conectarse se crea el thread de recepcion
  17.         print 'Conectado a puerto COM'+str(port)
  18.         rxThread = threading.Thread(target=rxThreadDef,args=(Socket,COM))
  19.         rxThread.start()
  20.         dato = ''
  21.         #Mientras el thread este activo
  22.         while rxThread.isAlive():
  23.             try:
  24.                 #Lee del puerto serial y envia a Socket cliente
  25.                 dato += COM.read()
  26.                 if parserCOMToSocket(dato):
  27.                     Socket.send(dato)
  28.                     dato=''
  29.             except:
  30.                 break
  31.         print "Puerto cerrado!"
  32.         #Cierra puerto Serial
  33.         COM.close()
  34.     #Cierra Socket
  35.     Socket.close()
  36.     #print "Hilo terminado"
  37. def rxThreadDef(Socket,COM):
  38.     '''
  39.     Thread (Hilo) encargado de recibir la informacion del Cliente
  40.     y enviarla por medio del puerto serial
  41.     Si se genera algun error se rompe el ciclo y termina el thread
  42.     '''
  43.     dato = ''
  44.     while 1:
  45.         try:
  46.             d = Socket.recv(1024)
  47.         except:
  48.             break
  49.         if d:
  50.             dato += d
  51.             if parserSocketToCOM(dato):
  52.                 COM.write(dato)
  53.                 print dato
  54.                 dato = ''
  55.         else:
  56.             break
  57.  
  58. def parserSocketToCOM(dato):
  59.     return True
  60.  
  61. def parserCOMToSocket(dato):
  62.     return True
clone this paste RAW Paste Data