Advertisement
Guest User

Untitled

a guest
Aug 20th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.03 KB | None | 0 0
  1. import serial
  2. import sys
  3. import random
  4. import time
  5. import binascii
  6.  
  7. #Global variables
  8. seq = 0         #Sequence number
  9. packetSize = 18     #Number of random bytes to be sent with the packet
  10. delay = 0.5 #Time delay (in milliseconds) between sending of packets
  11.  
  12. #COM port default settings
  13. baudRate = 19200
  14. dataBits = serial.EIGHTBITS
  15. parityBit = serial.PARITY_NONE
  16. stopBits = serial.STOPBITS_ONE
  17.  
  18. #Command line arguments
  19. comPort = -1    #Must be set
  20.  
  21. #Functions
  22. def ConstructPacket():
  23.     global seq
  24.     i = 0
  25.     if seq > 255:
  26.         sec = 0
  27.     outgoingPacket = bytearray()
  28.     outgoingPacket.append(seq)
  29.     while (i < packetSize):
  30.         outgoingPacket.extend(random.sample(xrange(255),1))
  31.         i += 1
  32.     seq += 1
  33.     return  outgoingPacket
  34.  
  35. def SendPacket():
  36.     serial.write(outgoingPacket)
  37.  
  38. def ReceiveResponse():
  39.     incomingPacket = bytearray()
  40.     if serial.inWaiting() == packetSize+1:
  41.         incomingPacket = serial.readlines()
  42.     return incomingPacket
  43.            
  44. #Command line argument handling
  45. for i in range(0, len(sys.argv)):
  46.     if sys.argv[i] == '-com':
  47.         comPort = int(sys.argv[i+1])
  48.     elif sys.argv[i] == '-delay':
  49.         delay = int(sys.argv[i+1])
  50.     elif sys.argv[i] == '-packetsize':
  51.         packetSize = int(sys.argv[i+1])
  52.        
  53. if comPort < 0:
  54.     raise Exception("COM port must be > 0")
  55. if delay < 0:
  56.     raise Exception("Delay must be > 0")
  57. if packetSize < 0:
  58.     raise Exception("Packet size must be > 0")
  59.  
  60. #Open serial port
  61. tempPort = '\\.\COM' + str(comPort)
  62. serial = serial.Serial(port=tempPort, baudrate=baudRate, bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, timeout=None)
  63.  
  64. while 1:
  65.     serial.flushInput()
  66.     startTime = time.time()
  67.     time.sleep(delay)
  68.     outgoingPacket = ConstructPacket()
  69.     SendPacket()
  70.     incomingPacket = ReceiveResponse()
  71.     totalTime = time.time() - startTime
  72.     if outgoingPacket != incomingPacket:
  73.         print "Packet sent and packet received do not match. Script terminating."
  74.         print "Sent: " + outgoingPacket
  75.         print "Received: " + incomingPacket
  76.         sys.exit(1)
  77.     else:
  78.         print "Packet turnaround time: " + str(totalTime)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement