URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 1335
[ Назад ]

Исходное сообщение
"Что дает символ Esc перед символом команды? Суть вопроса внутри"

Отправлено zlinuxan , 31-Янв-03 07:29 
Здравствуйте!
Сразу скажу - образование биологическое :))
А занимаюсь сейчас  тем, что пытаюсь написать программу на Perl для контроля электронных весов Sartorius. Есть такая нужда.
Весы имеют интерфейс к RS-232, однако пришлось немного перепаять пины под DB25S, как было указано в мануале весов (если понадобится, я всю распайку представлю).
по мануалу, весы всю информацию скидывают в ком-порт. И это действительно так. Скидывают,когда на них кнопочку "принт" нажмешь и  я их скриптом забираю и пишу в файл. Но также по мануалу, весы должны управляться командами, посылаемыми с компьютера.
Команды в ASCII и имеют следующий формат: Esc ! CR LF, где ! - есть буква команды какого-либо конкретного действия. Таким образом для вывода показаний весов в ком-порт, им нужно выслать команду Esc P CR LF.
И вот тут проблема.
Эту команду я вывожу в порт и вот так:
print DEV '\033\120\015\012';
и так
my $coma = printf ("%c%c\r\n",27,80);
и так
my $coma = pack "c*",$esc,$char,$CR,$LF;
и по всякому, но весы не слышат команды.
А когда я просто написал такой скрипт:
#!/usr/bin/perl
# co.pl
print '\033\120\015\012';
а потом сделал :
perl co.pl >> goggy
, то потом в cat goggy получил только перевод строки, но без символа P.
когда же \033 (Esc) убираешь, то  символ выдается.
Отсюда, хотелось бы знать, а что вообще означает Esc в начале строки?

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


Содержание

Сообщения в этом обсуждении
"RE: Что дает символ Esc перед символом команды? Суть вопроса вну..."
Отправлено qq , 31-Янв-03 10:26 
это у тебя терминал скушал символ после esc (решил что это ему ескейп-последовательность передают)
ты делай не cat goggy
а hexdump -C goggy

print DEV '\033\120\015\012';
тут нужны двойные скобки

perl -e 'print  "\033\120\015\012";'|hexdump -C
00000000  1b 50 0d 0a                                       |.P..|

можно даже так
echo -en "\033\120\015\012"|hexdump -C
00000000  1b 50 0d 0a                                       |.P..|


"RE: Что дает символ Esc перед символом команды? Суть вопроса..."
Отправлено qq , 31-Янв-03 10:26 

>print DEV '\033\120\015\012';
>тут нужны двойные скобки
имелось ввиду не скобки, а кавычки, конечно....

"RE: Что дает символ Esc перед символом команды? Суть вопроса..."
Отправлено zlinuxan , 31-Янв-03 10:34 
>
>>print DEV '\033\120\015\012';
>>тут нужны двойные скобки
>имелось ввиду не скобки, а кавычки, конечно....
Ага, спасибо :) Учту.
А про hexdump просто сам забыл.
А всетаки, вас ист дас "искейп-последовательность" для терминала? О чем эта последовательность терминалу говорит?
Я, собснно, это узнать хотел, ну или где читать?



"RE: Что дает символ Esc перед символом команды? Суть вопроса..."
Отправлено qq , 31-Янв-03 15:50 
>А всетаки, вас ист дас "искейп-последовательность" для терминала? О чем эта последовательность
>терминалу говорит?

ну например xterm-у можно сказать что в хаголовке окна показывать...
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'

в общем, для управления свойствами терминала
насчет где почитать - вот быстро гуглом нашел
http://rtfm.etla.org/xterm/ctlseq.html


"RE: Что дает символ Esc перед символом команды? Суть вопроса..."
Отправлено zlinuxan , 31-Янв-03 16:59 
>насчет где почитать - вот быстро гуглом нашел
>http://rtfm.etla.org/xterm/ctlseq.html
Спасибо большое :)
Почитал и все втюхал.
Все, кроме одного - отчего мои весы не принимают команды, но это уже, видимо, из другой оперы.



"RE: Что дает символ Esc перед символом команды? Суть вопроса..."
Отправлено qq , 31-Янв-03 20:10 
>>насчет где почитать - вот быстро гуглом нашел
>>http://rtfm.etla.org/xterm/ctlseq.html
>Спасибо большое :)
>Почитал и все втюхал.
>Все, кроме одного - отчего мои весы не принимают команды, но это
>уже, видимо, из другой оперы.

