UNPKG

@cygnus-reach/reach-protocol

Version:

Improve the Reachâ„  remote support experience with straightforward device interactions via the Reach Protocol.

55 lines (49 loc) • 3.11 kB
# Reach Protocol Web Client This library is designed to facilitate communication with devices that implement the Reach Protocol, using a user-defined transport method (e.g. BLE). Currently-supported services are: - Parameter Repository (discover, read, write, notify) - Commands (discover, send) - Command-Line Interface (send, receive) - Files (discover, download, upload) - Time (read, write) - WiFi (discover, connect, disconnect) # Usage Communication with a Reach-enabled device is achieved by creating a new `DeviceAccess` object, which provides methods for accessing state, reacting to events, and sending commands to the device. When creating a `DeviceAccess` object, a transport method must be provided that extends the `NetworkAccess` abstract class with implementations of the constructor and `sendBytes` method, along with calling the `received` method when bytes are received. # Changelog - 1.4.4 - Bugfixes to `readParameter` and `readParameters` to ensure returned values reflect the response(s) provided by the device to the request itself, rather than the most up-to-date parameter values upon receipt of the last response. - Added deduplication logic for `readParameters` when a list of parameter IDs is provided. - 1.4.3 - Bugfix to handling of headers with reported size over 255 bytes. - 1.4.2 - Removed outdated "read after timestamp" configuration from `readParameters`. - Removed abstract `connect` method from `NetworkAccess` due to lack of utility in varied implementation contexts. - Removed `connect` method from `DeviceAccess` for above-stated reason. - Added optional configuration to `pingString` method for consistency. - Improved TSDoc documentation of `DeviceAccess` and `NetworkAccess`. - 1.4.1 - Bugfix to WiFi service - Bugfix to classic header selection - 1.4.0 - Implemented request state handling for file transfers, including substantial changes to the `FileTransfer` class. - Updated to Reach Protocol 0.2.3. - Transitioned to new header format, with use of "classic" headers configurable in DeviceAccess. - 1.3.1 - Implemented request state handling for all categories except file transfers, including error responses. Core async functions now return upon a complete set of successful responses from the server, rather than upon the initial request being sent. - Updated structures to Reach Protocol 0.0.21 - Exposed access to timeout in read/write file functions - Bugfixes to handling of file transfer init response - Bugfixes to file and command discovery - 1.3.0 - Added support for parameter notifications and time service - Updated device info structure and message definitions to Reach Protocol 0.0.12 - 1.2.0 - Initial release with support for: - Get Device Info - Ping - Services: - Parameter Repository (discover, read, write) - Commands (discover, send) - Command-Line Interface - Files (discover, download, upload) - Known issue: `DeviceAccess` state not updated upon error reports and other device-reported failures.