Skip to content

高级按键功能

获取高级键类型

ServiceKeyboard.getHigherKey()

简要描述: 获取指定按键位置的高级键类型。

参数

参数名称类型描述是否必需默认值
paramsobject包含按键位置信息的对象。
params.rownumber按键在键盘矩阵中的行号。
params.colnumber按键在键盘矩阵中的列号。

返回值

类型: Promise<{ row: number, col: number, mode: number }>

描述: 返回一个 Promise,该 Promise 解析为一个对象,包含按键位置和高级键类型信息。

内容:

字段名称类型描述示例值
rownumber按键的行号。5
colnumber按键的列号。2
modenumber高级键类型。1

mode 值说明:

  • 0: 没有高级键
  • 1: DKS(动态键程)
  • 2: MPT(多点触发)
  • 3: MT(模式切换/触发延迟)
  • 4: TGL(触发延迟)
  • 5: END(结束触发)
  • 6: SOCD(同时按下冲突解决)
  • 7: RS(保留)

使用示例

js
async function getHigherKeyType(row, col) {
  try {
    const result = await ServiceKeyboard.getHigherKey({ row, col });
    console.log(`按键位置 (${row}, ${col}) 的高级键类型:`, result);
    
    // 根据 mode 值判断高级键类型
    const modeMap = {
      0: '无高级键',
      1: 'DKS',
      2: 'MPT',
      3: 'MT',
      4: 'TGL',
      5: 'END',
      6: 'SOCD',
      7: 'RS'
    };
    
    console.log(`高级键类型: ${modeMap[result.mode]}`);
  } catch (error) {
    console.error('获取高级键类型失败:', error);
  }
}

// 示例:获取位置为 (5, 0) 的按键的高级键类型
// getHigherKeyType(5, 0);

注意事项

TIP

  • rowcol 表示按键在键盘矩阵中的位置。
  • mode 值表示该按键配置的高级键类型,可用于判断后续需要调用哪个高级键相关的接口。

删除高级键

ServiceKeyboard.setHigherKeyNONE()

简要描述: 删除指定按键位置的高级键设置。

参数

参数名称类型描述是否必需默认值
paramsobject包含按键位置和删除设置的对象。
params.rownumber按键在键盘矩阵中的行号。
params.colnumber按键在键盘矩阵中的列号。
params.modestring设置为 'NONE' 表示删除高级键。
params.dataobject包含删除设置的数据对象。
params.data.modenumber设置为 0 表示删除高级键。

返回值

类型: Promise<void>

描述: 返回一个 Promise,该 Promise 在操作成功时解析为 void

使用示例

js
async function deleteHigherKey(row, col) {
  try {
    const params = {
      row,
      col,
      mode: 'NONE',
      data: {
        mode: 0
      }
    };
    
    await ServiceKeyboard.setHigherKeyNONE(params);
    console.log(`按键位置 (${row}, ${col}) 的高级键设置已删除`);
  } catch (error) {
    console.error('删除高级键设置失败:', error);
  }
}

// 示例:删除位置为 (5, 0) 的按键的高级键设置
// deleteHigherKey(5, 0);

注意事项

TIP

  • rowcol 表示要删除高级键设置的按键位置。
  • mode 必须设置为 'NONE'。
  • data.mode 必须设置为 0。
  • 此操作会删除该按键的所有高级键设置。

设置DKS高级键

ServiceKeyboard.setHigherKeyDKS()

简要描述: 为指定按键位置设置DKS(动态键程)高级键配置。

参数

参数名称类型描述是否必需默认值
paramsobject包含按键位置和DKS设置的对象。
params.rownumber按键在键盘矩阵中的行号。
params.colnumber按键在键盘矩阵中的列号。
params.dataobject包含DKS配置的数据对象。
params.data.kcsnumber[]DKS各层级的键值数组,长度为4。
params.data.trpsnumber[]DKS各层级的触发点行程参数数组,长度为4。
params.data.dbsnumber[]DKS的死区设置数组,长度为2,单位为mm。

返回值

类型: Promise<{ row: number, col: number, mode: number, data: { kcs: number[], trps: number[], dbs: number[] } }>

描述: 返回一个 Promise,该 Promise 解析为一个对象,包含设置后的DKS配置信息。

内容:

