Найти - Пользователи
Полная версия: serial_for_url('/dev/ttyUSB0',do_not_open=False)
Начало » Python для новичков » serial_for_url('/dev/ttyUSB0',do_not_open=False)
1 2 3 4 5 6
andrei186
На Винде код
  
from serial import *
serial_port = serial_for_url('COM1',do_not_open=False);
print(serial_port)
возвращает
 
Serial<id=0x11de1f0, open=True>(port='COM1', baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
А на Линуксе аналогичный
 
from serial import *
serial_port = serial_for_url('/dev/ttyUSB0',do_not_open=False);
print(serial_port)
Вообще ничего не возвращает, даже ошибку, хотя ttyUSB0 показывается в /dev

Почему?
ZerG
А чеговы вы решили что /dev/ttyUSB0 именно ваш порт?
Пробовали запустить скрипт от рута?
Пробовали зацепиться в линксе консолью на етот порт? что-то дает?
andrei186
ZerG
А чеговы вы решили что /dev/ttyUSB0 именно ваш порт?
когда я втыкаю в комп устройство, с которым должна работать программа, в /dev выскакивает ttyUSB0

ZerG
Пробовали зацепиться в линксе консолью на етот порт? что-то дает?
Не понимайт! Можно по-русски? Каким местом консоли цепляются за порты?
JOHN_16
ZerG
да с портом все в порядке, они именно так зовуться если подключать COM устройство через USB-com конвертор.
andrei186
а что если использовать обычный serial.Serial класс ?
ZerG
да с портом все в порядке, они именно так зовуться если подключать COM устройство через USB-com конвертор.
Вы будете ОЧЕНЬ сильно удивлены если вам прийдется плотно работать в данном направлении особенно с китайскими переходниками или же устройствами имеющими несколько режимов работы, взять к примеру тот же свисток 3Г И так далее….

Попробуйте # screen /dev/ttyUSB0 9600
или minicom
убедитесь для начала что вы действительно обращаетесь на нужный адресс и данные хоть какието передаются
JOHN_16
ZerG
не удивлюсь)) работал. знаю.
andrei186
Еще нужно правильно параметры выставлять, за все случаи не скажу, но если выставить, например, не верную скорость порта - то устройство может даже не подать признаков жизни…
andrei186
JOHN_16
andrei186а что если использовать обычный serial.Serial класс ?
Спасибо за намек, попробую. Однако прежде чем экспериментировать, хотел уточнить, что на другом РС, но с тем же Дебиан-8, программа работает. Значит на моем РС чего-то не хватает?
А вообще то, что
    from serial import *
serial_port = serial_for_url('/dev/ttyUSB0',do_not_open=False);
print(serial_port)
ничего не возвращает - это что значит? Что print(serial_port) вобще не выполнялся? Или выполнялся, но предыдущая функция
serial_port = serial_for_url('/dev/ttyUSB0',do_not_open=False)
вернула что-то такое, что print(serial_port) не смог переварить?
andrei186
JOHN_16
нужно правильно параметры выставлять, за все случаи не скажу, но если выставить, например, не верную скорость порта - то устройство может даже не подать признаков жизни…
Какие парамеры, как узнать нужные их значения и где их выставлять - можете дать ссылку, где про это почитать? Или хотябы помогите правильно сформулировать вопрос Гуглу?
JOHN_16
andrei186
Эти параметры должны быть указаны либо протоколом передачи данных, либо в паспорте/документации на устройство. Это все индивидуально. Например, GPS приемники работают на скорости 4800. Ряд устройств использует стандартное 9600. Я работаю с АЦП которое использует 19200.
andrei186
если ошибок ваш код не выдал, то тут сложно сказать что именно у вас происходит. Принт может ничего не выдать в случае пустой строки. Но все как то странно и не похоже на правду
andrei186
JOHN_16
если ошибок ваш код не выдал, то тут сложно сказать что именно у вас происходит. Принт может ничего не выдать в случае пустой строки. Но все как то странно и не похоже на правду
Значит у меня очевидное-невероятное.
Я изменил принт на
print(serial_port+“qwerty”)
Тогда если serial_for_url() вернул пустышку, то
print(serial_port+“qwerty”) должен вернуть хотябы “qwerty”. А он ичего не возвращает. Получается, что print() вообще не выполнялся. Значит serial_for_url() сотворил, что-то такое, что заблокировало выполнение print()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB