From d2fd7bc613e9f3316ff11e616e956ddc80d82730 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Wed, 11 Oct 2017 15:32:57 +0200 Subject: [PATCH] Add conditions that external components must satisfy in regards to version numbers in order to be interface with the UHK. --- VERSIONING.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/VERSIONING.md b/VERSIONING.md index 5d7466e..800edcc 100644 --- a/VERSIONING.md +++ b/VERSIONING.md @@ -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 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 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 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 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 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 ## Firmware version