История изменений
Исправление anymouze, (текущая версия) :
KERNEL==«rfcomm0», SUBSYSTEM==«tty», ATTR{address}==«00:20:E0:7F:43:0A», ATTR{ch annel}==«1», SYMLINK+=«ttyS5», RUN+=«/etc/bluetooth/stty_SF51.sh»
да, примерно так оно и должно выглядеть. разве что, я бы добавил ACTION=="add"
KERNEL=="rfcomm0", SUBSYSTEM=="tty", ATTR{address}=="00:20:E0:7F:43:0A", ATTR{ch
annel}=="1", ACTION=="add", SYMLINK+="ttyS5", RUN+="/etc/bluetooth/stty_SF51.sh"
Не срабатывает скорее всего потому, что на момент выполнения команды порт ещё не связан с симлинком — т.е. нет устройства /dev/ttyS5. Я уже обращал твоё внимание, что команда должна применяться после появления устройства в /dev/ttyS5. Или добавить ACTION=="add"
в правило или модифицировать скрипт. Например, как ты поставить задержку или вот так как-то
#!/bin/sh
while [ "$RES" != "0" ]
do
if [ "$ACTION" == "add" ]
then RES=`stty -icrnl -echo -F /dev/ttyS5`
fi
done
Причем если сканер находится в энергосберегающем режиме то вообще ничего не получается. И к тому же происходит активация сканера и он пищит. Может все таки можно как то более красиво сделать?
Всё дело в том, что американцы программы «тупые». Сканер и так скорее всего находиться в требуемом режиме, но stty
делает ему принудительную настройку, причём при каждом его появлении в системе. Хотя нам этого как бы и не нужно. По умолчанию последовательный порт в линукс имеет установки отличающиеся от настроек в сканере (коряво сказал) — тебе бы только «принимающий» интерфейс настроить, а там мы настраиваем всю цепочку. Вот не знаю можно ли такое сделать. Точнее сказать: не знаю как это сделать.
P.S. Ты же взаимодействуешь со сканером через какие-то компоненты 1С? Там нет конфигов для настройки портов/устройств?
Исправление anymouze, :
KERNEL==«rfcomm0», SUBSYSTEM==«tty», ATTR{address}==«00:20:E0:7F:43:0A», ATTR{ch annel}==«1», SYMLINK+=«ttyS5», RUN+=«/etc/bluetooth/stty_SF51.sh»
да, примерно так оно и должно выглядеть. разве что, я бы добавил ACTION=="add"
KERNEL=="rfcomm0", SUBSYSTEM=="tty", ATTR{address}=="00:20:E0:7F:43:0A", ATTR{ch
annel}=="1", ACTION=="add", SYMLINK+="ttyS5", RUN+="/etc/bluetooth/stty_SF51.sh"
Не срабатывает скорее всего потому, что на момент выполнения команды порт ещё не связан с симлинком — т.е. нет устройства /dev/ttyS5. Я уже обращал твоё внимание, что команда должна применяться после появления устройства в /dev/ttyS5. Или добавить ACTION=="add"
в правило или модифицировать скрипт. Например, как ты поставить задержку или вот так как-то
#!/bin/sh
while [ "$RES" != "0" ]
do
if [ "$ACTION" == "add" ]
then RES=`stty -icrnl -echo -F /dev/ttyS5`
fi
done
Причем если сканер находится в энергосберегающем режиме то вообще ничего не получается. И к тому же происходит активация сканера и он пищит. Может все таки можно как то более красиво сделать?
Всё дело в том, что американцы программы «тупые». Сканер и так скорее всего находиться в требуемом режиме, но stty
делает ему принудительную настройку, причём при каждом его появлении в системе. Хотя нам этого как бы и не нужно. По умолчанию последовательный порт в линукс имеет установки отличающиеся от настроек в сканере (коряво сказал) — тебе бы только «принимающий» интерфейс настроить, а там мы настраиваем всю цепочку. Вот не знаю можно ли такое сделать. Точнее сказать: не знаю как это сделать.
Исходная версия anymouze, :
KERNEL==«rfcomm0», SUBSYSTEM==«tty», ATTR{address}==«00:20:E0:7F:43:0A», ATTR{ch annel}==«1», SYMLINK+=«ttyS5», RUN+=«/etc/bluetooth/stty_SF51.sh»
да, примерно так оно и должно выглядеть. разве что, я бы добавил ACTION=="add"
KERNEL=="rfcomm0", SUBSYSTEM=="tty", ATTR{address}=="00:20:E0:7F:43:0A", ATTR{ch
annel}=="1", ACTION=="add", SYMLINK+="ttyS5", RUN+="/etc/bluetooth/stty_SF51.sh"
Не срабатывает скорее всего потому, что на момент выполнения команды порт ещё не связан с симлинком — т.е. нет устройства /dev/ttyS5. Я уже обращал твоё внимание, что команда должна применяться после появления устройства в /dev/ttyS5. Или добавить ACTION=="add"
в правило или модифицировать скрипт. Например, как ты поставить задержку или вот так как-то
#!/bin/sh
while [ "$RES" != "0" ]
do
if [ "$ACTION" == "add" ]
then RES=`stty -icrnl -echo -F /dev/ttyS5`
fi
done
Причем если сканер находится в энергосберегающем режиме то вообще ничего не получается. И к тому же происходит активация сканера и он пищит. Может все таки можно как то более красиво сделать?
Всё дело в том, что американцы программы «тупые». Сканер и так скорее всего находиться в требуемом режиме, но stty
делает ему принудительную настройку, причём при каждом его появлении в системе. Хотя нам этого как бы и не нужно. По умолчанию последовательный порт в линукс имеет установки отличающиеся от настроек в сканере (коряво сказал) — тебе бы только «принимающий» интерфейс настроить, а там мы настраиваем всю цепочку. Вот не знаю можно ли такое сделать. Точнее сказать как это сделать.