Add conditions that external components must satisfy in regards to version numbers in order to be interface with the UHK.
This commit is contained in:
@@ -14,6 +14,8 @@ The UHK USB protocol is used by the UHK to interact with the host system via USB
|
|||||||
* The minor number is bumped upon an extension of the protocol, such as adding a new protocol command ID, or utilizing a previously unutilized byte within the payload.
|
* The minor number is bumped upon an extension of the protocol, such as adding a new protocol command ID, or utilizing a previously unutilized byte within the payload.
|
||||||
* The patch number is bumped upon a protocol related implementation fix, for example adding a new validation check.
|
* The patch number is bumped upon a protocol related implementation fix, for example adding a new validation check.
|
||||||
|
|
||||||
|
In order for a host application to communicate with the UHK, its major USB protocol version must match, and its minor USB protocol version must be less or equal.
|
||||||
|
|
||||||
## Slave protocol version
|
## Slave protocol version
|
||||||
|
|
||||||
The Slave protocol is the I2C based application protocol of the UHK via which the master module (right keyboard half), and the slave modules (left keyboard half, left add-on, right add-on) communicate.
|
The Slave protocol is the I2C based application protocol of the UHK via which the master module (right keyboard half), and the slave modules (left keyboard half, left add-on, right add-on) communicate.
|
||||||
@@ -22,6 +24,8 @@ The Slave protocol is the I2C based application protocol of the UHK via which th
|
|||||||
* The minor number is bumped upon an extension of the protocol, such as adding a new protocol command ID, or extending the payload.
|
* The minor number is bumped upon an extension of the protocol, such as adding a new protocol command ID, or extending the payload.
|
||||||
* The patch number is bumped upon a protocol related implementation fix, for example adding a new validation check.
|
* The patch number is bumped upon a protocol related implementation fix, for example adding a new validation check.
|
||||||
|
|
||||||
|
In order for the master module to communicate with the slave modules, its major slave protocol version must match, and its minor slave protocol version must be less or equal.
|
||||||
|
|
||||||
## Data model version
|
## Data model version
|
||||||
|
|
||||||
The data model is the binary serialization format of the user configuration which includes keymaps, macros, and every other configuration item.
|
The data model is the binary serialization format of the user configuration which includes keymaps, macros, and every other configuration item.
|
||||||
@@ -30,6 +34,8 @@ The data model is the binary serialization format of the user configuration whic
|
|||||||
* The minor number is bumped upon an extension of the data model, such as using a previously unutilized interval of a type number to add a new item type.
|
* The minor number is bumped upon an extension of the data model, such as using a previously unutilized interval of a type number to add a new item type.
|
||||||
* The patch number is bumped upon a data model related implementation fix, for example adding a new validation check.
|
* The patch number is bumped upon a data model related implementation fix, for example adding a new validation check.
|
||||||
|
|
||||||
|
In order for a host application to parse the configuration of the UHK, its major data model version must match, and its minor data model version must be less or equal.
|
||||||
|
|
||||||
For the sake of completeness, it's worth mentioning that not only the (user) data model exists, but the hardware data model too which contains hardware-specific configuration items, such as ANSI vs ISO keyboard type. The hardware data model also has a version number field, but it's not expected to ever change so for the sake of simplicity, it's not included into changelog releases. The hardware configuration version is 1.0.0
|
For the sake of completeness, it's worth mentioning that not only the (user) data model exists, but the hardware data model too which contains hardware-specific configuration items, such as ANSI vs ISO keyboard type. The hardware data model also has a version number field, but it's not expected to ever change so for the sake of simplicity, it's not included into changelog releases. The hardware configuration version is 1.0.0
|
||||||
|
|
||||||
## Firmware version
|
## Firmware version
|
||||||
|
|||||||
Reference in New Issue
Block a user