Чтение и запись из/в ttyS0

кажется, что даже с этими параметрами mpv не загружает файлы LyRiC (.lrc). что мне нужно было сделать, так это создать небольшой скрипт плагина mpv и поместить его в каталог scripts, который находится в каталоге configmpv.

--  load lrc files

function file_exists(name)
   local f=io.open(name,"r")
   if f~=nil then io.close(f) return true else return false end
end

function GetLrcPath(name)
  return name:gsub("(%..+)$", ".lrc")
end

function open_handler()
        lrcPath = GetLrcPath(mp.get_property("path"))
        if file_exists(lrcPath) then
            mp.set_property("options/sub-files", lrcPath)
        end
end
mp.register_event("start-file", open_handler)
0
12.04.2020, 20:50
1 ответ

В своем редактировании вы добавили код для чтения из порта в функцию open_port(). Хотя кажется, что это может сработать, это плохой стиль :, теперь функция open_port()специфична для нужд этой программы, и ее уже нелегко выбрать и повторно -использовать в каком-то будущем проекте без модификаций. И название функции уже не точно описывает, что делает функция.

Я не уверен, -что установка вашего последовательного соединения верна. :вы говорите, что используете виртуальную машину и подключен USB, но, похоже, вы используете /dev/ttyS0на обоих концах. Это относится к физическому последовательному порту, а не к порту на базе USB -.

Возможно, вы настроили программное обеспечение виртуализации для подключения реального физического последовательного порта или последовательного порта, сгенерированного драйвером последовательного преобразователя USB -хоста, к виртуальной машине /dev/ttyS0:, если это так, то это может работать на стороне ПК.. Но это не по умолчанию :, вы обязательно должны настроить это в своем программном обеспечении для виртуализации, иначе оно не будет работать.

Более распространенной конфигурацией будет настройка программного обеспечения для виртуализации, позволяющая виртуальной машине получать доступ к USB-стороне последовательного преобразователя USB -в целом :, после чего она будет отображаться в виртуальной машине как что-то вроде /dev/ttyUSB0вместо этого (в зависимости от точного типа последовательного преобразователя ).

На стороне RasPi/dev/ttyS0не существует в конфигурации Pi Zero W по умолчанию -типичным последовательным портом является /dev/ttyAMA0, но в конфигурации по умолчанию он используется функциональностью Bluetooth. Если вы подключили разъем USB последовательного преобразователя USB -к RasPi, он также будет отображаться здесь как /dev/ttyUSB0.

Поскольку ваш побочный скрипт RasPi -не проверяет наличие устройства, возможно, он создал файл с именем /dev/ttyS0, содержащий одну строку с номером 1. Запустите эту команду на RasPi, чтобы узнать, является ли его /dev/ttyS0действительным последовательным устройством :

.
 test -c /dev/ttyS0 && echo "Maybe valid" || echo "Definitely not correct"

Если вы используете физическое последовательное соединение(/dev/ttyS0или/dev/ttyAMA0)на стороне RasPi, у вас должен быть впаян 40 -контактный разъем на RasPi Zero W, и что-то должно быть подключено к контактам 8 и 10 этот разъем, насколько я понимаю. Вам также пришлось бы использовать raspi-config, чтобы разрешить доступ к последовательному порту.

Если вы можете получить доступ к RasPi с помощью SSH, это означает, что у вас есть сетевое соединение :, оно вообще ничего не говорит о состоянии последовательного соединения.

0
19.03.2021, 02:29

Теги

Похожие вопросы