Skip to content

键盘灯光

关闭键盘灯光

ServiceKeyboard.closedLighting()

简要描述: 关闭键盘的所有灯光效果。


参数

此方法不需要参数。


返回值

  • 总体类型: Promise<boolean>
  • 描述: 返回一个 Promise,该 Promise 解析为一个布尔值。
  • 解析值: true 如果灯光成功关闭,否则可能为 false 或 Promise 被拒绝 (具体行为需查阅实现细节)。

使用示例

js
async function turnOffKeyboardLights() {
  try {
    const success = await ServiceKeyboard.closedLighting();
    if (success) {
      console.log('键盘灯光已关闭。');
    } else {
      console.log('关闭键盘灯光失败或指令未完全执行。');
    }
  } catch (error) {
    console.error('关闭键盘灯光时发生错误:', error);
  }
}

turnOffKeyboardLights();

获取键盘灯光配置

ServiceKeyboard.getLighting()

简要描述: 获取当前键盘主要的灯光配置信息。


参数

此方法不需要参数。


返回值

  • 总体类型: Promise<LightMode>
  • 描述: 返回一个 Promise,该 Promise 解析为一个 LightMode 对象,包含当前键盘灯光的详细配置。
  • 解析对象结构 (LightMode):
字段名称类型描述示例值
openboolean灯光是否开启。true
directionboolean灯效方向 (例如,动态效果的流动方向)。true 表示正向,false 反向。true
superResponseboolean是否启用超强响应模式(通常指按键触发的快速反馈灯效)。false
speednumber灯光效果的速度。3 (示例级别)
colorsstring[]灯光效果所使用的颜色数组 (例如 ["#FF0000", "#00FF00"])。["#FFFFFF"]
modenumber当前灯光模式。0 表示关闭, 1-20 (或其他范围) 表示预设的动态效果, 21 (或其他特定值) 表示自定义模式。1 (示例动态模式)
luminancenumber灯光亮度。100 (示例级别)
sleepDelaynumber灯光进入休眠状态前的延迟时间 (单位可能为秒或分钟)。600 (示例值)
staticColornumber在静态灯光模式下所使用的颜色模式或索引。0
typeLightModeType灯光模式的分类或类型 (具体枚举值需查阅 LightModeType 定义)。(依赖 LightModeType)

更多关于 LightMode 模型的详细结构,请 查看lightMode的模型


使用示例

js
async function fetchKeyboardLightingConfig() {
  try {
    const lightingConfig = await ServiceKeyboard.getLighting();
    console.log('当前键盘灯光配置:', lightingConfig);
    // console.log('灯光模式:', lightingConfig.mode);
    // console.log('亮度:', lightingConfig.luminance);
  } catch (error) {
    console.error('获取键盘灯光配置失败:', error);
  }
}

fetchKeyboardLightingConfig();

设置键盘灯光配置

ServiceKeyboard.setLighting()

简要描述: 应用新的灯光配置到键盘。


参数

参数名称类型描述是否必需默认值
lightModeLightMode一个 LightMode 对象,包含要设置的灯光配置。

返回值

总体类型: 同入参


使用示例

js
async function applyKeyboardLightingConfig(newConfig: LightMode) {
  try {
    // newConfig 示例 (具体值需符合 LightMode 定义):
    // const exampleConfig: LightMode = {
    //   open: true,
    //   mode: 5, // 假设是某种动态效果
    //   speed: 4,
    //   luminance: 80,
    //   colors: ["#00FF00"],
    //   direction: true,
    //   superResponse: false,
    //   sleepDelay: 300,
    //   staticColor: 0,
    //   type: LightModeType.Effect, // 假设的 LightModeType 枚举值
    // };
    await ServiceKeyboard.setLighting(newConfig);
    console.log('键盘灯光配置已更新。');
  } catch (error) {
    console.error('设置键盘灯光配置失败:', error);
  }
}

// 假设 myCustomLightMode 是一个有效的 LightMode 对象
// applyKeyboardLightingConfig(myCustomLightMode);

获取键盘装饰灯灯光配置

ServiceKeyboard.getLogoLighting()

简要描述: 获取键盘上装饰灯的当前灯光配置信息。


参数

此方法不需要参数。


返回值

  • 总体类型: Promise<LightMode>
  • 描述: 返回一个 Promise,该 Promise 解析为一个 LightMode 对象,包含当前装饰灯的详细配置。其结构与主键盘灯光配置 (ServiceKeyboard.getLighting() 返回的) 类似,但可能具有不同的模式范围或特定于装饰灯的属性。
  • 解析对象结构 (LightMode):
字段名称类型描述示例值
openboolean装饰灯灯光是否开启。true
directionboolean灯效方向。true 正向, false 反向。true
superResponseboolean是否启用超强响应模式。false
speednumber灯光效果的速度。3
colorsstring[]灯光效果所使用的颜色数组。["#0000FF"]
modenumber当前装饰灯灯光模式 (例如,动态灯效范围可能为 1-4)。1
luminancenumber装饰灯灯光亮度。100
sleepDelaynumber灯光休眠时间。600
staticColornumber静态灯光颜色模式。0
typeLightModeType灯光模式的分类或类型。(依赖 LightModeType)

更多关于 LightMode 模型的详细结构,请 查看lightMode的模型


使用示例

js
async function fetchLogoLightingConfig() {
  try {
    const logoConfig = await ServiceKeyboard.getLogoLighting();
    console.log('当前装饰灯灯光配置:', logoConfig);
  } catch (error) {
    console.error('获取装饰灯灯光配置失败:', error);
  }
}

fetchLogoLightingConfig();

设置键盘装饰灯灯光配置

