@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
Markdown
# 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.