не похоже, но возможно что то с настройками порта..
можно попробовать вручную подцепиться к весам терминалкой (minicom /dev/ttyS0 в линух, или cu -l /dev/cuaa0 для freebsd)
и проверить правильно ли идет отчет (правильные ли настройки порта), и после этого дать команды вручную (прямо так и набирать, Escape,P,ENTER)


"RE: Что дает символ Esc перед символом команды? Суть вопроса..."
Отправлено zlinuxan , 01-Фев-03 17:17 
***qq
Век живи - век учись :))
Никогда не знал, что в никсах такая фича есть (это я про minicom).
Теперь знаю и даже ХАУТУ прочитал :))
Спасибо.
А кстати, может мой вопрос и твои ответы в ФАК порекомендовать?
Что думаешь?

"RE: Что дает символ Esc перед символом команды? Суть вопроса..."
Отправлено qq , 01-Фев-03 17:46 
>***qq
>Век живи - век учись :))
>Никогда не знал, что в никсах такая фича есть (это я про
>minicom).
>Теперь знаю и даже ХАУТУ прочитал :))
>Спасибо.
>А кстати, может мой вопрос и твои ответы в ФАК порекомендовать?
>Что думаешь?

а чё тут думать :) ежли считаешь что надо - рекомендуй =)


"RE: Что дает символ Esc перед символом команды? Суть вопроса..."
Отправлено zlinuxan , 01-Фев-03 18:21 
УЖе :)
>>***qq
>>Век живи - век учись :))
>>Никогда не знал, что в никсах такая фича есть (это я про
>>minicom).
>>Теперь знаю и даже ХАУТУ прочитал :))
>>Спасибо.
>>А кстати, может мой вопрос и твои ответы в ФАК порекомендовать?
>>Что думаешь?
>
> а чё тут думать :) ежли считаешь что надо - рекомендуй
>=)



"RE: Что дает символ Esc перед символом команды? Суть вопроса..."
Отправлено qq , 01-Фев-03 19:06 
вылезь в аську оффтопик пообсуждать,а? :)


"RE: Что дает символ Esc перед символом команды? Суть вопроса..."
Отправлено qq , 01-Фев-03 19:50 
>вылезь в аську оффтопик пообсуждать,а? :)

ладно пофиг, это неважо :)


"RE: Что дает символ Esc перед символом команды? Суть вопроса вну..."
Отправлено Fredan , 03-Фев-03 17:05 
Так как все-таки забирать показания весов? Решен ли вопрос...?
Я понял что, Вы подсоеденили к компорту Ваши весы и пытаетесь софтом считать вес,.... В сетапе весов есть понятие длина слова 16 бит или 24 если я правильно помню... Возможно надо поиграться здесь... Хотелось бы получить распайку:)

"RE: Что дает символ Esc перед символом команды? Суть вопроса..."
Отправлено zlinuxan , 03-Фев-03 17:43 
>Так как все-таки забирать показания весов? Решен ли вопрос...?
>Я понял что, Вы подсоеденили к компорту Ваши весы и пытаетесь софтом
>считать вес,.... В сетапе весов есть понятие длина слова 16 бит
>или 24 если я правильно помню... Возможно надо поиграться здесь... Хотелось
>бы получить распайку:)

Да все получилось! Сегодня!
Распайку выложу, могу и мануал в ПДФ где лежит сказать (надо гуглю сказать YDO01BL и первую сцылку брать) :)) Там тоже вся распайка есть.
И движок взятия - командования могу выложить :)
Все могу :))
По этому Сарториусу все :))


"RE: Что дает символ Esc перед символом команды? Суть вопроса..."
Отправлено zlinuxan , 03-Фев-03 18:00 
Добавлю
>>считать вес,.... В сетапе весов есть понятие длина слова 16 бит
>>или 24 если я правильно помню... Возможно надо поиграться здесь...
Это совершенно никакой рояли не играет. Это просто еще одна фича, которую также можно с подключенного девайса (компьютера в данном случае) менять.
>>бы получить распайку:)

Если действительно есть такая же нужда, то могу описать ВСЕ, до мельчайших подробностей.
В общем пишите :)

zlinuxan ака Злой Татарин