Я написал этот короткий сценарий (который я удалил некоторые мелкие детали для размера), и я получаю очень простую ошибку, но я не понимаю, почему! Я очень плохо знаком с Python, так что, может быть, кто-то может объяснить проблему и почему она не работает?
Ошибка, кажется, падает, когда я хочу напечатать полную консольную строку последовательной записи обратно на консоль, она, похоже, не распознает аргументы, которые я послал функции.
Возможно, я неправильно понял что-то очень простое. Должно быть простым для всех, даже с крошечным пониманием Python
Приветствия
Код:
#! /usr/bin/env python
# IMPORTS APPEAR HERE ***
ser = serial.Serial(
port='/dev/ttyUSB0',
baudrate=115200,
parity='N',
stopbits=1,
bytesize=8
)
# Sets motor number
motor_no = "2"
# Lets create our main GUI class
class ArialApp(object):
# Default init stuff
def __init__(self):
# Create a builder object and create the objects from the .glade file
self.builder = gtk.Builder()
self.builder.add_from_file("../res/main.glade")
self.builder.connect_signals(self)
# Open the serial connection to the encoder and keep it open
ser.open()
# Custom function for sending commands down the serial. Needed to wrap defaults
# arround the custom 'serial.write' command.
self.send_command('A')
# Code removed for space.....
# Custom method for sending commands down serial with default ammendments
def send_command(self, nanotech):
# Send the command with the #, then motor number which should be global, then the command
# sent the the method followed by a return
ser.write("#" + motor_no + nanotech + '\r\n')
# Print to the console the full command sent down the pipe
# [[[ ERROR GOES HERE ]]]
print "#" + motor_no + nanotech + '\r\n'
# Just to show its in here...
if __name__ == "__main__":
app = ArialApp()
gtk.main()
Ошибка:
File "main.py", line 62, in ArialApp
print "#" + motor_no + commands + '\r\n'
NameError: name 'commands' is not defined
И, наконец, просто рассмотрим ситуацию:
Я пишу небольшое приложение с графическим интерфейсом на Glade и Python / PyGTK для управления шаговым двигателем через последовательный порт с помощью модуля PySerial. Тем не менее, я хотел бы упаковать свою собственную функцию «записи», чтобы я мог добавить значения по умолчанию к «отправить» по кабелю. Например, номер двигателя и всегда добавление возвращаются в конце инструкции. Другие вещи, такие как немедленное считывание ответа в одной и той же функции, также могут быть полезны для оценки ответов, поэтому включение их в пользовательскую функцию представляется разумным.
Буду признателен за любой совет или помощь по вышеуказанному.
Спасибо, любезно.
Andy
ОБНОВЛЕНИЕ: У меня есть проблема с оригинальным включением «я», и мне удалось заставить Стек принимать вкладки, которые я обычно использую, чтобы его было удобнее смотреть. Также хотел отметить, что единственный код, который я удалил, был простой установкой переменной. Однако проблема не устранена!