Expose version numbers via the get property interface.

This commit is contained in:
László Monda
2017-12-14 16:16:11 +01:00
parent 94af52892c
commit 494621a841
2 changed files with 46 additions and 25 deletions

View File

@@ -2,28 +2,58 @@
#include "usb_commands/usb_command_get_property.h"
#include "usb_protocol_handler.h"
#include "eeprom.h"
#include "versions.h"
version_t deviceProtocolVersion = {
DEVICE_PROTOCOL_MAJOR_VERSION,
DEVICE_PROTOCOL_MINOR_VERSION,
DEVICE_PROTOCOL_PATCH_VERSION,
};
version_t everyProtocolVersion[] =
{
{
FIRMWARE_MAJOR_VERSION,
FIRMWARE_MINOR_VERSION,
FIRMWARE_PATCH_VERSION,
},
{
DEVICE_PROTOCOL_MAJOR_VERSION,
DEVICE_PROTOCOL_MINOR_VERSION,
DEVICE_PROTOCOL_PATCH_VERSION,
},
{
MODULE_PROTOCOL_MAJOR_VERSION,
MODULE_PROTOCOL_MINOR_VERSION,
MODULE_PROTOCOL_PATCH_VERSION,
},
{
USER_CONFIG_MAJOR_VERSION,
USER_CONFIG_MINOR_VERSION,
USER_CONFIG_PATCH_VERSION,
},
{
HARDWARE_CONFIG_MAJOR_VERSION,
HARDWARE_CONFIG_MINOR_VERSION,
HARDWARE_CONFIG_PATCH_VERSION,
}
};
void UsbCommand_GetProperty(void)
{
uint8_t propertyId = GetUsbRxBufferUint8(1);
switch (propertyId) {
case SystemPropertyId_UsbProtocolVersion:
SetUsbTxBufferUint8(1, SYSTEM_PROPERTY_USB_PROTOCOL_VERSION);
case DevicePropertyId_DeviceProtocolVersion:
memcpy(GenericHidOutBuffer+1, (uint8_t*)&deviceProtocolVersion, sizeof(deviceProtocolVersion));
break;
case SystemPropertyId_BridgeProtocolVersion:
SetUsbTxBufferUint8(1, SYSTEM_PROPERTY_BRIDGE_PROTOCOL_VERSION);
case DevicePropertyId_EveryProtocolVersion:
memcpy(GenericHidOutBuffer+1, (uint8_t*)&everyProtocolVersion, sizeof(everyProtocolVersion));
break;
case SystemPropertyId_DataModelVersion:
SetUsbTxBufferUint8(1, SYSTEM_PROPERTY_DATA_MODEL_VERSION);
break;
case SystemPropertyId_FirmwareVersion:
SetUsbTxBufferUint8(1, SYSTEM_PROPERTY_FIRMWARE_VERSION);
break;
case SystemPropertyId_HardwareConfigSize:
case DevicePropertyId_HardwareConfigSize:
SetUsbTxBufferUint16(1, HARDWARE_CONFIG_SIZE);
break;
case SystemPropertyId_UserConfigSize:
case DevicePropertyId_UserConfigSize:
SetUsbTxBufferUint16(1, USER_CONFIG_SIZE);
break;
default: