Files
firmware/right/src/usb_protocol_handler.c
2018-03-30 11:18:31 +02:00

115 lines
3.8 KiB
C

#include "usb_protocol_handler.h"
#include "buffer.h"
#include "usb_commands/usb_command_get_device_property.h"
#include "usb_commands/usb_command_get_module_property.h"
#include "usb_commands/usb_command_reenumerate.h"
#include "usb_commands/usb_command_set_test_led.h"
#include "usb_commands/usb_command_write_config.h"
#include "usb_commands/usb_command_apply_config.h"
#include "usb_commands/usb_command_set_led_pwm_brightness.h"
#include "usb_commands/usb_command_get_adc_value.h"
#include "usb_commands/usb_command_launch_eeprom_transfer.h"
#include "usb_commands/usb_command_read_config.h"
#include "usb_commands/usb_command_get_device_state.h"
#include "usb_commands/usb_command_get_debug_buffer.h"
#include "usb_commands/usb_command_jump_to_module_bootloader.h"
#include "usb_commands/usb_command_send_kboot_command_to_module.h"
#include "usb_commands/usb_command_get_slave_i2c_errors.h"
#include "usb_commands/usb_command_set_i2c_baud_rate.h"
#include "usb_commands/usb_command_switch_keymap.h"
void UsbProtocolHandler(void)
{
bzero(GenericHidOutBuffer, USB_GENERIC_HID_OUT_BUFFER_LENGTH);
uint8_t command = GetUsbRxBufferUint8(0);
switch (command) {
case UsbCommandId_GetDeviceProperty:
UsbCommand_GetDeviceProperty();
break;
case UsbCommandId_Reenumerate:
UsbCommand_Reenumerate();
break;
case UsbCommandId_JumpToModuleBootloader:
UsbCommand_JumpToModuleBootloader();
break;
case UsbCommandId_SendKbootCommandToModule:
UsbCommand_SendKbootCommandToModule();
break;
case UsbCommandId_ReadConfig:
UsbCommand_ReadConfig();
break;
case UsbCommandId_WriteHardwareConfig:
UsbCommand_WriteConfig(ConfigBufferId_HardwareConfig);
break;
case UsbCommandId_WriteStagingUserConfig:
UsbCommand_WriteConfig(ConfigBufferId_StagingUserConfig);
break;
case UsbCommandId_ApplyConfig:
UsbCommand_ApplyConfig();
break;
case UsbCommandId_LaunchEepromTransfer:
UsbCommand_LaunchEepromTransfer();
break;
case UsbCommandId_GetDeviceState:
UsbCommand_GetKeyboardState();
break;
case UsbCommandId_SetTestLed:
UsbCommand_SetTestLed();
break;
case UsbCommandId_GetDebugBuffer:
UsbCommand_GetDebugBuffer();
break;
case UsbCommandId_GetAdcValue:
UsbCommand_GetAdcValue();
break;
case UsbCommandId_SetLedPwmBrightness:
UsbCommand_SetLedPwmBrightness();
break;
case UsbCommandId_GetModuleProperty:
UsbCommand_GetModuleProperty();
break;
case UsbCommandId_GetSlaveI2cErrors:
UsbCommand_GetSlaveI2cErrors();
break;
case UsbCommandId_SetI2cBaudRate:
UsbCommand_SetI2cBaudRate();
break;
case UsbCommandId_SwitchKeymap:
UsbCommand_SwitchKeymap();
break;
default:
SetUsbTxBufferUint8(0, UsbStatusCode_InvalidCommand);
break;
}
}
uint8_t GetUsbRxBufferUint8(uint32_t offset)
{
return GetBufferUint8(GenericHidInBuffer, offset);
}
uint16_t GetUsbRxBufferUint16(uint32_t offset)
{
return GetBufferUint16(GenericHidInBuffer, offset);
}
uint32_t GetUsbRxBufferUint32(uint32_t offset)
{
return GetBufferUint32(GenericHidInBuffer, offset);
}
void SetUsbTxBufferUint8(uint32_t offset, uint8_t value)
{
SetBufferUint8(GenericHidOutBuffer, offset, value);
}
void SetUsbTxBufferUint16(uint32_t offset, uint16_t value)
{
SetBufferUint16(GenericHidOutBuffer, offset, value);
}
void SetUsbTxBufferUint32(uint32_t offset, uint32_t value)
{
SetBufferUint32(GenericHidOutBuffer, offset, value);
}