diff --git a/right/src/usb_commands/usb_command_get_property.c b/right/src/usb_commands/usb_command_get_property.c index e6e06b2..52781d9 100644 --- a/right/src/usb_commands/usb_command_get_property.c +++ b/right/src/usb_commands/usb_command_get_property.c @@ -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: diff --git a/right/src/usb_commands/usb_command_get_property.h b/right/src/usb_commands/usb_command_get_property.h index 49ad325..db86e11 100644 --- a/right/src/usb_commands/usb_command_get_property.h +++ b/right/src/usb_commands/usb_command_get_property.h @@ -1,22 +1,13 @@ #ifndef __USB_COMMAND_GET_PROPERTY_H__ #define __USB_COMMAND_GET_PROPERTY_H__ -// Macros: - - #define SYSTEM_PROPERTY_USB_PROTOCOL_VERSION 1 - #define SYSTEM_PROPERTY_BRIDGE_PROTOCOL_VERSION 1 - #define SYSTEM_PROPERTY_DATA_MODEL_VERSION 1 - #define SYSTEM_PROPERTY_FIRMWARE_VERSION 1 - // Typedefs: typedef enum { - SystemPropertyId_UsbProtocolVersion = 0, - SystemPropertyId_BridgeProtocolVersion = 1, - SystemPropertyId_DataModelVersion = 2, - SystemPropertyId_FirmwareVersion = 3, - SystemPropertyId_HardwareConfigSize = 4, - SystemPropertyId_UserConfigSize = 5, + DevicePropertyId_DeviceProtocolVersion = 0, + DevicePropertyId_EveryProtocolVersion = 1, + DevicePropertyId_HardwareConfigSize = 4, + DevicePropertyId_UserConfigSize = 5, } system_property_t; typedef enum {