Guest User

Untitled

a guest
Jan 4th, 2013
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  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
Add Comment
Please, Sign In to add comment