zoukankan      html  css  js  c++  java
  • Using Virtual Serial Ports on Linux (Ubuntu)

    http://www.xappsoftware.com/wordpress/2013/10/07/using-virtual-serial-ports-on-linux-ubuntu/?goback=%2Egde_65688_member_5792872722853814274#%21

    A virtual serial port is a redirector without network software support which is usually used to create a pair of back-to-back virtual COM ports on the same computer. Two legacy applications can then communicate using virtual serial ports instead of conventional inter-process communication mechanisms such as named pipes.

    This type of software is capable of emulating all serial port functionality, including Baud rate, data bits, parity bits, stop bits, etc. Additionally, it allows the data flow to be controlled, emulating all signal lines (DTR/DSR/CTS/RTS/DCD/RI) and customizing pinout.

    Often I write software for embedded devices, and they have to exchange data with a PC. Since the devices often, if we don't want to say "always", aren't available during the development phase I have to simulate the connection in other ways. When I have to use UARTs to communicate, I use a tool which generates 2 virtual ports and then joins them back to back.

    9-pinout

    The software I use on Linux is socat, it is a very complex software and it can do a lot of other things, maybe in another article I'll show other functionalities of socat.

    Socat Man Page: "Socat  is  a  command  line based utility that establishes two bidirectional byte streams and transfers data between them. Because the streams can be constructed from a large set of  different  types  of  data  sinks  and  sources (see address types), and because lots of address options may be applied to the streams, socat can be used for many different purposes."

    However let's try socat:

    Installation on Ubuntu

    To install socat on Ubuntu (I'm using 12.04) just run the following command:

    # sudo apt-get install socat

    Setting up two serial lines

    now on a terminal window run socat

    # socat -d -d PTY PTY:

    The output should look like the following one:

    2013/09/20 14:07:10 socat[6871] N PTY is /dev/pts/5
    2013/09/20 14:07:10 socat[6871] N PTY is /dev/pts/6
    2013/09/20 14:07:10 socat[6871] N starting data transfer loop with FDs [3,3] and [5,5]

    Now you have two "serial" ports connected back to back

    Testing the ports

    open a new terminal and issue the following command

    # sudo cat /dev/pts/5
    
    

    open a new terminal and issue the following command

    # sudo echo "Hello World" > /dev/pts/6
    
    

    On the first terminal you should see the string "Hello World".

    That's all, nothing more.

  • 相关阅读:
    oracle 与mysql 的当前时间比较
    easyui 时间定格为 时分
    date类型数据插入
    mac 获取idea&&datagrip激活码
    静态代码块
    nginx mac 下启动 停止 重启,查看安装位置
    定时任务的时间规则
    雅酷帮微信公众平台操作手册
    微信公众平台中通过网页增加好友
    微信公众平台消息接口开发之微信浏览器HTTP_USER_AGENT判断
  • 原文地址:https://www.cnblogs.com/baiyw/p/3437117.html
Copyright © 2011-2022 走看看