Add system properties.
This commit is contained in:
@@ -1,18 +1,41 @@
|
||||
#include "usb_protocol_handler.h"
|
||||
#include "system_properties.h"
|
||||
#include "test_led.h"
|
||||
|
||||
void GetProtocolVersion();
|
||||
void SetError(uint8_t error);
|
||||
void SetGenericError();
|
||||
void UsbProtocolHandler();
|
||||
void GetSystemProperty();
|
||||
void JumpToBootloader();
|
||||
void GetSetTestLed();
|
||||
void WriteLedDriver();
|
||||
void ReadLedDriver();
|
||||
|
||||
// Functions for setting error statuses
|
||||
|
||||
void SetError(uint8_t error) {
|
||||
GenericHidOutBuffer[0] = error;
|
||||
}
|
||||
|
||||
void SetGenericError()
|
||||
{
|
||||
SetError(PROTOCOL_RESPONSE_GENERIC_ERROR);
|
||||
}
|
||||
|
||||
// Set a single byte as the response.
|
||||
void SetResponseByte(uint8_t response)
|
||||
{
|
||||
GenericHidOutBuffer[1] = response;
|
||||
}
|
||||
|
||||
// The main protocol handler function
|
||||
|
||||
void UsbProtocolHandler()
|
||||
{
|
||||
uint8_t command = GenericHidInBuffer[0];
|
||||
switch (command) {
|
||||
case USB_COMMAND_GET_PROTOCOL_VERSION:
|
||||
GetProtocolVersion();
|
||||
case USB_COMMAND_GET_SYSTEM_PROPERTY:
|
||||
GetSystemProperty();
|
||||
break;
|
||||
case USB_COMMAND_JUMP_TO_BOOTLOADER:
|
||||
JumpToBootloader();
|
||||
@@ -31,8 +54,28 @@ void UsbProtocolHandler()
|
||||
}
|
||||
}
|
||||
|
||||
void GetProtocolVersion() {
|
||||
GenericHidOutBuffer[1] = 1;
|
||||
// Per command protocol command handlers
|
||||
|
||||
void GetSystemProperty() {
|
||||
uint8_t propertyId = GenericHidInBuffer[1];
|
||||
|
||||
switch (propertyId) {
|
||||
case SYSTEM_PROPERTY_USB_PROTOCOL_VERSION_ID:
|
||||
SetResponseByte(SYSTEM_PROPERTY_USB_PROTOCOL_VERSION);
|
||||
break;
|
||||
case SYSTEM_PROPERTY_BRIDGE_PROTOCOL_VERSION_ID:
|
||||
SetResponseByte(SYSTEM_PROPERTY_BRIDGE_PROTOCOL_VERSION);
|
||||
break;
|
||||
case SYSTEM_PROPERTY_DATA_MODEL_VERSION_ID:
|
||||
SetResponseByte(SYSTEM_PROPERTY_DATA_MODEL_VERSION);
|
||||
break;
|
||||
case SYSTEM_PROPERTY_FIRMWARE_VERSION_ID:
|
||||
SetResponseByte(SYSTEM_PROPERTY_FIRMWARE_VERSION);
|
||||
break;
|
||||
default:
|
||||
SetGenericError();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void JumpToBootloader() {
|
||||
|
||||
Reference in New Issue
Block a user