|
| 1 | +// Copyright 2023 Persama (@Persama) |
| 2 | +// SPDX-License-Identifier: GPL-2.0-or-later |
| 3 | +#pragma once |
| 4 | + |
| 5 | +#include "quantum.h" |
| 6 | + |
| 7 | + |
| 8 | +#define MAC_PRT G(S(KC_3)) |
| 9 | +#define MAC_PRTA G(S(KC_4)) |
| 10 | +#define WIN_PRTA G(S(KC_S)) |
| 11 | + |
| 12 | +#define RF_IDLE 0 |
| 13 | +#define RF_PAIRING 1 |
| 14 | +#define RF_LINKING 2 |
| 15 | +#define RF_CONNECT 3 |
| 16 | +#define RF_DISCONNECT 4 |
| 17 | +#define RF_SLEEP 5 |
| 18 | +#define RF_SNIF 6 |
| 19 | +#define RF_INVAILD 0XFE |
| 20 | +#define RF_ERR_STATE 0XFF |
| 21 | + |
| 22 | +#define CMD_POWER_UP 0XF0 |
| 23 | +#define CMD_SLEEP 0XF1 |
| 24 | +#define CMD_HAND 0XF2 |
| 25 | +#define CMD_SNIF 0XF3 |
| 26 | +#define CMD_24G_SUSPEND 0XF4 |
| 27 | +#define CMD_IDLE_EXIT 0XFE |
| 28 | + |
| 29 | +#define CMD_RPT_MS 0XE0 |
| 30 | +#define CMD_RPT_BYTE_KB 0XE1 |
| 31 | +#define CMD_RPT_BIT_KB 0XE2 |
| 32 | +#define CMD_RPT_CONSUME 0XE3 |
| 33 | +#define CMD_RPT_SYS 0XE4 |
| 34 | + |
| 35 | +#define CMD_SET_LINK 0XC0 |
| 36 | +#define CMD_SET_CONFIG 0XC1 |
| 37 | +#define CMD_GET_CONFIG 0XC2 |
| 38 | +#define CMD_SET_NAME 0XC3 |
| 39 | +#define CMD_GET_NAME 0XC4 |
| 40 | +#define CMD_CLR_DEVICE 0XC5 |
| 41 | +#define CMD_NEW_ADV 0XC7 |
| 42 | +#define CMD_RF_STS_SYSC 0XC9 |
| 43 | +#define CMD_SET_24G_NAME 0XCA |
| 44 | +#define CMD_GO_TEST 0XCF |
| 45 | +#define CMD_RF_DFU 0XB1 |
| 46 | + |
| 47 | +#define CMD_WRITE_DATA 0X80 |
| 48 | +#define CMD_READ_DATA 0X81 |
| 49 | + |
| 50 | +#define LINK_RF_24 0 |
| 51 | +#define LINK_BT_1 1 |
| 52 | +#define LINK_BT_2 2 |
| 53 | +#define LINK_BT_3 3 |
| 54 | +#define LINK_USB 4 |
| 55 | + |
| 56 | +#define UART_HEAD 0x5A |
| 57 | +#define FUNC_VALID_LEN 32 |
| 58 | +#define UART_MAX_LEN 64 |
| 59 | + |
| 60 | +#define SYS_SW_WIN 0xa1 |
| 61 | +#define SYS_SW_MAC 0xa2 |
| 62 | + |
| 63 | +#define RF_LINK_SHOW_TIME 300 |
| 64 | + |
| 65 | +#define HOST_USB_TYPE 0 |
| 66 | +#define HOST_BLE_TYPE 1 |
| 67 | +#define HOST_RF_TYPE 2 |
| 68 | + |
| 69 | +#define LINK_TIMEOUT (100 * 120) |
| 70 | +#define SLEEP_TIME_DELAY (100 * 360) |
| 71 | +#define POWER_DOWN_DELAY (24) |
| 72 | + |
| 73 | +#define RF_LONG_PRESS_DELAY 30 |
| 74 | +#define DEV_RESET_PRESS_DELAY 30 |
| 75 | + |
| 76 | +enum custom_keycodes { |
| 77 | + RF_DFU = QK_KB_0, |
| 78 | + LNK_USB, |
| 79 | + LNK_RF, |
| 80 | + LNK_BLE1, |
| 81 | + LNK_BLE2, |
| 82 | + LNK_BLE3, |
| 83 | + |
| 84 | + MAC_TASK, |
| 85 | + MAC_SEARCH, |
| 86 | + MAC_VOICE, |
| 87 | + MAC_CONSOLE, |
| 88 | + MAC_DND, |
| 89 | + |
| 90 | + WIN_LOCK, |
| 91 | + DEV_RESET, |
| 92 | + SLEEP_MODE, |
| 93 | + BAT_SHOW, |
| 94 | + RGB_TEST, |
| 95 | + SHIFT_GRV, |
| 96 | + |
| 97 | + SIDE_VAI, |
| 98 | + SIDE_VAD, |
| 99 | + SIDE_MOD, |
| 100 | + SIDE_HUI, |
| 101 | + SIDE_SPI, |
| 102 | + SIDE_SPD, |
| 103 | + |
| 104 | + LOGO_VAI, |
| 105 | + LOGO_VAD, |
| 106 | + LOGO_MOD, |
| 107 | + LOGO_HUI, |
| 108 | + LOGO_SPI, |
| 109 | + LOGO_SPD |
| 110 | +}; |
| 111 | + |
| 112 | + |
| 113 | +typedef enum { |
| 114 | + RX_Idle, |
| 115 | + RX_Receiving, |
| 116 | + RX_Done, |
| 117 | + RX_Fail, |
| 118 | + RX_OV_ERR, |
| 119 | + RX_SUM_ERR, |
| 120 | + RX_CMD_ERR, |
| 121 | + RX_DATA_ERR, |
| 122 | + RX_DATA_OV, |
| 123 | + RX_FORMAT_ERR, |
| 124 | + |
| 125 | + TX_OK = 0XE0, |
| 126 | + TX_DONE, |
| 127 | + TX_BUSY, |
| 128 | + TX_TIMEOUT, |
| 129 | + TX_DATA_ERR, |
| 130 | + |
| 131 | +} TYPE_RX_STATE; |
| 132 | + |
| 133 | +typedef struct |
| 134 | +{ |
| 135 | + uint8_t RXDState; |
| 136 | + uint8_t RXDLen; |
| 137 | + uint8_t RXDOverTime; |
| 138 | + uint8_t TXDLenBack; |
| 139 | + uint8_t TXDOffset; |
| 140 | + uint8_t TXDBuf[UART_MAX_LEN]; |
| 141 | + uint8_t RXDBuf[UART_MAX_LEN]; |
| 142 | +} USART_MGR_STRUCT; |
| 143 | + |
| 144 | +typedef struct |
| 145 | +{ |
| 146 | + uint8_t link_mode; |
| 147 | + uint8_t rf_channel; |
| 148 | + uint8_t ble_channel; |
| 149 | + uint8_t rf_state; |
| 150 | + uint8_t rf_charge; |
| 151 | + uint8_t rf_led; |
| 152 | + uint8_t rf_baterry; |
| 153 | + uint8_t sys_sw_state; |
| 154 | +} DEV_INFO_STRUCT; |
| 155 | + |
| 156 | + |
| 157 | +typedef struct |
| 158 | +{ |
| 159 | + uint8_t bit0: 1; |
| 160 | + uint8_t bit1: 1; |
| 161 | + uint8_t bit2: 1; |
| 162 | + uint8_t bit3: 1; |
| 163 | + uint8_t bit4: 1; |
| 164 | + uint8_t bit5: 1; |
| 165 | + uint8_t bit6: 1; |
| 166 | + uint8_t bit7: 1; |
| 167 | +}m_8bit; |
| 168 | + |
| 169 | + |
| 170 | +typedef struct |
| 171 | +{ |
| 172 | + uint8_t default_brightness_flag; |
| 173 | + uint8_t ee_side_mode; |
| 174 | + uint8_t ee_side_light; |
| 175 | + uint8_t ee_side_speed; |
| 176 | + uint8_t ee_side_rgb; |
| 177 | + uint8_t ee_side_colour; |
| 178 | + uint8_t ee_logo_mode; |
| 179 | + uint8_t ee_logo_light; |
| 180 | + uint8_t ee_logo_speed; |
| 181 | + uint8_t ee_logo_rgb; |
| 182 | + uint8_t ee_logo_colour; |
| 183 | + m_8bit ee_dev_config; |
| 184 | +} user_config_t; |
| 185 | + |
| 186 | + |
| 187 | + |
| 188 | +extern user_config_t user_config; |
| 189 | +#define f_dev_sleep_enable user_config.ee_dev_config.bit0 |
0 commit comments