字段名称类型描述示例值
rownumber按键的行号。4
colnumber按键的列号。6
modenumber高级键类型,固定为1(DKS)。1
dataobjectDKS配置数据。-
data.kcsnumber[]DKS各层级的键值数组。[20, 26, 8, 9]
data.trpsnumber[]DKS各层级的触发点行程参数数组。[127, 120, 120, 120]
data.dbsnumber[]DKS的行程设置数组。第0位为最小行程,第1位为最大行程[1.5, 3]

使用示例

js
async function setDksHigherKey(row, col, kcs, trps, dbs) {
  try {
    const params = {
      row,
      col,
      data: {
        kcs,
        trps,
        dbs
      }
    };
    
    const result = await ServiceKeyboard.setHigherKeyDKS(params);
    console.log(`按键位置 (${row}, ${col}) 的DKS设置已更新:`, result);
  } catch (error) {
    console.error('设置DKS高级键失败:', error);
  }
}

// 示例:设置位置为 (4, 6) 的按键的DKS配置
// const exampleKcs = [20, 26, 8, 9];
// const exampleTrps = [127, 120, 120, 120];
// const exampleDbs = [1.5, 3];
// setDksHigherKey(4, 6, exampleKcs, exampleTrps, exampleDbs);

注意事项

TIP

  • rowcol 表示要设置DKS的按键位置。
  • kcs 数组必须包含4个键值,分别对应DKS的4个层级。
  • trps 数组必须包含4个触发点行程参数,分别对应DKS的4个层级,需转成二进制使用。
  • dbs 数组必须包含2个行程值,第0位为最小行程,第1位为最大行程,单位为mm。
  • 返回的 mode 值固定为1,表示DKS类型。

设置MPT高级键

ServiceKeyboard.setHigherKeyMPT()

简要描述: 为指定按键位置设置MPT(多点触发)高级键配置。

参数

参数名称类型描述是否必需默认值
paramsobject包含按键位置和MPT设置的对象。
params.rownumber按键在键盘矩阵中的行号。
params.colnumber按键在键盘矩阵中的列号。
params.dataobject包含MPT配置的数据对象。
params.data.kcsnumber[]MPT各层级的键值数组,长度为3。
params.data.dbsnumber[]MPT各层级的行程设置数组,长度为3,单位为mm。

返回值

类型: Promise<{ row: number, col: number, mode: number, data: { kcs: number[], dbs: number[] } }>

描述: 返回一个 Promise,该 Promise 解析为一个对象,包含设置后的MPT配置信息。

内容:

字段名称类型描述示例值
rownumber按键的行号。3
colnumber按键的列号。7
modenumber高级键类型,固定为2(MPT)。2
dataobjectMPT配置数据。-
data.kcsnumber[]MPT各层级的键值数组。[13, 4, 9]
data.dbsnumber[]MPT各层级的行程设置数组,单位为0.001mm。[500, 1000, 1500]

使用示例

js
async function setMptHigherKey(row, col, kcs, dbs) {
  try {
    const params = {
      row,
      col,
      data: {
        kcs,
        dbs
      }
    };
    
    const result = await ServiceKeyboard.setHigherKeyMPT(params);
    console.log(`按键位置 (${row}, ${col}) 的MPT设置已更新:`, result);
  } catch (error) {
    console.error('设置MPT高级键失败:', error);
  }
}

// 示例:设置位置为 (3, 7) 的按键的MPT配置
// const exampleKcs = [13, 4, 9];
// const exampleDbs = [0.5, 1, 1.5];  // 单位为mm
// setMptHigherKey(3, 7, exampleKcs, exampleDbs);

注意事项

TIP

  • rowcol 表示要设置MPT的按键位置。
  • kcs 数组必须包含3个键值,分别对应MPT的3个层级。
  • dbs 数组必须包含3个行程值,分别对应MPT的3个层级,单位为mm。
  • 返回的 mode 值固定为2,表示MPT类型。
  • 返回的 dbs 数组中的值单位为0.001mm,例如500表示0.5mm。

设置MT高级键

ServiceKeyboard.setHigherKeyMT()

简要描述: 为指定按键位置设置MT(模式切换/触发延迟)高级键配置。

参数

参数名称类型描述是否必需默认值
paramsobject包含按键位置和MT设置的对象。
params.rownumber按键在键盘矩阵中的行号。
params.colnumber按键在键盘矩阵中的列号。
params.modestring设置为 'MT' 表示设置MT高级键。
params.dataobject包含MT配置的数据对象。
params.data.timenumber延迟时间,单位为ms。
params.data.kcsnumber[]MT的键值数组,长度为2。

