LINUX.ORG.RU

Ксакепский вариант - эмулировать fifo, на который натраваить приложение и через который читать-писать в журнал и /dev/ttySx. Вероятно, бывает более прямое решение.

as33 ★☆☆
()

Решение:

apt-get install expect или zypper install expect

далее

#!/usr/bin/expect

proc Reader { pipe } {

global done

if {[eof $pipe]} {

catch {close $pipe}

set done 1

return

}

gets $pipe line

set tagxmitdate [clock seconds]

#puts $line $tagxmitdate

puts "$tagxmitdate $line"

}

set pipe [open "|cat /dev/ttyS0" r]

fileevent $pipe readable [list Reader $pipe]

vwait done

ded_mopozzz
() автор топика
Ответ на: комментарий от gaa

ну-ну

тот конец, который эмулирует порт, таковым не является. т.е., произвольная прога просто не сможет выполнить его конфигурацию.

вы в своём скрипте, конечно, сможете сконфигурить реальный порт этой командой (кстати, стандартная утиилитка stty тоже подойдёт). Но что с того проге, которая цепляется к FIFO?

scaldov ★★
()
Ответ на: комментарий от scaldov

вобщем-то, правильно было бы модуль написать в ядро, который бы создавал 2 устройства: эмуляцию и то, с которого мониторить. Он бы перенаправлял ioctl/read/write на настоящий serial port, а данные с read/write на монитор.

иначе - это будет костыль. если ты знаешь, что прога 100% работает на этом битрейте и с этими настройками, то этот костыль поможет.

scaldov ★★
()

--------------|
            Rx|---------+---------|Tx
/dev/ttyS0  Tx|---+-----|---------|Rx   Some Device
           GND|---|--+--|---------|GND
--------------|   |  |  |
                  |  |  |
--------------|   |  |  |
            Rx|---+  |  |
/dev/ttyS1  Tx|      |  |
           GND|------+  |
--------------|      |  |
                     |  |
--------------|      |  |
            Rx|---------+  
/dev/ttyS1  Tx|      |  
           GND|------+
--------------|


Таким образом, данные, идущие НА /dev/ttyS0 
 можно прочитать by cat /dev/ttyS1 | xxd, 
 а передаваемые /dev/ttyS0 ин cat /dev/ttyS2 | xxd

marsijanin ★★
()
Ответ на: комментарий от marsijanin

                            
       +--------------|                   +-----------------+                  
       |            Rx|->>-------*-\/-->>-|Rx               | 
       |/dev/ttyS0  Tx|->>-*-----+-/\-->>-|Tx   Some Device | 
       |           GND|->>-+--*--+----->>-|GND              | 
       +--------------|    |  |  |        +-----------------+
                      |    |  |  |                            
       +--------------|    |  |  |                            
       |            Rx|->>-+  |  |                            
       |/dev/ttyS1  Tx|       |  |                            
       |           GND|->>----*  |                            
       +--------------|       |  |                            
                      |       |  |                            
       +--------------|       |  |                            
       |            Rx|->>----+--+                            
       |/dev/ttyS1  Tx|       |                               
       |           GND|->>----+                               
       +--------------|                                      
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            

marsijanin ★★
()
Ответ на: комментарий от as33

>Ксакепский вариант - эмулировать fifo, на который натраваить приложение и через который читать-писать в журнал и /dev/ttySx. Вероятно, бывает более прямое решение.

вместо написания приложения - юзать tee

алсо fifo+tee = профит.

dikiy ★★☆☆☆
()
Ответ на: комментарий от marsijanin

>2marsijanin

тоже не правильно по той же причине, которую я описал выше.

твой вариант ничем не отличается от FIFO

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