Advertisement
Guest User

Untitled

a guest
Nov 16th, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. import socket
  2. from time import sleep
  3. import traceback
  4. import serial
  5. import argparse
  6.  
  7. USB_DEVICE = '/dev/cu.usbmodem3580231'
  8. PACKET_SIZE = 256
  9.  
  10. parser = argparse.ArgumentParser(description='Connect')
  11. parser.add_argument("ip", help="other device ip")
  12. parser.add_argument("port", help="Port to listen and write on other device")
  13. parser.add_argument("device", help="provide device name from /dev/")
  14. parser.add_argument('-c', dest='caller', action='store_true',
  15. help='if true this script is "calling"')
  16.  
  17.  
  18. def wait_for_connection(port):
  19. in_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  20. in_sock.bind(('0.0.0.0', int(port)))
  21. in_sock.listen(1)
  22. return in_sock.accept()[0]
  23.  
  24.  
  25. def connect(ip, port):
  26. while True:
  27. try:
  28. out = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  29. out.connect((ip, int(port)))
  30. print("Connected")
  31. return out
  32. except:
  33. traceback.print_exc()
  34. print("Cannot establish connection to", ip, port)
  35. sleep(1)
  36.  
  37.  
  38. if __name__ == "__main__":
  39. args = parser.parse_args()
  40. caller = args.caller
  41. USB_DEVICE = args.device
  42. if not caller:
  43. socket = wait_for_connection(args.port)
  44. else:
  45. socket = connect(args.ip, args.port)
  46.  
  47. ser = serial.Serial(USB_DEVICE)
  48.  
  49. while True:
  50. if caller:
  51. socket.send(ser.read(PACKET_SIZE))
  52. value = socket.recv(PACKET_SIZE)
  53. print(value)
  54. ser.write(value)
  55. else:
  56. socket.send(socket.recv(PACKET_SIZE))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement