LINUX.ORG.RU

/dev/ttyS0


0

0

Hi,

tail -F /dev/ttyS0 & echo "ATZ" > /dev/ttyS0

...почему не работает. Я что-то недопонимаю :-( Или так вообще нельзя.

echo "ATD123456" > /dev/ttyS0 - это не указание набрать заданный номер?

anonymous

Re: /dev/ttyS0

Не понял, че хотел...

man tail а номер набирается echo > "ATDT (или P) 555555" > /dev/ttS0

Tail тебе ниче не выдаст в таком случае. А зачем такие танцы?

one117 ★★★★★ ()
Ответ на: Re: /dev/ttyS0 от one117

Re: /dev/ttyS0

Спасибо.

У меня ночной И-нет. Утром отключусь, попробую.

>> А зачем такие танцы?

Мне нужен скрипт, набирающий номер, и в зависимости от результата (занято/подняли_трубку) возвращал 0/1.

Вижу одно из решений - посылать в модем команды, и ждать ответа. Как от модема получить ответ (OK, BUSY, ...)?

Возможно, для моей задачи можно chat использовать? Или он только для pppd сделан?

В man chat я не нашел ответ на вопрос - "Куда лошадь запрягать?" - как ему указать, что мой модем /dev/ttyS0?

anonymous ()
Ответ на: Re: /dev/ttyS0 от one117

Re: /dev/ttyS0

Спасибо, я посмотрю, но, кажется, это чуть не то. Мне нужно для звонков на обычные телефоны. Связь (ppp) устанавливатся не будет.

Просто звонилка: Пытается дозвониться до человека, например с 10 попыток. Если там взяли трубку - на экран сообщение "Говори!"

Возможно, кто-нибудь знает уже готовое решение.

anonymous ()
Ответ на: Re: /dev/ttyS0 от archont

Re: /dev/ttyS0

>Есть Perl-модули для работы с серийным портом и модемом. Искать на CPAN.

Лучше ... сразу на Java с гуйнёй ... :)

robot12 ★★★★★ ()
Ответ на: Re: /dev/ttyS0 от anonymous

Re: /dev/ttyS0

> В man chat я не нашел ответ на вопрос - "Куда лошадь запрягать?" - как ему указать, что мой модем /dev/ttyS0?

chat [options] </dev/ttyS0 >/dev/ttyS0

chat работает с терминалом, на котором он запущен, соответственно перенаправлениями этот терминал можно сменить

ansky ★★★★★ ()
Ответ на: Re: /dev/ttyS0 от ansky

Re: /dev/ttyS0

Привет.

Спасибо за ответы, но я не сдвинулся с мертвой точки.

Просветите, пожалуйста еще чуточку

1. ...to one117 >> а номер набирается echo > "ATDT (или P) 555555" > /dev/ttS0

echo > "ATDT555555" > /dev/ttS0 Так не работает (Создает файл ATDT555555 - что мне кажется, логичным), возможно, опечатка, пробовал такую команду (без ">" после echo - точно ли он нужен)

echo "ATDT555555" > /dev/ttS0 номер не набирается.

2. ...to ansky

>> chat [options] </dev/ttyS0 >/dev/ttyS0

Спасибо, я ожидал что-то подобное от chat :-) - но так ясно я этого не видел. Научил ее реагировать на команды терминала, теперь понял, как ее "подружить" с модемом.

Но тоже ничего не получается. Например, я беру готовый скрипт, который у меня занимается дозвоном к провайдеру (закрыв глаза, что мне в данной задаче нужно чуть другое, но этот скрипт + chat + pppd отлично и проверенно работают)

Команда вызова pppd: #!/bin/bash /usr/sbin/pppd /dev/ttyS0 115200 name $1 connect '/usr/sbin/chat -v -f /etc/ppp/pppscript'

Содержимое /etc/ppp/pppscript: TIMEOUT 60 ABORT ERROR ABORT BUSY ABORT "NO CARRIER" ABORT "NO DIALTONE" "" "AT&FH0" OK "ATDT555555" TIMEOUT 75 CONNECT

Если я верно понял, команда: /usr/sbin/chat -v -f /etc/ppp/pppscript </dev/ttyS0 >/dev/ttyS0 должна проинициализировать модем и позвонить (по крайней мере) к провайдеру.

Ничего этого нет. Единственный результат - загорается лампочка DTR - на модеме, как, впрочем и при команде: echo "ATDT555555" > /dev/ttS0

Экспериментировал под zsh и bash.

