Make UsbCommand_GetModuleProperty() branch based on modulePropertyId

This commit is contained in:
László Monda
2018-01-15 00:04:22 +01:00
parent f5716bdadc
commit a0803875c4
2 changed files with 15 additions and 6 deletions

View File

@@ -12,10 +12,15 @@ void UsbCommand_GetModuleProperty()
SetUsbTxBufferUint8(0, UsbStatusCode_GetModuleProperty_InvalidModuleSlotId);
}
module_property_id_t modulePropertyId = GetUsbRxBufferUint8(2);
switch (modulePropertyId) {
case ModulePropertyId_VersionNumbers: {
uint8_t moduleDriverId = SLOT_ID_TO_UHK_MODULE_DRIVER_ID(slotId);
uhk_module_state_t *moduleState = UhkModuleStates + moduleDriverId;
GenericHidOutBuffer[1] = moduleState->moduleId;
memcpy(GenericHidOutBuffer + 2, &moduleState->moduleProtocolVersion, sizeof(version_t));
memcpy(GenericHidOutBuffer + 2 + sizeof(version_t), &moduleState->firmwareVersion, sizeof(version_t));
memcpy(GenericHidOutBuffer + 8, &moduleState->firmwareVersion, sizeof(version_t));
break;
}
}
}

View File

@@ -7,6 +7,10 @@
// Typedefs:
typedef enum {
ModulePropertyId_VersionNumbers = 0,
} module_property_id_t;
typedef enum {
UsbStatusCode_GetModuleProperty_InvalidModuleSlotId = 2,
} usb_status_code_get_module_property_t;