Я пытаюсь прочитать некоторые значения в текстовом файле, который я назвал status.txt, и затем ввести эти значения в функцию. Поскольку функция принимает только байты, мне нужно преобразовать ее в байты, но я получаю ненужные. Вот часть кода, на которую я ссылаюсь:
import time
import datetime
import serial
import os
# public variables
sensors = [] # list of sensor readings
wait = True
sensor_count = 10 # the zero based count of sensors
def pwr_solenoid(solenoid0=solenoid[0], solenoid1=solenoid[1], solenoid2=solenoid[2], solenoid3=solenoid[3]):
# Defaults are for low signal values
# compile output
output = '9{solenoid0}{solenoid1}{solenoid2}{solenoid3}'.encode()
with serial.Serial('/dev/ttyACM0', baudrate=9600) as ser:
print("created connection to '/dev/ttyACM0'\n")
print("going to send:\t'{}'".format(output))
ser.write(output)
ser.reset_output_buffer()
# for testing to console
print("Value sent to the uC:\t'{}'".format(output.decode()))
# ***** READ from UART *****
и вот код из основной функции
def main():
os.system("clear")
# create the list of sensors (hardwired to 10 at the moment)
# make sure that the list of sensor values is clear
sensors.clear()
for i in range(0, sensor_count):
sensors.append(SensorReading(sensorID=i, humidity=0))
print("Enter solenoid values in form of 1/0 (1 == HIGH, 0 == LOW) or 'exit' to exit\n")
print('\n')
print("default value will remain '0000' until altered...\n")
print("Note, after altered values are input, it will wait for input from UART||USB\n")
print('\n')
solenoid = '0000'
solenoid_raw = open("status.txt")
solenoid = str(solenoid_raw)
pwr_solenoid(solenoid0=solenoid[0], solenoid1=solenoid[1], solenoid2=solenoid[2], solenoid3=solenoid[3])
Я пытаюсь прочитать числа из текстового файла. Я предполагаю, что это будет строка, передать ее функции pwr_solenoid, затем она должна добавить это значение к 9, превратить его в байты и записать через последовательный порт, но это не правильно пишет, любая помощь будет оценена.
Нил.