Reading data from a serial port


 
Thread Tools Search this Thread
Operating Systems Linux Debian Reading data from a serial port
# 1  
Old 10-03-2014
Reading data from a serial port

Dear List -

I am trying to capture data from a serial port and write it to a file.
Code:
/var/www$ cat /dev/ttyS0 > scale_value.html 
cat: /dev/ttyS0: Device or resource busy 

/var/www#  cat /proc/tty/driver/serial 
serinfo:1.0 driver revision: 

0: uart:16550A port:000003F8 irq:4 tx:90 rx:270 brk:2 RTS|CTS|DTR|DSR|CD 
1: uart:16550A port:00001C90 irq:17 tx:19 rx:0 CTS|DSR|CD 
2: uart:unknown port:000003E8 irq:4 
3: uart:unknown port:000002E8 irq:3 

/var/www# cat /proc/interrupts 
           CPU0       CPU1 
  0:         42          0   IO-APIC-edge      timer 
  1:          3          0   IO-APIC-edge      i8042 
  4:         74         89   IO-APIC-edge      serial 
  6:          2          1   IO-APIC-edge      floppy 
  8:          0          1   IO-APIC-edge      rtc0 
  9:          1          2   IO-APIC-fasteoi   acpi 
 12:          5          0   IO-APIC-edge      i8042 
 16:     148679     155632   IO-APIC-fasteoi   uhci_hcd:usb1, uhci_hcd:usb4, ehci_hcd:usb7 
 17:          9          8   IO-APIC-fasteoi   uhci_hcd:usb2, uhci_hcd:usb5, i801_smbus 
 18:        131        143   IO-APIC-fasteoi   uhci_hcd:usb3, ehci_hcd:usb6, uhci_hcd:usb8 
 40:   54993721          0  HPET_MSI-edge      hpet2 
 41:          0   53507648  HPET_MSI-edge      hpet3 
 42:    1041026     920449   PCI-MSI-edge      eth0 
 43:     524549     476624   PCI-MSI-edge      ahci 
 44:         11          9   PCI-MSI-edge      mei_me 
 45:      46800      46570   PCI-MSI-edge      i915 
 46:       1488       1583   PCI-MSI-edge      snd_hda_intel 
NMI:      37245      37177   Non-maskable interrupts 
LOC:         16         12   Local timer interrupts 
SPU:          0          0   Spurious interrupts 
PMI:      37245      37177   Performance monitoring interrupts 
IWI:     258822     264271   IRQ work interrupts 
RTR:          0          0   APIC ICR read retries 
RES:    5271209    5278411   Rescheduling interrupts 
CAL:        433        693   Function call interrupts 
TLB:    2917013    2903216   TLB shootdowns 
TRM:          0          0   Thermal event interrupts 
THR:          0          0   Threshold APIC interrupts 
MCE:          0          0   Machine check exceptions 
MCP:       1061       1061   Machine check polls 
ERR:          0 
MIS:          0 

/dev/ttyS1, Line 1, UART: 16550A, Port: 0x1c90, IRQ: 17 
    Baud_base: 115200, close_delay: 50, divisor: 0 
    closing_wait: none 
    Flags: spd_normal skip_test 

/var/www#  setserial /dev/ttyS0 -a 
/dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4 
    Baud_base: 115200, close_delay: 50, divisor: 0 
    closing_wait: 3000 
    Flags: spd_normal skip_test

How do I get rid of the busy message?

TIA

Ethan

Moderator's Comments:
Mod Comment Please use code tags next time for your code and data. Thanks
# 2  
Old 10-03-2014
Mayhap it IS busy? What be the output of lsof /dev/ttyS0?
# 3  
Old 10-03-2014
The IRQ of your serial port hasn't been relevant for about 20 years.

Depending on how your serial port is configured, it may expect RTS/CTS or DTR/DSR handshaking before it will communicate(i.e. will consider the connection 'closed' when certain control lines aren't just right). You can configure this with stty. I think this turns it off.

Code:
stty -f /dev/ttyS0 -crtscts -cdtrdsr

This User Gave Thanks to Corona688 For This Post:
# 4  
Old 10-04-2014
Thanks RudiC


Code:
lsof /dev/ttyS0
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
screen 28323 root 6u CHR 4,64 0t0 1119 /dev/ttyS0

The output is from scale which transmits via a rs232 link.

I can see the output on the screen, in ASCII characters.
# 5  
Old 10-04-2014
Quote:
Originally Posted by Meow613
I can see the output on the screen, in ASCII characters.
That, obviously, would be what has it open.

Close that screen session.
# 6  
Old 10-04-2014
Thanks Corona688

Code:
cat < /dev/ttyS0 > myfile
bash: /dev/ttyS0: Device or resource busy

No screen program running
# 7  
Old 10-05-2014
Sometimes a serial transfer can be a RPITA...
There is usually a buffer of _at_least_ 256 bytes to fill first, so........
........try this sequence of events as a starter test mode from root TO assume a 3 wire system only:-
(RTS and CTS should be ignored using the below.)
Code:
1) Close down your terminal completely and do a reboot of your machine.
2) In root mode open up a new terminal then...
3) Number 4) below is optional...
4) chmod 666 /dev/ttyS0
5) Check the status of your /dev/ttyS0
6) Note that your stty might need -f instead of -F and may already be at 9600bps...
7) stty -F /dev/ttyS0
8) Set up the on board serial I/O to 9600bps and RAW data transfer, in my case, for PCLinuxOS and Debian.
9) Again note that your stty might need -f instead of -F ...
10) stty -F /dev/ttyS0 9600
11) stty -F /dev/ttyS0 raw
12) Finally, again check the status of your /dev/ttyS0
13) And again, note that your stty might need -f instead of -F ...
14) stty -F /dev/ttyS0
15) Now start printing, (blocks of?), characters to the terminal window...
16) cat < /dev/ttyS0
17) It might take a second or so to fill your default serial buffer and may display a 256 byte  burst on each access so be aware.

Hope this works for you...
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Solaris

Cabling and adapters to communicate to service processor serial port from Windows PC with USB port.

Hello, I have an unloaded T5140 machine and want to access the ILOM for the first time and subsequently the network port after that., and then load Solaris 10 the final January 2011 build. The first part is what confuses me -the cabling. I am coming from a Windows machine (w/appropriate... (5 Replies)
Discussion started by: joboy
5 Replies

2. Programming

Wrong data with Read from a serial port.

hi, I've a problem on my C/C++ program with Posix Library. I have to read data from the serial but I have incorrect data, in fact I get a bunch of zeros: "2953.3174, 2785.2126, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0 , 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ,... (24 Replies)
Discussion started by: enaud
24 Replies

3. Shell Programming and Scripting

reading from and writing to serial port

hello all, please any one can provide me the shell script to write data to /dev/ttyS1 and read responce from /dev/ttyS1 and compare the responce to some string .. thnxx ---------- Post updated at 03:35 PM ---------- Previous update was at 11:46 AM ---------- any body help me.. how do i... (1 Reply)
Discussion started by: yashwantkumar
1 Replies

4. Solaris

How to enable Serial port on ILOM, when Network Port is enabled in parallel

Hi Everyone, In my environment, I have few T5220. On the iLOM Management Card, I have both Network and Serial port are cabled, I don't have any issues while I try to connect using Network Management port, but when I try to connect the serial port for the same server which is actually connected... (3 Replies)
Discussion started by: bobby320
3 Replies

5. Shell Programming and Scripting

Need help with serial port

Hi, I have a external board connected to my serial port. I need to execute "shutdown -r now" command when system boot up. When system boots up it requires a username ans password. Then I need to run my command. I can use rc script but that is rebooting system before it asks for username and... (0 Replies)
Discussion started by: charlie.arya
0 Replies

6. Solaris

Serial port on the T5140

What is the serial port on the T5140 used for. (4 Replies)
Discussion started by: pgsanders
4 Replies

7. SCO

data transfer from serial port

dear sir, pls. can you help me ? , my os is unix sco 5.0.4 and ,server dat derive (1,4gb) not working, now i want to transfer my server data in other machine (unix/other possible) by serial port/other port comminication. thanks pankaj raval (2 Replies)
Discussion started by: pankajbraval
2 Replies

8. Programming

serial port reading

Hai there, Can any one provide me with a ansi c source code for opening com1 or com2 and read data. The port is connected to another serial communication device on rs232 port. The o/s is Sco Unix 5.0.6 Matter urgent Viswanath (0 Replies)
Discussion started by: viswanath
0 Replies

9. Programming

Reading incoming data in serial ports

Hi every body, i have the following problem : I need to read incoming data from a serial port, this port has connected a weigth device to it that send the weigth and i need to read this data to my aplication, i had this problem in Window Enviroment and i resolve with a "C" routine, but in Unix... (1 Reply)
Discussion started by: jricardorm
1 Replies
Login or Register to Ask a Question