yjx-sdk-mouse 0.1.9 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,6 +3,12 @@ import type { ButtonMapping, KeyPreset, MouseButtonSlot, MouseKeyMapping } from
3
3
  export declare class ButtonController {
4
4
  private readonly device;
5
5
  constructor(device: DeviceLayer);
6
+ private get isM3();
7
+ private parseReadback;
8
+ private readConfigArea;
9
+ private tryReadWriteArea;
10
+ private readAllKeys;
11
+ private buttonMappingsEqual;
6
12
  get(): Promise<ButtonMapping>;
7
13
  set(mapping: ButtonMapping): Promise<ButtonMapping>;
8
14
  setSlot(slot: MouseButtonSlot, preset: KeyPreset): Promise<ButtonMapping>;
@@ -1 +1 @@
1
- {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/controllers/button.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9F,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAE1C,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;IAM7B,GAAG,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAKnD,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;IAMzE,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC;IAKlC,SAAS,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAM9D,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAAG,MAAM;IAIpG,UAAU,IAAI,SAAS,EAAE;IAIzB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM;CAG1C"}
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/controllers/button.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAa9F,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAEhD,OAAO,KAAK,IAAI,GAGf;IAED,OAAO,CAAC,aAAa;YAQP,cAAc;YAKd,gBAAgB;YAchB,WAAW;IAQzB,OAAO,CAAC,mBAAmB;IAWrB,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;IAI7B,GAAG,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IA4BnD,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;IAMzE,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC;IAKlC,SAAS,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAM9D,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAAG,MAAM;IAIpG,UAAU,IAAI,SAAS,EAAE;IAIzB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM;CAG1C"}
@@ -1,17 +1,76 @@
1
- import { createDefaultButtonMapping, findPresetId, formatKeyLabel, keysToMapping, mappingToKeys, parseKeysResponse, presetToKey, readKeysPacket, writeKeysPacket, KEY_PRESETS, } from '../protocol/key.js';
1
+ import { BUTTON_SLOT_INDEX, BUTTON_SLOTS, createDefaultButtonMapping, findPresetId, formatKeyLabel, isM3Device, isValidKeyArea, keyAreasEqual, keysForWritePacket, keysToMapping, parseKeysResponse, presetToKey, readKeysPacket, readWriteKeysPacket, selectM3KeyReadback, writeKeysPacket, KEY_PRESETS, } from '../protocol/key.js';
2
+ const M3_WRITE_AREA_READ_TIMEOUT = 800;
3
+ const WRITE_READBACK_DELAYS = [40, 160];
4
+ const PRIMARY_BUTTON_INDICES = BUTTON_SLOTS.slice(0, 5).map((slot) => BUTTON_SLOT_INDEX[slot]);
5
+ const ALL_BUTTON_INDICES = BUTTON_SLOTS.map((slot) => BUTTON_SLOT_INDEX[slot]);
6
+ function delay(milliseconds) {
7
+ return new Promise((resolve) => setTimeout(resolve, milliseconds));
8
+ }
2
9
  export class ButtonController {
3
10
  device;
4
11
  constructor(device) {
5
12
  this.device = device;
6
13
  }
7
- async get() {
8
- const response = await this.device.sendAndWait(readKeysPacket());
14
+ get isM3() {
15
+ const current = this.device.currentDevice;
16
+ return isM3Device(current?.productName, current?.productId);
17
+ }
18
+ parseReadback(response, source) {
9
19
  const keys = parseKeysResponse(response);
10
- return keysToMapping(keys);
20
+ if (!isValidKeyArea(keys)) {
21
+ throw new Error(`${source}返回的按键数据不完整或格式无效`);
22
+ }
23
+ return keys;
24
+ }
25
+ async readConfigArea() {
26
+ const response = await this.device.sendAndWait(readKeysPacket());
27
+ return this.parseReadback(response, '配置区');
28
+ }
29
+ async tryReadWriteArea() {
30
+ try {
31
+ const response = await this.device.sendAndWait(readWriteKeysPacket(), M3_WRITE_AREA_READ_TIMEOUT);
32
+ const keys = parseKeysResponse(response);
33
+ return isValidKeyArea(keys) ? keys : [];
34
+ }
35
+ catch {
36
+ // 并非所有固件都允许读取 0x22A5;标准配置区仍可作为兼容回退。
37
+ return [];
38
+ }
39
+ }
40
+ async readAllKeys(expectedKeys = []) {
41
+ const configAreaKeys = await this.readConfigArea();
42
+ if (!this.isM3)
43
+ return configAreaKeys;
44
+ const writeAreaKeys = await this.tryReadWriteArea();
45
+ return selectM3KeyReadback(configAreaKeys, writeAreaKeys, expectedKeys);
46
+ }
47
+ buttonMappingsEqual(actual, expected) {
48
+ return keyAreasEqual(actual, expected, this.isM3 ? ALL_BUTTON_INDICES : PRIMARY_BUTTON_INDICES);
49
+ }
50
+ async get() {
51
+ return keysToMapping(await this.readAllKeys());
11
52
  }
12
53
  async set(mapping) {
13
- await this.device.sendWriteAndWait(writeKeysPacket(mappingToKeys(mapping)));
14
- return this.get();
54
+ const previous = await this.readAllKeys();
55
+ const keys = keysForWritePacket(mapping, previous);
56
+ const response = await this.device.sendWriteAndWait(writeKeysPacket(keys, this.isM3));
57
+ const echoedKeys = parseKeysResponse(response);
58
+ // 0x09 正常回包会回显写入内容。若设备明确回了另一组按键,不能让页面假装成功。
59
+ if (isValidKeyArea(echoedKeys)) {
60
+ const echoedIndices = (this.isM3 ? ALL_BUTTON_INDICES : PRIMARY_BUTTON_INDICES).filter((index) => echoedKeys.some((key) => key.index === index));
61
+ if (echoedIndices.length > 0 && !keyAreasEqual(echoedKeys, keys, echoedIndices)) {
62
+ throw new Error('设备返回的按键写入结果与请求不一致');
63
+ }
64
+ }
65
+ // 写回包只是接收确认;继续从设备读取,确认映射确实已落盘并生效。
66
+ for (const wait of WRITE_READBACK_DELAYS) {
67
+ await delay(wait);
68
+ const readback = await this.readAllKeys(keys);
69
+ if (this.buttonMappingsEqual(readback, keys)) {
70
+ return keysToMapping(readback);
71
+ }
72
+ }
73
+ throw new Error('按键写入后设备回读不一致,请重试或重新连接鼠标');
15
74
  }
16
75
  async setSlot(slot, preset) {
17
76
  const current = await this.get();
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/controllers/button.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,eAAe,EACf,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAI5B,MAAM,OAAO,gBAAgB;IACE;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,GAAG;QACP,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACzC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAsB;QAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAqB,EAAE,MAAiB;QACpD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,QAAQ,GAAG,0BAA0B,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAqB;QACnC,MAAM,QAAQ,GAAG,0BAA0B,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,WAAW,CAAC,GAAoB,EAAE,YAAyD;QACzF,OAAO,cAAc,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC3C,CAAC;IAED,UAAU;QACR,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,GAAoB;QAC9B,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/controllers/button.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -9,7 +9,7 @@ import type { EventHandler, MouseDeviceInfo, BatteryStatus, DeviceInfoPayload, M
9
9
  export * from './constants.js';
10
10
  export * from './types.js';
11
11
  export { toHex } from './protocol/packet.js';
12
- export { KEY_PRESETS, KEYBOARD_PRESETS, KEYBOARD_PRESET_IDS, COMMAND_PRESETS, COMMAND_PRESET_IDS, COMMAND_PRESET_GROUPS, BUTTON_SLOTS, BUTTON_SLOT_LABEL, BUTTON_SLOT_INDEX, createDefaultButtonMapping, formatKeyLabel, } from './protocol/key.js';
12
+ export { KEY_PRESETS, KEYBOARD_PRESETS, KEYBOARD_PRESET_IDS, COMMAND_PRESETS, COMMAND_PRESET_IDS, COMMAND_PRESET_GROUPS, BUTTON_SLOTS, BUTTON_SLOT_LABEL, BUTTON_SLOT_INDEX, M3_PRODUCT_IDS, isM3Device, isLegacyNonM3KeyTail, createDefaultButtonMapping, formatKeyLabel, } from './protocol/key.js';
13
13
  export { MAX_MACROS, MACRO_POINTER_AREA_SIZE, MACRO_HEADER_SIZE, MACRO_CHUNK_SIZE, MACRO_PROFILE_SIZE, MACRO_TOTAL_SIZE, encodeMacroActions, buildMacroData, buildMacroWritePackets, createMacroCommitPacket, macroAssignmentToKey, } from './protocol/macro.js';
14
14
  export type { CommandPresetGroup } from './protocol/command-presets.js';
15
15
  export default class Mouse {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ import { OtherController } from './controllers/other.js';
11
11
  export * from './constants.js';
12
12
  export * from './types.js';
13
13
  export { toHex } from './protocol/packet.js';
14
- export { KEY_PRESETS, KEYBOARD_PRESETS, KEYBOARD_PRESET_IDS, COMMAND_PRESETS, COMMAND_PRESET_IDS, COMMAND_PRESET_GROUPS, BUTTON_SLOTS, BUTTON_SLOT_LABEL, BUTTON_SLOT_INDEX, createDefaultButtonMapping, formatKeyLabel, } from './protocol/key.js';
14
+ export { KEY_PRESETS, KEYBOARD_PRESETS, KEYBOARD_PRESET_IDS, COMMAND_PRESETS, COMMAND_PRESET_IDS, COMMAND_PRESET_GROUPS, BUTTON_SLOTS, BUTTON_SLOT_LABEL, BUTTON_SLOT_INDEX, M3_PRODUCT_IDS, isM3Device, isLegacyNonM3KeyTail, createDefaultButtonMapping, formatKeyLabel, } from './protocol/key.js';
15
15
  export { MAX_MACROS, MACRO_POINTER_AREA_SIZE, MACRO_HEADER_SIZE, MACRO_CHUNK_SIZE, MACRO_PROFILE_SIZE, MACRO_TOTAL_SIZE, encodeMacroActions, buildMacroData, buildMacroWritePackets, createMacroCommitPacket, macroAssignmentToKey, } from './protocol/macro.js';
16
16
  export default class Mouse {
17
17
  deviceLayer;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,49 @@
1
1
  import type { ButtonMapping, KeyPreset, MouseButtonSlot, MouseKeyMapping } from '../types.js';
2
2
  export { KEYBOARD_PRESETS, KEYBOARD_PRESET_IDS } from './keyboard-presets.js';
3
3
  export { COMMAND_PRESETS, COMMAND_PRESET_IDS, COMMAND_PRESET_GROUPS, type CommandPresetGroup, } from './command-presets.js';
4
- /** 原厂 resetAllMouseKeys 默认按键区(packet[8..43],共 9 槽) */
4
+ /** 非 AJ139 旧协议的默认按键区(packet[8..43],共 9 槽) */
5
+ export declare const LEGACY_DEFAULT_KEY_AREA: number[];
5
6
  export declare const DEFAULT_KEY_AREA: number[];
6
- /** 设备按键区槽位数(含 DPI 槽,UI 映射不含 DPI) */
7
+ /** 设备按键区槽位数(包含未向 UI 暴露的 DPI 槽) */
7
8
  export declare const KEY_SLOT_COUNT = 9;
9
+ /** DPI 键在 9 槽协议中的 index(不在 BUTTON_SLOTS 中暴露) */
10
+ export declare const DPI_SLOT_INDEX = 5;
11
+ /** 已知带附加键和左右滚轮槽位的 AJ139 / M3 机型 PID */
12
+ export declare const M3_PRODUCT_IDS: readonly [8723, 8724];
8
13
  export declare const BUTTON_SLOTS: MouseButtonSlot[];
9
14
  export declare const BUTTON_SLOT_INDEX: Record<MouseButtonSlot, number>;
10
15
  export declare const BUTTON_SLOT_LABEL: Record<MouseButtonSlot, string>;
11
16
  /** 常用按键功能预设(与原厂 AJ159 V2 SE 驱动 keys.json 一致) */
12
17
  export declare const KEY_PRESETS: KeyPreset[];
18
+ export declare function createReadKeysPacket(address: number, offset: number): Uint8Array;
19
+ /** 从配置区读取完整的 9 槽按键数据。 */
13
20
  export declare function readKeysPacket(): Uint8Array;
14
- export declare function writeKeysPacket(keys: MouseKeyMapping[]): Uint8Array;
21
+ /** 从按键写区读取完整 9 槽(与 0x09 写入地址一致)。 */
22
+ export declare function readWriteKeysPacket(): Uint8Array;
23
+ export declare function isM3Device(productName?: string, productId?: number): boolean;
24
+ /** 配置区尾部残留的旧 6 键模板:滚轮上下 + 空槽。 */
25
+ export declare function isLegacyNonM3KeyTail(keys: MouseKeyMapping[]): boolean;
26
+ export declare function writeKeysPacket(keys: MouseKeyMapping[], extendedSlots?: boolean): Uint8Array;
15
27
  export declare function parseKeysResponse(data: Uint8Array): MouseKeyMapping[];
16
28
  export declare function formatKeyLabel(key: MouseKeyMapping, getMacroName?: (macroIndex: number) => string | undefined): string;
17
29
  export declare function keysToMapping(keys: MouseKeyMapping[]): ButtonMapping;
18
30
  export declare function mappingToKeys(mapping: ButtonMapping): MouseKeyMapping[];
31
+ export declare function isValidKeyArea(keys: MouseKeyMapping[]): boolean;
32
+ export declare function keyAreasEqual(left: MouseKeyMapping[], right: MouseKeyMapping[], indices?: readonly number[]): boolean;
33
+ /**
34
+ * 某些扩展按键机型的配置区 index 6/7/8 可能与写区不同步。
35
+ * 仅当写区读到有效数据时覆盖;绝不强行替换为默认值。
36
+ */
37
+ export declare function mergeExtendedKeySlots(baseKeys: MouseKeyMapping[], writeAreaKeys: MouseKeyMapping[]): MouseKeyMapping[];
38
+ /**
39
+ * AJ139 的 0x0BA5 配置区在部分固件上会长期保留默认值,而 0x22A5 写区才是当前映射。
40
+ * 优先采用与本次期望值一致的区域;无期望值时,仅在“配置区为默认、写区为自定义”时
41
+ * 整体采用写区,避免把原厂驱动写入的前五个按键误判回默认值。
42
+ */
43
+ export declare function selectM3KeyReadback(configAreaKeys: MouseKeyMapping[], writeAreaKeys: MouseKeyMapping[], expectedKeys?: MouseKeyMapping[]): MouseKeyMapping[];
44
+ export declare function applyExtendedSlotCache(keys: MouseKeyMapping[], cache: ReadonlyMap<number, MouseKeyMapping>): MouseKeyMapping[];
45
+ /** 写入时保留设备当前 DPI 槽;其余 8 个映射槽以 mapping 为准。 */
46
+ export declare function keysForWritePacket(mapping: ButtonMapping, previousKeys?: MouseKeyMapping[]): MouseKeyMapping[];
19
47
  export declare function presetToKey(preset: KeyPreset, index: number): MouseKeyMapping;
20
48
  export declare function findPresetId(key: MouseKeyMapping): string;
21
49
  export declare function createDefaultButtonMapping(): ButtonMapping;
@@ -1 +1 @@
1
- {"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../../src/protocol/key.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,kBAAkB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,EAAE,MAAM,EAUpC,CAAC;AAEF,oCAAoC;AACpC,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,eAAO,MAAM,YAAY,EAAE,eAAe,EASzC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAS7D,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAS7D,CAAC;AAEF,gDAAgD;AAChD,eAAO,MAAM,WAAW,EAAE,SAAS,EAkClC,CAAC;AAEF,wBAAgB,cAAc,IAAI,UAAU,CAW3C;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,UAAU,CAoBnE;AAOD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,EAAE,CAuBrE;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,eAAe,EACpB,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GACxD,MAAM,CAkBR;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,aAAa,CAgBpE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,eAAe,EAAE,CAKvE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CAQ7E;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAazD;AAED,wBAAgB,0BAA0B,IAAI,aAAa,CAM1D"}
1
+ {"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../../src/protocol/key.ts"],"names":[],"mappings":"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"}
@@ -4,20 +4,38 @@ import { KEYBOARD_PRESETS } from './keyboard-presets.js';
4
4
  import { COMMAND_PRESETS } from './command-presets.js';
5
5
  export { KEYBOARD_PRESETS, KEYBOARD_PRESET_IDS } from './keyboard-presets.js';
6
6
  export { COMMAND_PRESETS, COMMAND_PRESET_IDS, COMMAND_PRESET_GROUPS, } from './command-presets.js';
7
- /** 原厂 resetAllMouseKeys 默认按键区(packet[8..43],共 9 槽) */
7
+ /** 非 AJ139 旧协议的默认按键区(packet[8..43],共 9 槽) */
8
+ export const LEGACY_DEFAULT_KEY_AREA = [
9
+ 0x20, 0x01, 0x00, 0x00,
10
+ 0x20, 0x02, 0x00, 0x00,
11
+ 0x20, 0x04, 0x00, 0x00,
12
+ 0x20, 0x08, 0x00, 0x00,
13
+ 0x20, 0x10, 0x00, 0x00,
14
+ 0x21, 0x55, 0x00, 0x00,
15
+ 0x21, 0x38, 0x01, 0x00,
16
+ 0x21, 0x38, 0xff, 0x00,
17
+ 0x21, 0xaa, 0x00, 0x00,
18
+ ];
8
19
  export const DEFAULT_KEY_AREA = [
9
- 0x20, 0x01, 0x00, 0x00, // 左键
10
- 0x20, 0x02, 0x00, 0x00, // 右键
11
- 0x20, 0x04, 0x00, 0x00, // 中键
12
- 0x20, 0x08, 0x00, 0x00, // 后退
13
- 0x20, 0x10, 0x00, 0x00, // 前进
14
- 0x21, 0x55, 0x00, 0x00, // DPI 切换
15
- 0x20, 0x00, 0x00, 0x00, // 附加键(M3 默认禁用)
16
- 0x21, 0xf8, 0xff, 0x00, // 左滚
17
- 0x21, 0xf8, 0x01, 0x00, // 右滚
20
+ 0x20, 0x01, 0x00, 0x00, // index 0: 左键
21
+ 0x20, 0x02, 0x00, 0x00, // index 1: 右键
22
+ 0x20, 0x04, 0x00, 0x00, // index 2: 中键
23
+ 0x20, 0x08, 0x00, 0x00, // index 3: 后退
24
+ 0x20, 0x10, 0x00, 0x00, // index 4: 前进
25
+ 0x21, 0x55, 0x00, 0x00, // index 5: DPI 切换
26
+ 0x20, 0x00, 0x00, 0x00, // index 6: 附加键(默认禁用)
27
+ 0x21, 0xf8, 0xff, 0x00, // index 7: 左滚
28
+ 0x21, 0xf8, 0x01, 0x00, // index 8: 右滚
18
29
  ];
19
- /** 设备按键区槽位数(含 DPI 槽,UI 映射不含 DPI) */
30
+ /** 设备按键区槽位数(包含未向 UI 暴露的 DPI 槽) */
20
31
  export const KEY_SLOT_COUNT = 9;
32
+ /** DPI 键在 9 槽协议中的 index(不在 BUTTON_SLOTS 中暴露) */
33
+ export const DPI_SLOT_INDEX = 5;
34
+ /** 已知带附加键和左右滚轮槽位的 AJ139 / M3 机型 PID */
35
+ export const M3_PRODUCT_IDS = [0x2213, 0x2214];
36
+ const EXTENDED_SLOT_INDICES = [6, 7, 8];
37
+ const PRIMARY_BUTTON_SLOT_COUNT = 5;
38
+ const VALID_KEY_TYPES = new Set([0x10, 0x20, 0x21, 0x30, 0x70]);
21
39
  export const BUTTON_SLOTS = [
22
40
  'left',
23
41
  'right',
@@ -60,7 +78,7 @@ export const KEY_PRESETS = [
60
78
  { id: 'scroll-left', label: '向左滚动', type: 0x21, code1: 0xf8, code2: 0xff, code3: 0 },
61
79
  { id: 'scroll-right', label: '向右滚动', type: 0x21, code1: 0xf8, code2: 0x01, code3: 0 },
62
80
  { id: 'dpi', label: 'DPI 切换', type: 0x21, code1: 0x55, code2: 0, code3: 0 },
63
- { id: 'disable', label: '禁用', type: 0x20, code1: 0, code2: 0, code3: 0 },
81
+ { id: 'disable', label: '禁用', type: 0x20, code1: 0x00, code2: 0, code3: 0 },
64
82
  { id: 'play-pause', label: '播放/暂停', type: 0x30, code1: 0xcd, code2: 0, code3: 0 },
65
83
  { id: 'mute', label: '静音', type: 0x30, code1: 0xe2, code2: 0, code3: 0 },
66
84
  { id: 'stop', label: '停止播放', type: 0x30, code1: 0xb7, code2: 0, code3: 0 },
@@ -84,11 +102,11 @@ export const KEY_PRESETS = [
84
102
  ...COMMAND_PRESETS,
85
103
  ...KEYBOARD_PRESETS,
86
104
  ];
87
- export function readKeysPacket() {
105
+ export function createReadKeysPacket(address, offset) {
88
106
  return createPacket(Command.ReadShort, [
89
- READ_ADDRESS & 0xff,
90
- (READ_ADDRESS >> 8) & 0xff,
91
- 0x2c,
107
+ address & 0xff,
108
+ (address >> 8) & 0xff,
109
+ offset,
92
110
  0x00,
93
111
  0x00,
94
112
  0x00,
@@ -96,10 +114,55 @@ export function readKeysPacket() {
96
114
  0x00,
97
115
  ]);
98
116
  }
99
- export function writeKeysPacket(keys) {
100
- const area = [...DEFAULT_KEY_AREA];
117
+ /** 从配置区读取完整的 9 槽按键数据。 */
118
+ export function readKeysPacket() {
119
+ return createReadKeysPacket(READ_ADDRESS, 0x2c);
120
+ }
121
+ /** 从按键写区读取完整 9 槽(与 0x09 写入地址一致)。 */
122
+ export function readWriteKeysPacket() {
123
+ return createReadKeysPacket(KEY_WRITE_ADDRESS, KEY_WRITE_OFFSET);
124
+ }
125
+ export function isM3Device(productName, productId) {
126
+ if (productId != null && M3_PRODUCT_IDS.includes(productId)) {
127
+ return true;
128
+ }
129
+ const name = productName?.trim().toUpperCase() ?? '';
130
+ return name.includes('AJ139') || /(^|\W)M3($|\W)/.test(name);
131
+ }
132
+ function isScrollUpKey(key) {
133
+ return !!key && key.type === 0x21 && key.code1 === 0x38 && key.code2 === 0x01;
134
+ }
135
+ function isScrollDownKey(key) {
136
+ return !!key && key.type === 0x21 && key.code1 === 0x38 && key.code2 === 0xff;
137
+ }
138
+ function isInvalidKeySlot(key) {
139
+ return !key || key.type === 0 || key.type === 0xff;
140
+ }
141
+ /** 配置区尾部残留的旧 6 键模板:滚轮上下 + 空槽。 */
142
+ export function isLegacyNonM3KeyTail(keys) {
143
+ if (keys.length < KEY_SLOT_COUNT)
144
+ return false;
145
+ const byIndex = new Map(keys.map((key) => [key.index, key]));
146
+ const extra = byIndex.get(6);
147
+ const scrollLeft = byIndex.get(7);
148
+ const scrollRight = byIndex.get(8);
149
+ return (isScrollUpKey(extra) &&
150
+ isScrollDownKey(scrollLeft) &&
151
+ (isInvalidKeySlot(scrollRight) ||
152
+ (scrollRight?.type === 0x21 && scrollRight.code1 === 0xaa)));
153
+ }
154
+ function isUsableExtendedSlot(key) {
155
+ if (!key || isInvalidKeySlot(key))
156
+ return false;
157
+ if (isScrollUpKey(key) || isScrollDownKey(key))
158
+ return false;
159
+ return !(key.type === 0x21 && key.code1 === 0xaa);
160
+ }
161
+ export function writeKeysPacket(keys, extendedSlots = false) {
162
+ const area = [...(extendedSlots ? DEFAULT_KEY_AREA : LEGACY_DEFAULT_KEY_AREA)];
163
+ const writableSlotCount = extendedSlots ? KEY_SLOT_COUNT : DPI_SLOT_INDEX + 1;
101
164
  for (const key of keys) {
102
- if (key.index < 0 || key.index >= KEY_SLOT_COUNT)
165
+ if (!Number.isInteger(key.index) || key.index < 0 || key.index >= writableSlotCount)
103
166
  continue;
104
167
  const offset = key.index * 4;
105
168
  area[offset] = key.type;
@@ -118,20 +181,22 @@ export function writeKeysPacket(keys) {
118
181
  ]);
119
182
  }
120
183
  function looksLikeKeyPayload(keyData) {
121
- const type = keyData[0] ?? 0;
122
- return type === 0x20 || type === 0x21 || type === 0x10 || type === 0x30 || type === 0x70;
184
+ return VALID_KEY_TYPES.has(keyData[0] ?? 0);
123
185
  }
124
186
  export function parseKeysResponse(data) {
125
187
  const view = normalizeInputReport(0, data);
126
188
  const keyData = view.slice(7);
127
- if (keyData.length < KEY_SLOT_COUNT * 4) {
189
+ // 部分 WebHID 实现只暴露协议声明的有效长度,而不是补齐后的 63 字节。
190
+ // 前 6 槽(含 DPI)完整即可使用,缺失的扩展槽由上层按机型补齐。
191
+ const availableSlots = Math.min(KEY_SLOT_COUNT, Math.floor(keyData.length / 4));
192
+ if (availableSlots < DPI_SLOT_INDEX + 1) {
128
193
  return [];
129
194
  }
130
195
  if (view[0] !== Command.ReadShort && !looksLikeKeyPayload(keyData)) {
131
196
  return [];
132
197
  }
133
198
  const keys = [];
134
- for (let index = 0; index < KEY_SLOT_COUNT; index++) {
199
+ for (let index = 0; index < availableSlots; index++) {
135
200
  keys.push({
136
201
  index,
137
202
  type: keyData[index * 4] ?? 0,
@@ -153,9 +218,8 @@ export function formatKeyLabel(key, getMacroName) {
153
218
  item.code1 === key.code1 &&
154
219
  item.code2 === key.code2 &&
155
220
  item.code3 === key.code3);
156
- if (preset) {
221
+ if (preset)
157
222
  return preset.label;
158
- }
159
223
  return `自定义 (${key.type.toString(16)}, ${key.code1}, ${key.code2}, ${key.code3})`;
160
224
  }
161
225
  export function keysToMapping(keys) {
@@ -180,6 +244,87 @@ export function mappingToKeys(mapping) {
180
244
  index: BUTTON_SLOT_INDEX[slot],
181
245
  }));
182
246
  }
247
+ export function isValidKeyArea(keys) {
248
+ if (keys.length < DPI_SLOT_INDEX + 1)
249
+ return false;
250
+ return keys.slice(0, DPI_SLOT_INDEX + 1).every((key) => VALID_KEY_TYPES.has(key.type));
251
+ }
252
+ function keyValueEquals(left, right) {
253
+ return (!!left &&
254
+ !!right &&
255
+ left.type === right.type &&
256
+ left.code1 === right.code1 &&
257
+ left.code2 === right.code2 &&
258
+ left.code3 === right.code3);
259
+ }
260
+ export function keyAreasEqual(left, right, indices = Array.from({ length: KEY_SLOT_COUNT }, (_, index) => index)) {
261
+ const leftByIndex = new Map(left.map((key) => [key.index, key]));
262
+ const rightByIndex = new Map(right.map((key) => [key.index, key]));
263
+ return indices.every((index) => keyValueEquals(leftByIndex.get(index), rightByIndex.get(index)));
264
+ }
265
+ function isDefaultKeyArea(keys) {
266
+ const availableIndices = BUTTON_SLOTS.map((slot) => BUTTON_SLOT_INDEX[slot]).filter((index) => keys.some((key) => key.index === index));
267
+ if (availableIndices.length < PRIMARY_BUTTON_SLOT_COUNT)
268
+ return false;
269
+ return keyAreasEqual(keys, Array.from({ length: KEY_SLOT_COUNT }, (_, index) => keyFromDefaultArea(index)), availableIndices);
270
+ }
271
+ /**
272
+ * 某些扩展按键机型的配置区 index 6/7/8 可能与写区不同步。
273
+ * 仅当写区读到有效数据时覆盖;绝不强行替换为默认值。
274
+ */
275
+ export function mergeExtendedKeySlots(baseKeys, writeAreaKeys) {
276
+ if (!isValidKeyArea(baseKeys) || writeAreaKeys.length < KEY_SLOT_COUNT) {
277
+ return baseKeys;
278
+ }
279
+ const writeByIndex = new Map(writeAreaKeys.map((key) => [key.index, key]));
280
+ return baseKeys.map((key) => {
281
+ if (!EXTENDED_SLOT_INDICES.includes(key.index))
282
+ return key;
283
+ const fromWrite = writeByIndex.get(key.index);
284
+ return isUsableExtendedSlot(fromWrite) ? fromWrite : key;
285
+ });
286
+ }
287
+ /**
288
+ * AJ139 的 0x0BA5 配置区在部分固件上会长期保留默认值,而 0x22A5 写区才是当前映射。
289
+ * 优先采用与本次期望值一致的区域;无期望值时,仅在“配置区为默认、写区为自定义”时
290
+ * 整体采用写区,避免把原厂驱动写入的前五个按键误判回默认值。
291
+ */
292
+ export function selectM3KeyReadback(configAreaKeys, writeAreaKeys, expectedKeys = []) {
293
+ const configValid = isValidKeyArea(configAreaKeys);
294
+ const writeValid = isValidKeyArea(writeAreaKeys);
295
+ if (expectedKeys.length > 0) {
296
+ if (writeValid && keyAreasEqual(writeAreaKeys, expectedKeys))
297
+ return writeAreaKeys;
298
+ if (configValid && keyAreasEqual(configAreaKeys, expectedKeys))
299
+ return configAreaKeys;
300
+ }
301
+ if (!configValid)
302
+ return writeValid ? writeAreaKeys : configAreaKeys;
303
+ if (!writeValid)
304
+ return configAreaKeys;
305
+ if (isDefaultKeyArea(configAreaKeys) && !isDefaultKeyArea(writeAreaKeys)) {
306
+ return writeAreaKeys;
307
+ }
308
+ if (isLegacyNonM3KeyTail(configAreaKeys)) {
309
+ return mergeExtendedKeySlots(configAreaKeys, writeAreaKeys);
310
+ }
311
+ return configAreaKeys;
312
+ }
313
+ export function applyExtendedSlotCache(keys, cache) {
314
+ if (!cache.size)
315
+ return keys;
316
+ return keys.map((key) => cache.get(key.index) ?? key);
317
+ }
318
+ /** 写入时保留设备当前 DPI 槽;其余 8 个映射槽以 mapping 为准。 */
319
+ export function keysForWritePacket(mapping, previousKeys = []) {
320
+ const mapped = mappingToKeys(mapping);
321
+ const dpi = previousKeys.find((key) => key.index === DPI_SLOT_INDEX) ?? keyFromDefaultArea(DPI_SLOT_INDEX);
322
+ const byIndex = new Map();
323
+ byIndex.set(DPI_SLOT_INDEX, dpi);
324
+ for (const key of mapped)
325
+ byIndex.set(key.index, key);
326
+ return Array.from({ length: KEY_SLOT_COUNT }, (_, index) => byIndex.get(index) ?? keyFromDefaultArea(index));
327
+ }
183
328
  export function presetToKey(preset, index) {
184
329
  return {
185
330
  index,
@@ -190,9 +335,8 @@ export function presetToKey(preset, index) {
190
335
  };
191
336
  }
192
337
  export function findPresetId(key) {
193
- if (key.type === 0x70) {
338
+ if (key.type === 0x70)
194
339
  return 'macro';
195
- }
196
340
  const preset = KEY_PRESETS.find((item) => item.type === key.type &&
197
341
  item.code1 === key.code1 &&
198
342
  item.code2 === key.code2 &&
@@ -1 +1 @@
1
- {"version":3,"file":"key.js","sourceRoot":"","sources":["../../src/protocol/key.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key.js","sourceRoot":"","sources":["../../src/protocol/key.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"macro.d.ts","sourceRoot":"","sources":["../../src/protocol/macro.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAElB,iBAAiB,EACjB,eAAe,EACf,UAAU,EACX,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,uBAAuB,QAAiB,CAAC;AACtD,eAAO,MAAM,iBAAiB,QAA8B,CAAC;AAC7D,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,eAAO,MAAM,gBAAgB,QAAyB,CAAC;AA6DvD,6BAA6B;AAC7B,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,UAAU,CAMrE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,CA+BxE;AAED,kCAAkC;AAClC,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,YAAY,GAAE,iBAAqB,GAClC,UAAU,EAAE,CAyBd;AAED,qBAAqB;AACrB,wBAAgB,uBAAuB,IAAI,UAAU,CAEpD;AAED,iCAAiC;AACjC,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,kBAAkB,GAC1B,eAAe,CAajB"}
1
+ {"version":3,"file":"macro.d.ts","sourceRoot":"","sources":["../../src/protocol/macro.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,UAAU,EACX,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,uBAAuB,QAAiB,CAAC;AACtD,eAAO,MAAM,iBAAiB,QAA8B,CAAC;AAC7D,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,eAAO,MAAM,gBAAgB,QAAyB,CAAC;AA6DvD,6BAA6B;AAC7B,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,UAAU,CAMrE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,CA+BxE;AAED,kCAAkC;AAClC,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,YAAY,GAAE,iBAAqB,GAClC,UAAU,EAAE,CAyBd;AAED,qBAAqB;AACrB,wBAAgB,uBAAuB,IAAI,UAAU,CAEpD;AAED,iCAAiC;AACjC,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,kBAAkB,GAC1B,eAAe,CAajB"}
@@ -1 +1 @@
1
- {"version":3,"file":"macro.js","sourceRoot":"","sources":["../../src/protocol/macro.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"macro.js","sourceRoot":"","sources":["../../src/protocol/macro.ts"],"names":[],"mappings":"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"}