---
name: "DreamlightSceneModeTransformer"
mode: "api"
versionRequirements:
  - { name: "@ray-js/panel-sdk", version: "1.0.0" }
title: "DreamlightSceneModeTransformer"
summary: "DreamlightSceneModeTransformer 用于解析照明 dreamlight_scene_mode DP，实现幻彩情景模式的解析与格式化。"
questions:
  - "DreamlightSceneModeTransformer 的作用是什么？"
  - "DreamlightSceneModeTransformer 如何解析颜色数据原始格式？"
  - "DreamlightSceneModeTransformer 的输入和输出是什么？"
  - "DreamlightSceneModeTransformer 的转换规则是什么？"
---

## DreamlightSceneModeTransformer

> [VERSION] @ray-js/panel-sdk >= 1.0.0

> 💡 适用于幻彩灯带产品的场景模式 DP（如 dreamlight_scene_mode），支持普通场景模式与混合场景模式。
> 协议包含版本号、场景 ID、变化方式、速度、方向控制、颜色列表等多种参数。
> 颜色单元为 3 字节（hue 2字节 + saturation 1字节），亮度为所有颜色共用。

### 描述

幻彩灯带场景模式协议转换器，用于梦幻灯场景配置数据与 DP 十六进制协议的双向转换

### 参数

`Params`

| 参数 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- |
| `uuid` | `string` | 否 | DP 标识符，默认为 'dreamlight_scene_mode' |
| `defaultValue` | `{ version: number, id: number, mode: number, speed: number, segmented: number, loop: number, excessive: number, direction: number, expand: number, reserved1: number, reserved2: number, brightness: number, colors: SceneColorType[] }` | 否 | 默认场景数据，当解析失败时返回此值 |

### 返回值

类型: `DreamlightSceneModeTransformer`

DreamlightSceneModeTransformer 实例

#### 方法

| 方法名 | 说明 |
| --- | --- |
| `parser` | 将 DP 十六进制字符串解析为幻彩灯场景模式数据对象 |
| `formatter` | 将幻彩灯场景模式数据对象格式化为 DP 十六进制字符串 |

### 引用对象

##### `interface` SceneColorType

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `hue` | `number` | 色相 |
| `saturation` | `number` | 饱和度 |


### 示例代码

#### 示例

```ts
import { DreamlightSceneModeTransformer } from '@ray-js/panel-sdk';

const transformer = new DreamlightSceneModeTransformer();
// 解析场景 DP 字符串
const scene = transformer.parser('01c8010d0d00000064007003e8');

// 格式化为 DP 字符串
const dpStr = transformer.formatter({
  id: 200, mode: 1, speed: 13,
  brightness: 1000,
  colors: [{ hue: 0, saturation: 1000 }, { hue: 120, saturation: 800 }],
});
```
