Cat наоборот
От: vvv848165@ya.ru  
Дата: 25.08.20 13:07
Оценка:
Есть ли команды записи в сом порт ? ... но не echo!

Если пользоваться cat то всё хорошо 1 раз порт открывается и когда данные приходят ты их получаешь,

а вот с
echo "строка" > /dev/ttyS1

нехорошо переоткрывать порт !!! Мне нужно подождать между записями и не переоткрывать его. Это возможно???

Просто AT команды многие в 2 этапа — и надо ожидать ответа между частями команд...
Отредактировано 25.08.2020 13:12 vvv848165@ya.ru . Предыдущая версия . Еще …
Отредактировано 25.08.2020 13:09 vvv848165@ya.ru . Предыдущая версия .
Re: Cat наоборот
От: kov_serg Россия  
Дата: 25.08.20 14:24
Оценка: 3 (1)
Здравствуйте, vvv848165@ya.ru, Вы писали:

VYR>Есть ли команды записи в сом порт ? ... но не echo!

...
VYR>Просто AT команды многие в 2 этапа — и надо ожидать ответа между частями команд...
Есть expect (он использует язык tcl)
Отредактировано 25.08.2020 14:27 kov_serg . Предыдущая версия . Еще …
Отредактировано 25.08.2020 14:25 kov_serg . Предыдущая версия .
Re: Cat наоборот
От: Reset  
Дата: 25.08.20 14:26
Оценка: 3 (1)
VYR>Есть ли команды записи в сом порт ? ... но не echo!

VYR>Если пользоваться cat то всё хорошо 1 раз порт открывается и когда данные приходят ты их получаешь,


VYR>а вот с

VYR>
VYR>echo "строка" > /dev/ttyS1
VYR>

VYR>нехорошо переоткрывать порт !!! Мне нужно подождать между записями и не переоткрывать его. Это возможно???

VYR>Просто AT команды многие в 2 этапа — и надо ожидать ответа между частями команд...


function write_data_to_com_port()
{
  echo -n "чё нужно запихать в COM порт"
  sleep 5
  // Прочитать ответ
  printf "%s\n%s\n" "Ну, все" "the end"
} > /dev/ttyS1
Re: Cat наоборот
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 25.08.20 15:12
Оценка: 3 (1)
Здравствуйте, vvv848165@ya.ru, Вы писали:

VYR>Мне нужно подождать между записями и не переоткрывать его.


comgt/gcom?
Re: Cat наоборот
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 25.08.20 16:54
Оценка: 16 (4) +1
Здравствуйте, vvv848165@ya.ru, Вы писали:

VYR>нехорошо переоткрывать порт !!! Мне нужно подождать между записями и не переоткрывать его. Это возможно???


А обязательно это на шелле делать?
Если да, то можно сказать

exec 3<>/dev/$port ## теперь порт постоянно открыт на fd=3
echo ATZ 1>&3
sleep 2
echo AT 1>&3


ну или что вам там нужно... и дальше общаться с ним.

VYR>Просто AT команды многие в 2 этапа — и надо ожидать ответа между частями команд...


А вообще шелл плохо подходит для такого. Можно самому написать на питоне/etc., можно применить expect...
The God is real, unless declared integer.
Re: а что другое чтоб не заморачиваться ???
От: vvv848165@ya.ru  
Дата: 26.08.20 06:16
Оценка:
а что другое чтоб не заморачиваться c установками???
дело в том что мне надо это под OpenVrt ...

сама ось обсолютно глюкавая (пакеты с репозитория даже не устанавливаются)
она под разные версии ARM
есть LUA и можно установить python — но они без библиотек (c COM портом не поработаеш)
на С там писать просто жесть ... make файлами замучаешся
Отредактировано 26.08.2020 6:17 vvv848165@ya.ru . Предыдущая версия .
Re[2]: а что другое чтоб не заморачиваться ???
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 26.08.20 07:48
Оценка: +1 :)
Здравствуйте, vvv848165@ya.ru, Вы писали:

VYR>дело в том что мне надо это под OpenVrt ...

VYR>сама ось обсолютно глюкавая (пакеты с репозитория даже не устанавливаются)

Может, руки?

VYR>на С там писать просто жесть ... make файлами замучаешся


Чтобы писать на C/C++, make-файлы совершенно не обязательны. Даже я, конченный виндузятник, не вижу никаких сложностей в написании прикладного (не ядерного) софта для OpenWRT.
Re[2]: Cat наоборот
От: vvv848165@ya.ru  
Дата: 26.08.20 08:05
Оценка:
Здравствуйте, netch80, Вы писали:

N>
N>exec 3<>/dev/$port ## теперь порт постоянно открыт на fd=3
N>echo ATZ 1>&3
N>sleep 2
N>echo AT 1>&3
N>


не могу найти в man-е ...
может подскажите где прочитать по русски про <> и >&
наверное самый удобный способ ...
Re[3]: Cat наоборот
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 26.08.20 08:11
Оценка: 7 (2) +1
Здравствуйте, vvv848165@ya.ru, Вы писали:

VYR>не могу найти в man-е ...

VYR>может подскажите где прочитать по русски про <> и >&
VYR>наверное самый удобный способ ...

Ну например тут.
Это по bash, хотя фича от POSIX в целом. Смотреть по слову "перенаправление".
Ну что exec без параметров не порождает новый процесс, но позволяет менять свойства текущего, это уже просто надо знать этот фокус
The God is real, unless declared integer.
Re[3]: а что другое чтоб не заморачиваться ???
От: vvv848165@ya.ru  
Дата: 26.08.20 08:12
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:


ЕМ>Может, руки?


100% руки

например такое :
1) захожу браузером в админ утилиту
2) выбираю System->startup
3) пишу до "exit 0" свои команды
4) делаю submit
5) перезагружаю (мои команды не выполнились)
6) захажу в System->startup — а там тока половина от того что я написал и "exit 0" нету

как так понимать!!! и это 100% такое повторяется!
Re[4]: а что другое чтоб не заморачиваться ???
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 26.08.20 08:19
Оценка:
Здравствуйте, vvv848165@ya.ru, Вы писали:

VYR>6) захажу в System->startup — а там тока половина от того что я написал и "exit 0" нету

VYR>как так понимать!!! и это 100% такое повторяется!

В первую очередь — проверить в другой сборке и/или версии.
Re[4]: а что другое чтоб не заморачиваться ???
От: lpd Черногория  
Дата: 26.08.20 08:20
Оценка:
Здравствуйте, vvv848165@ya.ru, Вы писали:

VYR>как так понимать!!! и это 100% такое повторяется!


Нашел баг — пофиксь. Это open-source подход, а не ныть на форумах.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Re[4]: Cat наоборот
От: vvv848165@ya.ru  
Дата: 26.08.20 09:02
Оценка:
Здравствуйте, netch80, Вы писали:

N>Ну например тут.

N>Это по bash, хотя фича от POSIX в целом. Смотреть по слову "перенаправление".
N>Ну что exec без параметров не порождает новый процесс, но позволяет менять свойства текущего, это уже просто надо знать этот фокус

вот тока перенаправление везде без <> расказывают ... тока >

а закрывать не надо?
а если я отправляю команды в консоль через LUA скрипт 3 дескриптор тоже не будет занят (они друг другу не помешают?)?

спасибо ! не не злись ... и правда не гуглится
Re[5]: Cat наоборот
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 26.08.20 11:12
Оценка:
Здравствуйте, vvv848165@ya.ru, Вы писали:

VYR>Здравствуйте, netch80, Вы писали:


N>>Ну например тут.

N>>Это по bash, хотя фича от POSIX в целом. Смотреть по слову "перенаправление".
N>>Ну что exec без параметров не порождает новый процесс, но позволяет менять свойства текущего, это уже просто надо знать этот фокус

VYR>вот тока перенаправление везде без <> расказывают ... тока >


Эээ?

Открытие дескрипторов файлов для чтения и записи

Оператор перенаправления


[n]<>слово

вызывает открытие файла, имя которого получается в результате подстановок

в слове, для чтения и записи через дескриптор файла n или через дескриптор

файла 0, если n не указано. Если файл не существует, он создается.


VYR>а закрывать не надо?


Само закроется по завершению процесса. Но можно и явно.

VYR>а если я отправляю команды в консоль через LUA скрипт 3 дескриптор тоже не будет занят (они друг другу не помешают?)?


Нет.

VYR>спасибо ! не не злись ... и правда не гуглится


хм
The God is real, unless declared integer.
Re: Cat наоборот
От: scf  
Дата: 26.08.20 12:10
Оценка:
Здравствуйте, vvv848165@ya.ru, Вы писали:

VYR>нехорошо переоткрывать порт !!! Мне нужно подождать между записями и не переоткрывать его. Это возможно???


Можно создать fifo, см. mkfifo

Потом cat /my/fifo > /dev/mycom & и писать в fifo.
Re[2]: Cat наоборот
От: vvv848165@ya.ru  
Дата: 26.08.20 13:08
Оценка:
Здравствуйте, scf, Вы писали:

scf>Здравствуйте, vvv848165@ya.ru, Вы писали:


VYR>>нехорошо переоткрывать порт !!! Мне нужно подождать между записями и не переоткрывать его. Это возможно???


scf>Можно создать fifo, см. mkfifo


scf>Потом cat /my/fifo > /dev/mycom & и писать в fifo.


Наверное это совсем сложно : (
а причём тут cat ?
Re: не работает на lua :(
От: vvv848165@ya.ru  
Дата: 26.08.20 13:15
Оценка:
не работает на lua

fdw = io.popen('/dev/ttyS'..no) -- Permission denied

fdw = io.popen('exec 3 <> /dev/ttyS'..no) -- Sh: exec: line 1: 3 not found

Отредактировано 26.08.2020 13:16 vvv848165@ya.ru . Предыдущая версия .
Re[6]: Cat наоборот
От: vvv848165@ya.ru  
Дата: 26.08.20 13:18
Оценка:
Здравствуйте, netch80, Вы писали:
N>хм

а из за чего на lua не работает?

fdw = io.popen('/dev/ttyS'..no) -- Permission denied

fdw = io.popen('exec 3 <> /dev/ttyS'..no) -- Sh: exec: line 1: 3 not found

Re[7]: Cat наоборот
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 26.08.20 13:44
Оценка:
Здравствуйте, vvv848165@ya.ru, Вы писали:

N>>хм


VYR>а из за чего на lua не работает?


VYR>[q]

VYR> fdw = io.popen('/dev/ttyS'..no) -- Permission denied

VYR> fdw = io.popen('exec 3 <> /dev/ttyS'..no) -- Sh: exec: line 1: 3 not found


Второе в принципе не должно дать ничего полезного, потому что скрипт на Lua не шелл.
Ну и пробелы вокруг <> я бы не ставил.

Первое — почему permission denied, ищите уже по своим правам.

Кстати, если это действительно ttyS*, то его надо открывать с O_NONBLOCK, поднимать флаг CLOCAL и только тогда пытаться работать с реальным портом. Ну и остальные настройки по man termios не забыть, скорее всего нужен полный raw mode.
The God is real, unless declared integer.
Re[2]: не работает на lua :(
От: kov_serg Россия  
Дата: 02.10.20 14:42
Оценка:
Здравствуйте, vvv848165@ya.ru, Вы писали:

VYR>не работает на lua


VYR>fdw = io.popen('/dev/ttyS'..no) -- Permission denied

Таки вы зачем процес запускаете надо просто io.open

ls -la /dev/tty*


VYR>fdw = io.popen('exec 3 <> /dev/ttyS'..no) -- Sh: exec: line 1: 3 not found

так exec это встроенная команда шела, а не внешняя.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.