Commit Graph
36 Commits
Author SHA1 Message Date
László Monda fd43e81e46 Query module key count and pointer count in separate messages instead of a combined message for better clarity. 2017-12-15 02:13:58 +01:00
László Monda c994a97d03 Make the modules transfer their firmware version to the device. Fix the message length of the module protocol version. 2017-12-15 01:42:58 +01:00
László Monda d59ba83d99 Make the modules transfer a module protocol version composed of a major, a minor and a patch number. 2017-12-15 01:28:13 +01:00
László Monda c1b887cea8 Rename UhkModulePhase_*ProtocolVersion to UhkModulePhase_*ModuleProtocolVersion. 2017-12-15 01:16:27 +01:00
László Monda 6a54944cb1 Make UsbCommand_JumpToModuleBootloader() more robust by not making it dependent on the state of the module driver. 2017-12-13 01:27:04 +01:00
László Monda 003f313947 Make UsbCommand_JumpToSlaveBootloader expect a slave slot id instead of a uhkModuleDriverId. 2017-11-06 00:32:08 +01:00
László Monda ef34094004 Add jump to slave bootloader command. 2017-10-12 19:57:41 +02:00
László Monda fd7f2c3b25 Expose the currently attached module ids via getKeyboardState() 2017-10-05 20:53:15 +02:00
László Monda bea13f063a UpperCamelCase UhkModuleStates now that it's a global. 2017-10-05 20:27:57 +02:00
László Monda 9842a6ff60 Merge UhkModuleVars into uhkModuleStates. Also make uhkModuleStates globally accessible because it must be accessed by other parts of the firmware, so it's unpractical to keep it private and write accessor functions for it. 2017-10-05 20:18:57 +02:00
László Monda 6be45c4521 Add uhk_module_state_t->isEnumerated and maintain its state. 2017-10-05 19:56:26 +02:00
László Monda 96eb2ef7a3 Make slaves send their protocol version to the master. 2017-10-05 17:55:59 +02:00
László Monda bd76fb44c2 Make slaves send their module id to the master. 2017-10-05 17:26:10 +02:00
László Monda 6658d62805 Group module phases. 2017-10-04 02:52:53 +02:00
László Monda c707f0e408 Transfer a synchronization message to make I2C recovery more robust. 2017-10-04 02:24:34 +02:00
László Monda 3079d527b1 Add uhk_slave_t.disconnect() callback so that upon disconnecting the left keyboard half, the left LED driver IC can be marked as disconnected too, so it'll be reinitialized upon reconnect. This usually didn't happen because LED states are cached so the LED drivers are rarely spoken to. 2017-10-01 02:47:29 +02:00
László Monda ea71253d6a Remove KEY_STATE_SIZE in favor of the more general BOOL_BYTES_TO_BITS_COUNT() macro. 2017-09-30 00:57:10 +02:00
László Monda c23d327384 Rename uhkModuleId to uhkModuleDriverId in UhkModuleSlaveDriver_Init() and UhkModuleSlaveDriver_Update() 2017-09-30 00:40:13 +02:00
László Monda 04047eb128 Make modules send their features (key count and whether they have pointer input) to the master upon enumeration. 2017-09-30 00:08:28 +02:00
László Monda 69f3c86185 Rename UhkModuleId_* to UhkModuleDriverId_*. 2017-09-28 23:26:58 +02:00
László Monda 6ec5140eca Add and initialize firmwareI2cAddress and bootloaderI2cAddress to uhk_module_state_t. 2017-09-28 18:10:33 +02:00
László Monda f80a88c419 RX messages are per-module by nature, so instead of using a singleton, add rxMessage to uhk_module_state_t. 2017-09-28 17:17:30 +02:00
László Monda ef2c4a1e7f Add uhk_module_state_t containing module variables and phase. Merge uhkModuleTargetStates and uhkModulePhases to uhkModuleStates. 2017-09-28 17:06:56 +02:00
László Monda de21cfc07e Rename uhk_module_state_t to uhk_module_vars_t. 2017-09-28 16:57:46 +02:00
László Monda 8b5b224bf3 Compute KEY_STATE_SIZE the right way. 2017-09-28 04:05:44 +02:00
László Monda ecf1ad2468 Don't use the extern keyword for functions because it's redundant. 2017-09-28 02:37:55 +02:00
László Monda 9a4c49e9a6 Extract MAX_PWM_BRIGHTNESS. 2017-09-28 01:35:04 +02:00
László Monda b88c6e4291 Add i2c_message_t and use it all across the codebase. This will allow handling variable-length I2C messages and validation with minimal effort. The test LED and brightness PWM update features got temporarily broken and will fix them soon. 2017-09-25 03:03:14 +02:00
László Monda 2aa74853b5 Add UhkModulePhase_ProcessKeystates and extract relevant code into its section. 2017-09-22 03:13:53 +02:00
László Monda cc57daa674 Rename UhkModulePhase_SendTestLedCommand to UhkModulePhase_SetTestLed 2017-09-22 02:59:12 +02:00
László Monda 2e33a83e29 Rename UhkModulePhase_SendPwmBrightnessCommand to UhkModulePhase_SetLedPwmBrightness 2017-09-22 02:55:00 +02:00
László Monda 43c07dde21 Rename UhkModulePhase_SendKeystatesRequestCommand to UhkModulePhase_RequestKeyStates 2017-09-22 02:51:01 +02:00
László Monda 946d3c1451 Add kStatus_Uhk_IdleSlave and ditch the global IsI2cTransferScheduled. Make slave drivers return status_t and utilize that value instead. 2017-08-19 17:47:56 +02:00
László Monda 430c02f0ed Remove test actions and related code. 2017-08-19 13:32:02 +02:00
László Monda 7a45fd7e6c Add uhk_module_id_t. Use UhkModuleId_LeftKeyboardHalf in the Slaves array. Set UHK_MODULE_MAX_COUNT to 3. 2017-08-09 00:02:44 +02:00
László Monda fef35bf68e Rename slave_driver_uhk_module.[ch] to uhk_module_driver.[ch] 2017-08-06 16:06:40 +02:00