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:
László Monda
2017-10-11 15:32:57 +02:00
committed by GitHub
parent 7da33c606b
commit d2fd7bc613

View File

@@ -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