import serial
import time
# Set up the serial connection to the Arduino (adjust the port as needed)
ser = serial.Serial('/dev/tty.usbmodem101', 1000000) # Use your specific port (e.g., /dev/ttyUSB0 or COM3)
time.sleep(2) # Wait for the connection to establish
# Count the total number of lines in the file to calculate percentage later
file_path = 'scan_bitstream.csv'
# Open the file that contains the GPIO patterns
with open(file_path, 'r') as file:
binary_chunks = []
for i, line in enumerate(file, start=1): # Use enumerate to track line number
binary_str = line.strip()
binary_chunks.append(binary_str)
if len(binary_chunks) == 4:
# Combine the four 4-bit binary strings into one 16-bit binary string
combined_binary = ''.join(binary_chunks)
# print(combined_binary)/
# Convert the 16-bit binary string to an integer
combined_int = int(combined_binary, 2)
# Send the 16-bit integer as two bytes over serial
ser.write(combined_int.to_bytes(2, byteorder='big'))
# print(combined_int.to_bytes(2, byteorder='big'))
# print(f"Binary to send: {combined_binary} (Hex: {hex(combined_int)})")
# print(i)
# time.sleep(0.01)
binary_chunks.clear()
# Optionally adjust the timing between transmissions
time.sleep(4e-6) # Small delay (adjust as needed)
# Close the serial connection once done
ser.close()