ServiceKeyboard.setLogoLighting()

简要描述: 应用新的灯光配置到键盘的装饰灯。


参数

参数名称类型描述是否必需默认值
lightModeLightMode一个 LightMode 对象,包含要设置的装饰灯灯光配置。

返回值

总体类型: 同入参


使用示例

js
async function applyLogoLightingConfig(newLogoConfig: LightMode) {
  try {
    await ServiceKeyboard.setLogoLighting(newLogoConfig);
    console.log('装饰灯灯光配置已更新。');
  } catch (error) {
    console.error('设置装饰灯灯光配置失败:', error);
  }
}

// 假设 myCustomLogoLightMode 是一个有效的 LightMode 对象
// applyLogoLightingConfig(myCustomLogoLightMode);

注意事项

TIP

  • type: 键盘的装饰灯只有static静态模式和dynamic动态模式两种模式,设置其他的值将会被重置为static静态模式。

获取单键自定义灯光颜色

ServiceKeyboard.getCustomLighting()

简要描述: 获取键盘上单个按键的自定义 RGB 灯光颜色值。


参数

参数名称类型描述是否必需默认值
keynumber要查询自定义颜色的按键的 keyValue。此值通常来自 ServiceKeyboard.defKey() 返回的 IDefKeyInfo 对象中的 keyValue 属性。

返回值

  • 总体类型: Promise<{ key: number; R: number; G: number; B: number }>
  • 描述: 返回一个 Promise,该 Promise 解析为一个包含指定按键的 keyValue 及其RGB颜色值的对象。
  • 解析对象结构:
字段名称类型描述示例值 (可能)
keynumber查询的按键的 keyValue80 (示例)
Rnumber红色 (Red) 分量值 (0-255)。255
Gnumber绿色 (Green) 分量值 (0-255)。0
Bnumber蓝色 (Blue) 分量值 (0-255)。0

使用示例

js
async function fetchCustomKeyColor(targetKeyValue: number) {
  try {
    const colorInfo = await ServiceKeyboard.getCustomLighting(targetKeyValue);
    console.log(`按键 ${colorInfo.key} 的自定义颜色: R=${colorInfo.R}, G=${colorInfo.G}, B=${colorInfo.B}`);
  } catch (error) {
    console.error(`获取按键 ${targetKeyValue} 自定义颜色失败:`, error);
  }
}

// 示例:获取 keyValue 为 80 的按键的颜色
// const exampleKey = 80;
// fetchCustomKeyColor(exampleKey);

设置单键自定义灯光颜色

ServiceKeyboard.customSetLighting()

简要描述: 为键盘上的单个按键设置自定义 RGB 灯光颜色。这通常在键盘灯光模式设置为自定义模式后生效。


参数

参数名称类型描述是否必需默认值
dataobject一个包含按键及其 RGB 颜色配置的对象。
data.keynumber要设置自定义颜色的按键的 keyValue。此值通常来自 ServiceKeyboard.defKey() 返回的 IDefKeyInfo 对象中的 keyValue 属性。
data.Rnumber红色 (Red) 分量值 (0-255)。
data.Gnumber绿色 (Green) 分量值 (0-255)。
data.Bnumber蓝色 (Blue) 分量值 (0-255)。

返回值

  • 总体类型: 同入参

使用示例

js
async function setCustomKeyColor(config: { key: number; R: number; G: number; B: number }) {
  try {
    // config 示例:
    const exampleConfig: LightMode = {
      open: true,
      mode: 5, // 假设是某种动态效果
      speed: 4,
      luminance: 80,
      colors: ["#00FF00"],
      direction: true,
      superResponse: false,
      sleepDelay: 300,
      staticColor: 0,
      type: "custom", //需要先设定键盘灯光为自定义模式
    };
    await ServiceKeyboard.setLighting(newConfig);
    // const colorConfig = { key: 80, R: 255, G: 0, B: 255 }; // 将 keyValue 80 的键设置为紫色
    await ServiceKeyboard.customSetLighting(config);
    console.log(`按键 ${config.key} 的自定义颜色已设置为 R=${config.R}, G=${config.G}, B=${config.B}`);
  } catch (error) {
    console.error('设置单键自定义颜色失败:', error);
  }
}

// 示例调用
// const exampleColorSetting = { key: 80, R: 0, G: 255, B: 0 }; // 设置为绿色
// setCustomKeyColor(exampleColorSetting);

注意事项

TIP

  • data.key: 此处 key 指的是通过 ServiceKeyboard.defKey() 获取到的 IDefKeyInfo 对象中的 keyValue 属性。
  • 要使自定义颜色生效,键盘的主灯光模式 (ServiceKeyboard.setLighting) 需要设置type为特定的"custom"值。
  • 记得自定义完成以后在下发saveCustomLighting保存命令哦,不需要每一条都发。

保存自定义灯光颜色

ServiceKeyboard.saveCustomLighting();

简要描述:

当自定义灯光发送完成以后要发送一个自定义保存命令下去。


参数

返回值

null


使用示例

js
async function saveCustomLighting() {
  try {
    // config 示例:
    const exampleConfig: LightMode = {
      open: true,
      mode: 5, // 假设是某种动态效果
      speed: 4,
      luminance: 80,
      colors: ["#00FF00"],
      direction: true,
      superResponse: false,
      sleepDelay: 300,
      staticColor: 0,
      type: "custom", //需要先设定键盘灯光为自定义模式
    };

   await ServiceKeyboard.customSetLighting(config);
  // 最后一步发送保存
  await ServiceKeyboard.saveCustomLighting(newConfig);
  
  } catch (error) {
  }
}

注意事项

TIP

可以在切换页面,或者切换点击事件的时候进行切换。