---
name: "SmearTransformer"
mode: "api"
versionRequirements:
  - { name: "@ray-js/panel-sdk", version: "1.0.0" }
title: "SmearTransformer"
summary: "SmearTransformer 用于解析照明 paint_colour_data DP，实现擦除数据的解析与格式化。"
questions:
  - "SmearTransformer 的作用是什么？"
  - "SmearTransformer 如何解析擦除数据？"
  - "SmearTransformer 的输入和输出是什么？"
  - "SmearTransformer 的转换规则是什么？"
---

## SmearTransformer

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

> 💡 适用于灯带类产品的涂抹控制 DP（如 paint_colour_data），支持白光、彩光、色卡、组合四种调光模式，
> 以及油漆桶、涂抹、橡皮擦三种涂抹效果。将涂抹配置参数与十六进制 DP 字符串互转。

### 描述

涂抹 DP 协议转换器，用于灯带涂抹控制数据与 DP 十六进制协议的双向转换

### 参数

`Params`

| 参数 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- |
| `uuid` | `string` | 否 | DP 标识符，默认为 paint_colour_data |
| `defaultValue` | `{ version: number, dimmerMode: DimmerMode, effect: number, ledNumber: number, smearMode: SmearMode, hue: number, saturation: number, value: number, brightness: number, temperature: number }` | 否 | 默认涂抹数据，当解析失败时返回此值 |

### 返回值

类型: `SmearTransformer`

SmearTransformer 实例

#### 方法

| 方法名 | 说明 |
| --- | --- |
| `parser` | 将 DP 十六进制字符串解析为涂抹数据对象 |
| `formatter` | 将涂抹数据对象格式化为 DP 十六进制字符串 |

### 引用对象

##### `enum` DimmerMode

| 枚举值 | 实际值 | 描述 |
| --- | --- | --- |
| `DimmerMode.white` | `white` | 白光 |
| `DimmerMode.colour` | `colour` | 彩光 |
| `DimmerMode.colourCard` | `colourCard` | 色卡 |
| `DimmerMode.combination` | `combination` | 组合 |

##### `enum` SmearMode

| 枚举值 | 实际值 | 描述 |
| --- | --- | --- |
| `SmearMode.all` | `all` | 全部 |
| `SmearMode.single` | `single` | 单点 |
| `SmearMode.clear` | `clear` | 擦除 |


### 示例代码

#### 示例

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

const transformer = new SmearTransformer();
// 解析涂抹 DP 字符串
const data = transformer.parser('0001000a00000003e803e8');

// 格式化为 DP 字符串
const dpStr = transformer.formatter({
  dimmerMode: DimmerMode.colour,
  smearMode: SmearMode.all,
  hue: 120,
  saturation: 1000,
  value: 1000,
});
```