Можете что-нибудь подсказать/посоветовать по этому поводу.

3. ... to robot12 >> Есть Perl-модули для работы с серийным портом и модемом. >> Искать на CPAN. Можно, пожалуйста, подробней (если, конечно, это не стеб из разряда rm -rf / - я давно наблюдаю на LOR любовь к таким шуткам - правда, в основном от anonymous). Что такое CPAN, как это и где это? Простите, ни в коем случае не хотел обидеть.

В любом случае - спасибо все откликнувшимся.

anonymous ()
Ответ на: Re: /dev/ttyS0 от anonymous

Re: /dev/ttyS0

Еще раз с нормальным форматированием:


Привет.

Спасибо за ответы, но я не сдвинулся с мертвой точки.

Просветите, пожалуйста еще чуточку

1. ...to one117
>> а номер набирается echo > "ATDT (или P) 555555" > /dev/ttS0

echo > "ATDT555555" > /dev/ttS0
Так не работает (Создает файл ATDT555555 - что мне кажется, логичным), возможно, опечатка, пробовал такую команду (без ">" после echo - точно ли он нужен)

echo "ATDT555555" > /dev/ttS0
номер не набирается.

2. ...to ansky

>> chat [options] </dev/ttyS0 >/dev/ttyS0

Спасибо, я ожидал что-то подобное от chat :-) - но так ясно я этого не видел.
Научил ее реагировать на команды терминала, теперь понял, как ее "подружить" с модемом.

Но тоже ничего не получается.
Например, я беру готовый скрипт, который у меня занимается дозвоном к провайдеру (закрыв глаза, что мне в данной задаче нужно чуть другое, но этот скрипт + chat + pppd отлично и проверенно работают)

Команда вызова pppd:
#!/bin/bash
/usr/sbin/pppd /dev/ttyS0 115200 name $1 connect '/usr/sbin/chat -v -f /etc/ppp/pppscript'

Содержимое /etc/ppp/pppscript:
TIMEOUT 60
ABORT ERROR
ABORT BUSY
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
"" "AT&FH0"
OK "ATDT555555"
TIMEOUT 75
CONNECT


Если я верно понял, команда:
/usr/sbin/chat -v -f /etc/ppp/pppscript </dev/ttyS0 >/dev/ttyS0
должна проинициализировать модем и позвонить (по крайней мере) к провайдеру.

Ничего этого нет.
Единственный результат - загорается лампочка DTR - на модеме, как, впрочем и при команде:
echo "ATDT555555" > /dev/ttS0

Экспериментировал под zsh и bash.

Можете что-нибудь подсказать/посоветовать по этому поводу.


3. ... to robot12
>> Есть Perl-модули для работы с серийным портом и модемом.
>> Искать на CPAN.
Можно, пожалуйста, подробней (если, конечно, это не стеб из разряда rm -rf / - я давно наблюдаю на LOR любовь к таким шуткам - правда, в основном от anonymous). Что такое CPAN, как это и где это? Простите, ни в коем случае не хотел обидеть.


В любом случае - спасибо все откликнувшимся.

anonymous ()
Ответ на: Re: /dev/ttyS0 от anonymous

Re: /dev/ttyS0

perl.org.ru/cpan/
www.cpan.org
Но если ты не знаешь, что такое CPAN, значит врядли знаком с Perl, а значит он тебе врядли поможет.
А может быть заинтересуешься, да и напишешь простенький скрипт.
Я посоветовал Perl, т.к. сам года 3-4 назад написал скрипт для дозвона по определенному событию на определенные телефоны для передачи голосового сообщения.
Поскольку использовавшийся модем не позволял точно определить момент поднятия трубки при ответе на звонок, и следовательно либо слишком долго "молчал", либо наоброт проговаривал сообщение раньше срока, скрипт так и не пригодился, а позже просто потерялся. Менять модем ради события, которое происходило раз в 2-3 месяца, не хотелось, да и проблема решилась другим методом.

archont ★★★ ()
Ответ на: Re: /dev/ttyS0 от anonymous

Re: /dev/ttyS0

$ man minicom

...возможно поможет.

Neksys ★★★ ()
Ответ на: Re: /dev/ttyS0 от anonymous

Re: /dev/ttyS0

Если ты запускаешь chat непосредственно, то тебе как минимум надо выставить перед этим скорость порта и параметры. Примерно вот так:

stty -parenb cs8 hup -cstopb crtscts -echo clocal -ocrnl cread ignbrk 9600 < /dev/ttyS0

ansky ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.