Add system properties.

This commit is contained in:
László Monda
2016-09-27 01:42:28 +02:00
parent 13a71ea826
commit 7855fa3f87
3 changed files with 71 additions and 10 deletions

View File

@@ -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() {