Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Vassily Kiryanov                     2:5054/36      18 Nov 2002  10:16:20
 To : Valery A. Frolov
 Subject : serial port exploring tool
 -------------------------------------------------------------------------------- 
 
 
 16 Nov 02 18:19, Valery A. Frolov wrote to All:
 
 VAF> Предположим есть некоторое устройство (например, принтер), который
 VAF> цепляется к COM-порту компьютера (именно к COM, это важно). И вот
 VAF> есть
 VAF> сильное желание "поиграться" с этим устройством: послать команды,
 VAF> посмотреть ответы, манипулировать DTR/RTS, смотреть на DSR/CTS/DCD/RI
 VAF> и т.п.
 
 VAF> Итак вопрос: кто чем бы такое делал?
 
 Писал когда-то такую прожку на паскале под ДОС. Даже с некоторой
 интерактивностью ...
 Когда потребовалось под униксы, написал на шелловском языке. А вызывается она
 уже хоть откуда, можно и из перла. Вот, держи, как пример для усугубления.
 (Да простит меня модератор...)
 
 Пример вызова:
 ./com_manipulate компорт действие сигнал [длительность]
 компорт = COM1 или COM2 или /dev/tty0?
 действие = up или down или up_down или down_up
 сигнал = rts или RTS или dtr или DTR или all или ALL
 длительность = число секунд паузы
 
 Если действие = up или down , то четвёртый параметр не нужен.
 Если сигнал = all или ALL , то программа дёргает и DTR и RTS.
 Там внизу пара строк внутри case не влезла в 80 символов, сам расправь.
 
 === Cut ===
 #!/bin/sh
 #
 
 if [ x$1 = x ]
  then
   echo Error: TTY name not specified
   exit 1
  else
   ttyname=$1
   echo ttyname="'"$ttyname"'"
 fi
 
 if [ x$2 = x ]
  then
   echo Error: type of manipulation not specified
   exit 2
  else
   echo manipulation="'"$2"'"
 fi
 
 if [ x$2 != xup -a x$2 != xdown -a x$2 != xup_down -a x$2 != xdown_up ]
  then
   echo Error: unknown type of manipulation specified
   exit 20
 fi
 
 if [ x$3 = x ]
  then
   echo Error: signal line name not specified
   exit 3
  else
   linename_u=$3
   linename_d=-$3
   echo line="'"$linename_u"'"
 fi
 
 if [ x$2 = xup_down -o x$2 = xdown_up ]
  then
   echo impulse requested, it''s time required ...
   if [ x$4 = x ]
    then
     echo Error: ... but not specified!
     exit 4
    else
     echo time="'"$4"'"
   fi
 fi
 
 if [ x$1 = xCOM1 -o x$1 = xcom1 ]
  then
   ttyname=/dev/tty00
   echo ttyname="'"$ttyname"'"
 fi
 
 if [ x$1 = xCOM2 -o x$1 = xcom2 ]
  then
   ttyname=/dev/tty01
   echo ttyname="'"$ttyname"'"
 fi
 
 if [ x$3 = xall -o x$3 = xALL ]
  then
   linename_u='dtr rts'
   linename_d='-dtr -rts'
   echo linename="'"$linename_u"'"
 fi
 
 if [ x$3 = xRTS ]
  then
   linename_u=rts
   linename_d=-rts
   echo line="'"$linename_u"'"
 fi
 
 if [ x$3 = xDTR ]
  then
   linename_u=dtr
   linename_d=-dtr
   echo line="'"$linename_u"'"
 fi
 
 case $2 in
     up)  stty -f $ttyname $linename_u ;;
     down) stty -f $ttyname $linename_d ;;
     down_up) stty -f $ttyname $linename_d ; sleep $4 ; stty -f $ttyname
 $linename_u ;;
     up_down) stty -f $ttyname $linename_u ; sleep $4 ; stty -f $ttyname
 $linename_d ;;
     *)  echo Error: this type of manipulation is not implemented ;;
 esac
 
 exit
 === Cut ===
 
 Всего хорошего.              "За верную и прибыльную дружбу!" (c) Яго.
                 Vassily
 ---
  * Origin: И бъется против геноцида Вася, и против Васи геноцид. (2:5054/36)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 serial port exploring tool   Valery A. Frolov   16 Nov 2002 19:19:09 
 serial port exploring tool   Vassily Kiryanov   18 Nov 2002 10:16:20 
 Re: serial port exploring tool   Artem Tovbin   18 Nov 2002 15:15:03 
 Re: serial port exploring tool   Stas Vlasov   19 Nov 2002 20:50:27 
Архивное /ru.perl/18513dd8b3df.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional