Как прочитать значения из текстового файла, а затем передать их функции - PullRequest
0 голосов
/ 20 апреля 2019

Я пытаюсь прочитать некоторые значения в текстовом файле, который я назвал 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, превратить его в байты и записать через последовательный порт, но это не правильно пишет, любая помощь будет оценена. Нил.

...