Это не *просто* технология разработки программного обеспечения, но и встраиваемых систем, а также. Таким образом, проект имеет как программные, так и аппаратные соображения. Я не уверен, если это дубликат, как и другой вопрос крутится вокруг **идея**, где речь идет о заключенном проект ж/ существующего технического школьной газете. Практика является важным аспектом выполнения лифты, однако помощь может помочь заполнить в районах, где вы слабы. Есть варианты строк, которые поражают мышцы немного по-другому, поэтому все они имеют свое место. С помощью переключателя, вы правы, если кто-то приходит к вам-с выключателем, это не в той же комнате, так что есть шанс, что кто-то придет и листать его, потому что вы отключите энергию на что-то другое. (по крайней мере в моем старом доме-я не уверен насчет утилизации, но некоторые из розеток в кухне на той же цепи, две спальни).

Вы должны быть в состоянии обнаружить ошибки четности с правильными настройками termios, и даже пересчитать их, в зависимости от того какой драйвер обеспечивает. Функции ioctl TIOCGICOUNT (см. человек 4 tty_ioctl) можно получить погрешность счетчиков, хотя это не документировано в MAN-странице. Функции ioctl не предусмотрено Python, но следующий скрипт getcounts.py это через низкоуровневый вызов fcntl вызова, которые могут нуждаться в модификации для вашей системы. Он использует структуры, описанные в ядре серийный.ч включаемого файла. (Примечание, счетчики на реальные серийные устройства могут также рассматриваться в файле/proc/телетайп/драйвер/серийный, но не для USB-устройств).

#!/usr/Бен/вместо python2
# https://unix.stackexchange.com/a/525261/119298
импорт каталога sys флагов, массив
# ioctl для получения счетчиков. см. /usr/включать/Линукс/серийный.ч
# структура serial_icounter_struct{
# инт, карат, код, ГСЧ, ОКД, ГХ, ТХ, рамка, переполнения, четности, БРК
# buf_overrun, защищены[9]; }
деф getcounts(именем):
 TIOCGICOUNT = 0x545D
 ФД = открыть(имяфайла)
 ы = массив.массив('я',[0 Для я в диапазоне(20)])
 РЦ = вызов fcntl.функции ioctl(ФД.fileno(),TIOCGICOUNT,ы,правда)
 если RC!=0:
 печать "вертолет",радиоуправляемый
 имена = "ТТ,ДСР,ГСЧ,ОКД,ГХ,ТХ,рамка,переполнения,четности,БРК,буфо"
 ХТС,ДСР,ГСЧ,ОКД,ГХ,ТХ,рамка,переполнения,четности,БРК,буфо = с[:11]
 для меня,имя в перечислить(имена.сплит(",")):
 имя принт,с[я]
ФД.закрыть()

getcounts(Сыс.аргумент argv[1])

Например, 2 реальных последовательных портов подключен через кроссовер кабель следующими скрипт будет показывать 3 разных результатов, как мы меняем настройки определения четности. Начните с настройки обоих устройств с последовательным интерфейсом для того же, чтобы генерировать и определять четность (-ignpar с - за "не"). На попробуйте функцией выполняется 3 раза писать Привет На к ttys1, а затем использовать ключам , чтобы прочитать результат от ttyS0, и, в конце концов getcounts.py чтобы распечатать счетчики:

#!/бин/Баш
попробуйте()(
 команда xxd-Л 16 к /dev/ttyS0 &
 сон 1
 я в 1 2 3 ; делать Эхо привет; сделали >/Дев/к ttys1
 сон 1
 getcounts.пы файл /dev/ttyS0
)

действовать до его закрытия -Ф с /dev/ttyS0 9600 сырые -Эхо помощью clocal
действовать до его закрытия -Ф /Дев/к ttys1 9600 сырые -Эхо помощью clocal
действовать до его закрытия -Ф с /dev/ttyS0 parenb -ignpar inpck parodd
действовать до его закрытия -Ф /Дев/к ttys1 parenb -ignpar inpck parodd
попробовать # должно быть ОК
действовать до его закрытия -Ф с /dev/ttyS0 -parodd
попробовать # должны сделать ошибки четности, много нулевых данных
действовать до его закрытия -Ф с /dev/ttyS0 parmrk
попробовать # должны получить четности ошибок, много ФФ 00 префикс для каждого данных

Первой попытке должны показать нам данные, поступающие через ОК, и паритет граф 0 (предполагая, что мы только начали пользоваться этими приборами):

00000000: 6865 6865 6865 6c6c 6f0a 6c6c 6f0a 6c6c привет.Здравствуйте.ад
...
четности 0
...

Перед следующей попытке, мы меняем даже паритета на ttyS0 и мы получаем на выходе

00000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................
паритет 16

т. е. значение null char для каждого персонажа с плохой четности. Фактический подсчет четности ошибки 16, а то xxd останавливается после прочтения 16 символов.

До финальной попытке, мы просим Марк четности ошибок в данных. Это делает ядра положите 2 байта 0xFF и 0x00 в передней части каждой плохой характер данных, и мы получаем:

00000000: ff00 68ff 0065 ff00 6cff 006c ff00 6fff ..ч..е..л..л..о.
паритет 22

Паритет рассчитывать только на 6, а то xxd заканчивается еще раньше.

Данные, которые мы видели выше, должны быть одинаковыми для драйвер USB, но вы не можете получить никаких изменений в счетчиках.