Browse Source

RN42 driver: small cleanups (#18310)

* RN42 driver: small cleanups

* Include header

* Fix mouse report per RN42 UG

* Spacing for consistency
pull/18352/head
Ryan 1 year ago
committed by GitHub
parent
commit
f20883fef1
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 15 deletions
  1. +18
    -14
      drivers/bluetooth/rn42.c
  2. +3
    -1
      drivers/bluetooth/rn42.h

+ 18
- 14
drivers/bluetooth/rn42.c View File

@ -14,6 +14,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "rn42.h"
#include "report.h"
#include "uart.h"
@ -69,33 +71,35 @@ void rn42_send_keyboard(report_keyboard_t *report) {
uart_write(0xFD);
uart_write(0x09);
uart_write(0x01);
uart_write(report->mods);
uart_write(0x00);
for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) {
uart_write(report->keys[i]);
}
uart_write(report->keys[0]);
uart_write(report->keys[1]);
uart_write(report->keys[2]);
uart_write(report->keys[3]);
uart_write(report->keys[4]);
uart_write(report->keys[5]);
}
void rn42_send_mouse(report_mouse_t *report) {
uart_write(0xFD);
uart_write(0x00);
uart_write(0x03);
uart_write(0x05);
uart_write(0x02);
uart_write(report->buttons);
uart_write(report->x);
uart_write(report->y);
uart_write(report->v); // should try sending the wheel v here
uart_write(report->h); // should try sending the wheel h here
uart_write(0x00);
uart_write(report->v);
}
void rn42_send_consumer(uint16_t data) {
static uint16_t last_data = 0;
if (data == last_data) return;
last_data = data;
uint16_t bitmap = rn42_consumer_usage_to_bitmap(data);
void rn42_send_consumer(uint16_t usage) {
uint16_t bitmap = rn42_consumer_usage_to_bitmap(usage);
uart_write(0xFD);
uart_write(0x03);
uart_write(0x03);
uart_write(bitmap & 0xFF);
uart_write((bitmap >> 8) & 0xFF);
uart_write(bitmap >> 8);
}

+ 3
- 1
drivers/bluetooth/rn42.h View File

@ -14,6 +14,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdint.h>
#include "report.h"
void rn42_init(void);
@ -22,4 +24,4 @@ void rn42_send_keyboard(report_keyboard_t *report);
void rn42_send_mouse(report_mouse_t *report);
void rn42_send_consumer(uint16_t data);
void rn42_send_consumer(uint16_t usage);

Loading…
Cancel
Save