diff --git a/right/src/usb_commands/usb_command_get_property.c b/right/src/usb_commands/usb_command_get_property.c new file mode 100644 index 0000000..88ceaf7 --- /dev/null +++ b/right/src/usb_commands/usb_command_get_property.c @@ -0,0 +1,33 @@ +#include "fsl_common.h" +#include "usb_commands/usb_command_get_property.h" +#include "usb_protocol_handler.h" +#include "eeprom.h" + +void UsbCommand_GetProperty(void) +{ + uint8_t propertyId = GenericHidInBuffer[1]; + + switch (propertyId) { + case SystemPropertyId_UsbProtocolVersion: + SetUsbResponseByte(SYSTEM_PROPERTY_USB_PROTOCOL_VERSION); + break; + case SystemPropertyId_BridgeProtocolVersion: + SetUsbResponseByte(SYSTEM_PROPERTY_BRIDGE_PROTOCOL_VERSION); + break; + case SystemPropertyId_DataModelVersion: + SetUsbResponseByte(SYSTEM_PROPERTY_DATA_MODEL_VERSION); + break; + case SystemPropertyId_FirmwareVersion: + SetUsbResponseByte(SYSTEM_PROPERTY_FIRMWARE_VERSION); + break; + case SystemPropertyId_HardwareConfigSize: + SetUsbResponseWord(HARDWARE_CONFIG_SIZE); + break; + case SystemPropertyId_UserConfigSize: + SetUsbResponseWord(USER_CONFIG_SIZE); + break; + default: + SetUsbError(1); + break; + } +} diff --git a/right/src/system_properties.h b/right/src/usb_commands/usb_command_get_property.h similarity index 82% rename from right/src/system_properties.h rename to right/src/usb_commands/usb_command_get_property.h index 14ea8ba..3bee2cd 100644 --- a/right/src/system_properties.h +++ b/right/src/usb_commands/usb_command_get_property.h @@ -1,5 +1,5 @@ -#ifndef __SYSTEM_PROPERTIES_H__ -#define __SYSTEM_PROPERTIES_H__ +#ifndef __USB_COMMAND_GET_PROPERTY_H__ +#define __USB_COMMAND_GET_PROPERTY_H__ // Macros: @@ -19,4 +19,8 @@ SystemPropertyId_UserConfigSize = 5, } system_property_t; +// Functions: + + void UsbCommand_GetProperty(void); + #endif diff --git a/right/src/usb_protocol_handler.c b/right/src/usb_protocol_handler.c index 2fdd7f7..08c3b55 100644 --- a/right/src/usb_protocol_handler.c +++ b/right/src/usb_protocol_handler.c @@ -1,5 +1,4 @@ #include "usb_protocol_handler.h" -#include "system_properties.h" #include "peripherals/test_led.h" #include "i2c_addresses.h" #include "peripherals/led_driver.h" @@ -18,6 +17,7 @@ #include "i2c_watchdog.h" #include "usb_commands/usb_command_apply_config.h" #include "usb_commands/usb_command_read_config.h" +#include "usb_commands/usb_command_get_property.h" uint8_t UsbDebugInfo[USB_GENERIC_HID_OUT_BUFFER_LENGTH]; @@ -40,35 +40,6 @@ void SetUsbResponseWord(uint16_t response) // Per command protocol command handlers -void getSystemProperty(void) -{ - uint8_t propertyId = GenericHidInBuffer[1]; - - switch (propertyId) { - case SystemPropertyId_UsbProtocolVersion: - SetUsbResponseByte(SYSTEM_PROPERTY_USB_PROTOCOL_VERSION); - break; - case SystemPropertyId_BridgeProtocolVersion: - SetUsbResponseByte(SYSTEM_PROPERTY_BRIDGE_PROTOCOL_VERSION); - break; - case SystemPropertyId_DataModelVersion: - SetUsbResponseByte(SYSTEM_PROPERTY_DATA_MODEL_VERSION); - break; - case SystemPropertyId_FirmwareVersion: - SetUsbResponseByte(SYSTEM_PROPERTY_FIRMWARE_VERSION); - break; - case SystemPropertyId_HardwareConfigSize: - SetUsbResponseWord(HARDWARE_CONFIG_SIZE); - break; - case SystemPropertyId_UserConfigSize: - SetUsbResponseWord(USER_CONFIG_SIZE); - break; - default: - SetUsbError(1); - break; - } -} - void reenumerate(void) { Wormhole.magicNumber = WORMHOLE_MAGIC_NUMBER; @@ -193,8 +164,8 @@ void UsbProtocolHandler(void) bzero(GenericHidOutBuffer, USB_GENERIC_HID_OUT_BUFFER_LENGTH); uint8_t command = GenericHidInBuffer[0]; switch (command) { - case UsbCommandId_GetSystemProperty: - getSystemProperty(); + case UsbCommandId_GetProperty: + UsbCommand_GetProperty(); break; case UsbCommandId_Reenumerate: reenumerate(); diff --git a/right/src/usb_protocol_handler.h b/right/src/usb_protocol_handler.h index 1e1f4df..5a7e301 100644 --- a/right/src/usb_protocol_handler.h +++ b/right/src/usb_protocol_handler.h @@ -8,7 +8,7 @@ // Typedefs: typedef enum { - UsbCommandId_GetSystemProperty = 0, + UsbCommandId_GetProperty = 0, UsbCommandId_Reenumerate = 1, UsbCommandId_SetTestLed = 2, UsbCommandId_WriteLedDriver = 3,