Skip to content

KSerial v1.0.6

Choose a tag to compare

@GtechGovind GtechGovind released this 09 Nov 10:03
· 3 commits to master since this release

Auto-Reconnection:

Added automatic reconnection with a configurable retry delay. This ensures the connection is re-established if lost, enhancing reliability in unstable environments.
Connection Status Flow:

Integrated StateFlow to broadcast real-time connection status, enabling subscribers to react to changes in connection.
Concurrency Safety:

Incorporated a Mutex (named communication) to ensure thread-safe access during read and write operations, protecting against concurrency issues.
Failure Handling & Retry Logic:

Introduced a configurable maxFailureCount to automatically disconnect after a series of consecutive failures, preventing potential deadlocks.
Added a responseFailureCounter to track failures, with an automatic reset upon successful operation.
Improved error handling by disconnecting and resetting the connection if the maximum failure threshold is reached.
Enhanced Logging:

Expanded logging to provide detailed information about connection status, data transmission, and errors, aiding in debugging and traceability.
Builder Pattern:

Implemented a Builder pattern for flexible instance creation, allowing configuration of parameters like baudRate, dataBits, stopBits, parity, retryDelay, readDelay, and maxFailureCount.
Helper Method for Port Discovery:

Added a getPorts() method in a companion object to list all available serial ports, simplifying the process of selecting a port.
Connection Verification:

Added an ensureConnected() method that verifies and re-establishes the connection before every read/write operation to prevent attempts on a disconnected port.
Documentation and Comments:

Added detailed comments and documentation throughout the code, enhancing readability, maintainability, and usability.