Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import serial
- import sys
- import random
- import time
- import binascii
- #Global variables
- seq = 0 #Sequence number
- packetSize = 18 #Number of random bytes to be sent with the packet
- delay = 0.5 #Time delay (in milliseconds) between sending of packets
- #COM port default settings
- baudRate = 19200
- dataBits = serial.EIGHTBITS
- parityBit = serial.PARITY_NONE
- stopBits = serial.STOPBITS_ONE
- #Command line arguments
- comPort = -1 #Must be set
- #Functions
- def ConstructPacket():
- global seq
- i = 0
- if seq > 255:
- sec = 0
- outgoingPacket = bytearray()
- outgoingPacket.append(seq)
- while (i < packetSize):
- outgoingPacket.extend(random.sample(xrange(255),1))
- i += 1
- seq += 1
- return outgoingPacket
- def SendPacket():
- serial.write(outgoingPacket)
- def ReceiveResponse():
- incomingPacket = bytearray()
- if serial.inWaiting() == packetSize+1:
- incomingPacket = serial.readlines()
- return incomingPacket
- #Command line argument handling
- for i in range(0, len(sys.argv)):
- if sys.argv[i] == '-com':
- comPort = int(sys.argv[i+1])
- elif sys.argv[i] == '-delay':
- delay = int(sys.argv[i+1])
- elif sys.argv[i] == '-packetsize':
- packetSize = int(sys.argv[i+1])
- if comPort < 0:
- raise Exception("COM port must be > 0")
- if delay < 0:
- raise Exception("Delay must be > 0")
- if packetSize < 0:
- raise Exception("Packet size must be > 0")
- #Open serial port
- tempPort = '\\.\COM' + str(comPort)
- serial = serial.Serial(port=tempPort, baudrate=baudRate, bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, timeout=None)
- while 1:
- serial.flushInput()
- startTime = time.time()
- time.sleep(delay)
- outgoingPacket = ConstructPacket()
- SendPacket()
- incomingPacket = ReceiveResponse()
- totalTime = time.time() - startTime
- if outgoingPacket != incomingPacket:
- print "Packet sent and packet received do not match. Script terminating."
- print "Sent: " + outgoingPacket
- print "Received: " + incomingPacket
- sys.exit(1)
- else:
- print "Packet turnaround time: " + str(totalTime)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement