Skip to content

vajdj/tty2comKm

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

It is a null modem / loop back kernel mode driver providing full duplex communication and handshaking signals.

It creates virtual serial ports pair that appears same as the real once to the application software.

##Use cases

  • Fully automate Junit testing and continuous integration
  • Custom protocols development and debugging
  • Serial port based application's scalability and performance testing
  • Can be used as a medium for inter/intra-process communication
  • Serial port communication sniffer or test sniffer application itself
  • GPS coordinates and robotics emulator/simulator
  • Application development when hardware is still not available
  • Test/debug different serial port device emulators like modem and faxes etc
  • Testing high level user space drivers
  • Segregate hardware issues from software bugs quickly during product development
  • Multiple producers/consumers sharing same channel application design development/testing
  • Development cost reduction across team
  • Add new functionality to existing application by inserting plugin between serial hardware and existing application
    [hw device]--[hw comport]--[plugin software (process data)]--[virtual comport]--[Existing application]
  • Write user space drivers for ex; multiplex several virtual connections on single physical GSM Modem line
  • Protocol converter engine software
  • Capture the output of Guest OS on virtual machine and re-direct it to a terminal program

##Features

  • Create standard, loopback or custom pinout connected serial devices
  • Software, hardware and no flow controls emulation
  • Parity, frame, overrun and line break events emulation
  • Control signals (RTS,DTR,CTS,DCD,RI,LOOP,DSR) and all serial port settings
  • Ring indicator line signal emulation
  • Create/destroy virtual serial ports dynamically directly from your application without reboot
  • Operating system specific serial port APIs and IOCTL supported
  • Serial ports can be deleted even when opened by an application (useful in automated testing)
  • Plug and play device emulated
  • Ports can be created automatically at system boots
  • Create large number of serial ports
  • Speed is directly proportional to your software/hardware configuration
  • Virtual box and VMware virtual machine supported
  • Multithreaded environment supported
  • Mismatched line settings causes garbled data as in real life and appropriate error event generation
  • API to control virtual ports directly from your application

##Demo application

##Build and Run See instructions in operating system specific directory for build scripts, udev rules, steps to install etc.

##Pins mapping

There are three connection configurations supported by this driver.

####Standard nulll modem

 tty2com0            tty2com1
     RXD -------------- TXD
     TXD -------------- RXD
     DTR -------------- DSR,DCD
 DSR,DCD -------------- DTR
     CTS -------------- RTS
     RTS -------------- CTS
     GND -------------- GND
  • TX of local port is connected to RX of remote port and vice-versa
  • DTR of the local port is connected to DSR and DCD of the remote port
  • RTS of the local port is connected to CTS of the remote port

####Standard loop back

   tty2com0            
     RXD -----]
     TXD -----]
     
     DTR -----]
 DSR,DCD -----]
 
     RTS -----]
     CTS -----]
  • TX of local port is connected to RX of local port and vice-versa
  • DTR of the local port is connected to DSR and DCD of the local port
  • RTS of the local port is connected to CTS of the local port

####Custom

The local pins RTS, DTR, DCD, DSR and RI can be connected to local/remote pins as desired.

Custom null modem :

 tty2com0            tty2com1
     RXD -------------- TXD
     TXD -------------- RXD
     RTS -------------- DSR,DCD
 DSR,DCD -------------- DTR
     CTS -------------- RTS
     GND -------------- GND

Custom loop back :

   tty2com0            
     RXD -----]
     TXD -----]
     
     RTS -----]
 DSR,DCD -----]
 
     DTR -----]
     CTS -----]

You can create all the configurations as per the application requirements.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 85.6%
  • Shell 12.1%
  • Makefile 2.3%