---
name: "base64ToRaw"
mode: "api"
versionRequirements:
  - { name: "@ray-js/panel-sdk", version: "1.0.0" }
title: "转换"
summary: "介绍 base64、raw、十六进制、二进制等数据格式互转及 raw/string 型 DP 解析步进函数。"
questions:
  - "base64ToRaw函数如何将base64字符串转换为raw十六进制字符串？"
  - "rawToBase64函数将'6162636465'转换后的base64结果是什么？"
  - "hexToBinary函数如何将十六进制字符串转换为二进制字符串？"
  - "generateDpStrStep函数的步进机制是怎样的？如何使用step()逐步解析数据？"
  - "base64ToRaw('YWJjZGU=')的转换结果'6162636465'对应什么原始数据？"
  - "generateDpStrStep('3264')生成的步进函数首次调用step()返回什么值？"
  - "这些转换工具函数在处理设备raw类型或string类型DP数据时如何使用？"
  - "rawToBase64和base64ToRaw互为逆操作吗？数据是否能完全可逆转换？"
  - "hexToBinary('00F')的转换结果为什么是'1111'而不是'00001111'？"
  - "generateDpStrStep的step(2)参数2代表什么含义？如何控制每次读取的字节数？"
---

## base64ToRaw

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

> 💡 常用于 DP 数据的解码转换，将 Base64 格式的 raw 型 DP 值还原为十六进制字符串。

### 描述

将 Base64 编码字符串转换为十六进制原始字符串

### 参数

`Params`

| 参数 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- |
| `value` | `string` | 是 | Base64 编码的字符串 |

### 返回值

类型: `string`

对应的十六进制原始字符串，每字节两个字符

### 示例代码

#### 基础用法

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

const { base64ToRaw } = utils;

base64ToRaw('SGVsbG8='); // '48656c6c6f'
base64ToRaw('/wA=');     // 'ff00'
```


---
name: "rawToBase64"
mode: "api"
versionRequirements:
  - { name: "@ray-js/panel-sdk", version: "1.0.0" }
title: "转换"
summary: "介绍 base64、raw、十六进制、二进制等数据格式互转及 raw/string 型 DP 解析步进函数。"
questions:
  - "base64ToRaw函数如何将base64字符串转换为raw十六进制字符串？"
  - "rawToBase64函数将'6162636465'转换后的base64结果是什么？"
  - "hexToBinary函数如何将十六进制字符串转换为二进制字符串？"
  - "generateDpStrStep函数的步进机制是怎样的？如何使用step()逐步解析数据？"
  - "base64ToRaw('YWJjZGU=')的转换结果'6162636465'对应什么原始数据？"
  - "generateDpStrStep('3264')生成的步进函数首次调用step()返回什么值？"
  - "这些转换工具函数在处理设备raw类型或string类型DP数据时如何使用？"
  - "rawToBase64和base64ToRaw互为逆操作吗？数据是否能完全可逆转换？"
  - "hexToBinary('00F')的转换结果为什么是'1111'而不是'00001111'？"
  - "generateDpStrStep的step(2)参数2代表什么含义？如何控制每次读取的字节数？"
---
## rawToBase64

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

> 💡 常用于 DP 数据的编码转换，将 raw 型 DP 值转为 Base64 格式进行传输。

### 描述

将十六进制原始字符串转换为 Base64 编码字符串

### 参数

`Params`

| 参数 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- |
| `value` | `string` | 是 | 十六进制原始字符串，长度必须为偶数 |

### 返回值

无


### 示例代码

#### 基础用法

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

const { rawToBase64 } = utils;

rawToBase64('48656c6c6f'); // 'SGVsbG8='
rawToBase64('ff00');       // '/wA='
rawToBase64('f');          // ''（奇数长度返回空字符串）
```


---
name: "hexToBinary"
mode: "api"
versionRequirements:
  - { name: "@ray-js/panel-sdk", version: "1.0.0" }
title: "转换"
summary: "介绍 base64、raw、十六进制、二进制等数据格式互转及 raw/string 型 DP 解析步进函数。"
questions:
  - "base64ToRaw函数如何将base64字符串转换为raw十六进制字符串？"
  - "rawToBase64函数将'6162636465'转换后的base64结果是什么？"
  - "hexToBinary函数如何将十六进制字符串转换为二进制字符串？"
  - "generateDpStrStep函数的步进机制是怎样的？如何使用step()逐步解析数据？"
  - "base64ToRaw('YWJjZGU=')的转换结果'6162636465'对应什么原始数据？"
  - "generateDpStrStep('3264')生成的步进函数首次调用step()返回什么值？"
  - "这些转换工具函数在处理设备raw类型或string类型DP数据时如何使用？"
  - "rawToBase64和base64ToRaw互为逆操作吗？数据是否能完全可逆转换？"
  - "hexToBinary('00F')的转换结果为什么是'1111'而不是'00001111'？"
  - "generateDpStrStep的step(2)参数2代表什么含义？如何控制每次读取的字节数？"
---
## hexToBinary

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

### 描述

将十六进制字符串转换为二进制字符串

### 参数

`Params`

| 参数 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- |
| `value` | `string` | 是 | 十六进制字符串 |

### 返回值

无


### 示例代码

#### 基础用法

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

const { hexToBinary } = utils;

hexToBinary('ff'); // '11111111'
hexToBinary('0a'); // '1010'
hexToBinary('1');  // '1'
```


---
name: "generateDpStrStep"
mode: "api"
versionRequirements:
  - { name: "@ray-js/panel-sdk", version: "1.0.0" }
title: "转换"
summary: "介绍 base64、raw、十六进制、二进制等数据格式互转及 raw/string 型 DP 解析步进函数。"
questions:
  - "base64ToRaw函数如何将base64字符串转换为raw十六进制字符串？"
  - "rawToBase64函数将'6162636465'转换后的base64结果是什么？"
  - "hexToBinary函数如何将十六进制字符串转换为二进制字符串？"
  - "generateDpStrStep函数的步进机制是怎样的？如何使用step()逐步解析数据？"
  - "base64ToRaw('YWJjZGU=')的转换结果'6162636465'对应什么原始数据？"
  - "generateDpStrStep('3264')生成的步进函数首次调用step()返回什么值？"
  - "这些转换工具函数在处理设备raw类型或string类型DP数据时如何使用？"
  - "rawToBase64和base64ToRaw互为逆操作吗？数据是否能完全可逆转换？"
  - "hexToBinary('00F')的转换结果为什么是'1111'而不是'00001111'？"
  - "generateDpStrStep的step(2)参数2代表什么含义？如何控制每次读取的字节数？"
---
## generateDpStrStep

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

> 💡 内部使用生成器逐段读取十六进制字符串。默认每次读取 2 个字符（1 字节），可通过参数自定义。

### 描述

创建 raw 型或 string 型 DP 的步进解析函数

### 参数

`Params`

| 参数 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- |
| `dpStr` | `string` | 是 | 要解析的 DP 十六进制字符串 |

### 返回值

类型: `(num: number, type: "string" \| "number") => __object`

步进解析函数，每次调用返回下一段解析结果 { value, done }

### 示例代码

#### 基础用法

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

const { generateDpStrStep } = utils;

const step = generateDpStrStep('3264');
const val1 = step().value;  // 50  (0x32)
const val2 = step(2).value; // 100 (0x64)
```