返回值

类型: Promise<{ row: number, col: number, mode: number, data: { kcs: number[], time: number } }>

描述: 返回一个 Promise,该 Promise 解析为一个对象,包含设置后的MT配置信息。

内容:

字段名称类型描述示例值
rownumber按键的行号。3
colnumber按键的列号。5
modenumber高级键类型,固定为3(MT)。3
dataobjectMT配置数据。-
data.kcsnumber[]MT的键值数组。[16, 18]
data.timenumber延迟时间,单位为ms。200

使用示例

js
async function setMtHigherKey(row, col, time, kcs) {
  try {
    const params = {
      row,
      col,
      mode: 'MT',
      data: {
        time,
        kcs
      }
    };
    
    const result = await ServiceKeyboard.setHigherKeyMT(params);
    console.log(`按键位置 (${row}, ${col}) 的MT设置已更新:`, result);
  } catch (error) {
    console.error('设置MT高级键失败:', error);
  }
}

// 示例:设置位置为 (3, 5) 的按键的MT配置
// const exampleTime = 200;  // 200ms
// const exampleKcs = [16, 18];
// setMtHigherKey(3, 5, exampleTime, exampleKcs);

注意事项

TIP

  • rowcol 表示要设置MT的按键位置。
  • mode 必须设置为 'MT'。
  • time 表示延迟时间,单位为ms。
  • kcs 数组必须包含2个键值。
  • 返回的 mode 值固定为3,表示MT类型。

设置TGL高级键

ServiceKeyboard.setHigherKeyTGL()

简要描述: 为指定按键位置设置TGL(触发延迟)高级键配置。

参数

参数名称类型描述是否必需默认值
paramsobject包含按键位置和TGL设置的对象。
params.rownumber按键在键盘矩阵中的行号。
params.colnumber按键在键盘矩阵中的列号。
params.modestring设置为 'TGL' 表示设置TGL高级键。
params.dataobject包含TGL配置的数据对象。
params.data.kcsnumberTGL的键值。
params.data.delaynumber延迟时间,单位为ms。

返回值

类型: Promise<{ row: number, col: number, mode: number, data: { kcs: number, time: number } }>

描述: 返回一个 Promise,该 Promise 解析为一个对象,包含设置后的TGL配置信息。

内容:

字段名称类型描述示例值
rownumber按键的行号。4
colnumber按键的列号。4
modenumber高级键类型,固定为4(TGL)。4
dataobjectTGL配置数据。-
data.kcsnumberTGL的键值。29
data.timenumber延迟时间,单位为ms。0

使用示例

js
async function setTglHigherKey(row, col, kcs, delay) {
  try {
    const params = {
      row,
      col,
      mode: 'TGL',
      data: {
        kcs,
        delay
      }
    };
    
    const result = await ServiceKeyboard.setHigherKeyTGL(params);
    console.log(`按键位置 (${row}, ${col}) 的TGL设置已更新:`, result);
  } catch (error) {
    console.error('设置TGL高级键失败:', error);
  }
}

// 示例:设置位置为 (4, 4) 的按键的TGL配置
// const exampleKcs = 29;
// const exampleDelay = 200;  // 200ms
// setTglHigherKey(4, 4, exampleKcs, exampleDelay);

注意事项

TIP

  • rowcol 表示要设置TGL的按键位置。
  • mode 必须设置为 'TGL'。
  • kcs 为单个键值,不是数组。
  • delay 表示延迟时间,单位为ms。
  • 返回的 mode 值固定为4,表示TGL类型。
  • 返回的 time 字段值固定为0。

设置END高级键

ServiceKeyboard.setHigherKeyEND()

简要描述: 为指定按键位置设置END(结束触发)高级键配置。

参数

参数名称类型描述是否必需默认值
paramsobject包含按键位置和END设置的对象。
params.rownumber按键在键盘矩阵中的行号。
params.colnumber按键在键盘矩阵中的列号。
params.modestring设置为 'END' 表示设置END高级键。
params.dataobject包含END配置的数据对象。
params.data.kcsnumber[]END的键值数组,长度为2。
params.data.delaynumber延迟时间,单位为ms。

返回值

类型: Promise<{ row: number, col: number, mode: number, data: { kcs: number[], delay: number } }>

描述: 返回一个 Promise,该 Promise 解析为一个对象,包含设置后的END配置信息。

内容:

