Skip to content

Latest commit

 

History

History
103 lines (84 loc) · 9.1 KB

README.md

File metadata and controls

103 lines (84 loc) · 9.1 KB

Serial4j-API:

A Java terminal IO library designed to communicate and control the serial (RS232) drivers.

The Serial4j Architectural HAL:

image

Serial4j is a terminal I/O library primarily built on top of POSIX base file API <fcntl> for file control operations, <unistd> for Unix std R/W operations, <dirent> for directory entry dir operations, and <sys/ioctl> for controlling modem bits.

Quick Overview:

Software Specification:

Contents Specifications
Problem Definition Controlling the serial ports with the most possible minimalistic approach without irrelevant multithreading/processing bloatware.
How does Serial4j approach the problem? Serial4j ports the Unix/POSIX standard terminal IO library to the Java platform without adding extra threading stuff, leaving them to the user application, the framework is sub-divided into layered APIs, of which the classes starting with Native- prefix acts as the literal native library.
Does Serial4j provide a threading/processing model? No, it doesn't; but as it evolves, it may provide a threading model, however mostly on a different module.
Can I use libserial4j dynamic library only? Yes, you can do this and there are ongoing optimizations to remove the JNI source binaries for C++ applications cross-compatibility.
Is it easy to build my own serial monitor on top of Serial4j? Yes, yes, and yes, the serial/monitor package has the right tools!
From where should I start, should I learn the Unix/POSIX interface first? Currently, you can start testing the examples provided in the serial4j-examples modules, but knowing how the Unix terminal works will help you to understand the bit manipulations taking place at the terminal flags part.
What about other operating systems and machines? The library hasn't been tested on Windows, Mac, and