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

## StripLocalTimerTransformer

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

> 💡 适用于灯带类产品的本地定时 DP（如 strip_local_timer），支持开关、白光模式、场景、彩光模式
> 四种定时控制类型。协议通过位运算编码定时 ID、使能状态、周循环、定时时刻及灯光参数等。
> 格式化时会附带当前时间信息（星期、时分秒）用于设备校时。

### 描述

灯带本地定时协议转换器，用于定时任务数据与 DP 十六进制协议的双向转换

### 参数

`Params`

| 参数 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- |
| `uuid` | `string` | 否 | DP 标识符，默认为 'strip_local_timer' |
| `defaultValue` | `ITimerData` | 否 | 默认定时数据，当解析失败时返回此值 |

### 返回值

类型: `StripLocalTimerTransformer`

StripLocalTimerTransformer 实例

#### 方法

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

### 引用对象

##### `type` ITimerData

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `power` | `boolean` | 使能 0 关闭  1开启 |
| `id` | `number` | 定时编号 |
| `weeks` | `number[]` | 周循环 |
| `time` | `number` | 定时时刻 HH:mm |
| `mode` | `number` | 1：开/关 2：白光模式 3：场景 4：彩光模式 |
| `minute` | `string` | 分钟 |
| `hour` | `string` | 小时 |
| `lampPower` | `boolean` | 灯光开关 |
| `brightness` | `number` | 亮度 |
| `temperature` | `number` | 色温 |
| `now` | `Object` | 当前时间 |

##### `type` ITimerData.now

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `day` | `number` | 星期 |
| `hour` | `number` | 小时 |
| `minute` | `number` | 分钟 |
| `seconds` | `number` | 秒 |


### 示例代码

#### 示例

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

const transformer = new StripLocalTimerTransformer();
// 解析定时 DP 字符串
const timer = transformer.parser('1001e0021c0164006e');

// 格式化为 DP 字符串
const dpStr = transformer.formatter({
  id: 0,
  power: true,
  weeks: [1, 1, 1, 1, 1, 0, 0, 0],
  time: 480,
  mode: 2,
  lampPower: true,
  brightness: 1000,
  temperature: 500,
});
```