字段名称类型描述示例值
rownumber按键的行号。4
colnumber按键的列号。4
modenumber高级键类型,固定为5(END)。5
dataobjectEND配置数据。-
data.kcsnumber[]END的键值数组。[21, 22]
data.delaynumber延迟时间,单位为ms。200

使用示例

js
async function setEndHigherKey(row, col, kcs, delay) {
  try {
    const params = {
      row,
      col,
      mode: 'END',
      data: {
        kcs,
        delay
      }
    };
    
    const result = await ServiceKeyboard.setHigherKeyEND(params);
    console.log(`按键位置 (${row}, ${col}) 的END设置已更新:`, result);
  } catch (error) {
    console.error('设置END高级键失败:', error);
  }
}

// 示例:设置位置为 (4, 4) 的按键的END配置
// const exampleKcs = [21, 22];
// const exampleDelay = 200;  // 200ms
// setEndHigherKey(4, 4, exampleKcs, exampleDelay);

注意事项

TIP

  • rowcol 表示要设置END的按键位置。
  • mode 必须设置为 'END'。
  • kcs 数组必须包含2个键值。
  • delay 表示延迟时间,单位为ms。
  • 返回的 mode 值固定为5,表示END类型。

设置SOCD高级键

ServiceKeyboard.setHigherKeySOCD()

简要描述: 为指定按键位置设置SOCD(同时按下冲突解决)高级键配置。SOCD功能为绑定两个按键,后按下的按键会强制释放前一个按键,同一时刻只会触发一个按键。

参数

参数名称类型描述是否必需默认值
paramsobject包含按键位置和SOCD设置的对象。
params.rownumber第一个按键在键盘矩阵中的行号。
params.colnumber第一个按键在键盘矩阵中的列号。
params.row2number第二个按键在键盘矩阵中的行号。
params.col2number第二个按键在键盘矩阵中的列号。
params.modestring设置为 'SOCD' 表示设置SOCD高级键。
params.socdModenumberSOCD模式:0=后覆盖,1=前优先,2=后优先,3=中性(两个按键都按下都不生效)。
params.delaynumber延迟时间,单位为ms。
params.kcsnumber[]SOCD的键值数组,长度为2。

返回值

类型: Promise<Array<{ row: number, col: number, mode: number, data: { row2: number, col2: number, kcs: number[], delay: number, socdMode: number } }>>

描述: 返回一个 Promise,该 Promise 解析为一个数组,包含两个对象的SOCD配置信息。

内容:

字段名称类型描述示例值
rownumber按键的行号。3
colnumber按键的列号。6
modenumber高级键类型,固定为6(SOCD)。6
dataobjectSOCD配置数据。-
data.row2number配对按键的行号。3
data.col2number配对按键的列号。7
data.kcsnumber[]SOCD的键值数组。[16, 18]
data.delaynumber延迟时间,单位为ms。0
data.socdModenumberSOCD模式。0

使用示例

js
async function setSocdHigherKey(row, col, row2, col2, socdMode, delay, kcs) {
  try {
    const params = {
      row,
      col,
      row2,
      col2,
      mode: 'SOCD',
      socdMode,
      delay,
      kcs
    };
    
    const result = await ServiceKeyboard.setHigherKeySOCD(params);
    console.log(`按键位置 (${row}, ${col}) 和 (${row2}, ${col2}) 的SOCD设置已更新:`, result);
  } catch (error) {
    console.error('设置SOCD高级键失败:', error);
  }
}

// 示例:设置位置为 (3, 6) 和 (3, 7) 的按键的SOCD配置
// const exampleKcs = [16, 18];
// const exampleDelay = 0;  // 0ms
// const exampleSocdMode = 0;  // 后覆盖模式
// setSocdHigherKey(3, 6, 3, 7, exampleSocdMode, exampleDelay, exampleKcs);

注意事项

TIP

  • rowcol 表示第一个按键的位置,row2col2 表示第二个按键的位置。
  • mode 必须设置为 'SOCD'。
  • kcs 数组必须包含2个键值。
  • delay 表示延迟时间,单位为ms。
  • socdMode 表示SOCD的工作模式:
    • 0: 后覆盖 - 后按下的按键会覆盖先按下的按键
    • 1: 前优先 - 先按下的按键优先
    • 2: 后优先 - 后按下的按键优先
    • 3: 中性 - 两个按键都按下时都不生效
  • 返回的 mode 值固定为6,表示SOCD类型。
  • 返回值是一个数组,包含两个对象的配置信息,分别对应两个按键的设置。