### 基本指令 #### **Page指令** Page指令用于跳转到指定的页面,并可以指定动画参数ID。 **语法** ```json { "page": ["page_name_or_id", "animation_id"] } ``` * `"page"`:指令关键字,用于表示执行页面跳转操作。 * `"page_name_or_id"`:要跳转到的页面名称或者页面顺序ID。如果是用户自定义的页面名称,应该是一个字符串;如果是页面的顺序ID,应该是一个数字。 * `animation_id`:动画参数ID,用于指定页面跳转时的动画效果。如果不需要动画,则设置为0。 **参数说明** 1. `page_name_or_id`(必需):要跳转到的页面名称或者页面顺序ID。 * 如果是用户自定义的页面名称,应该是一个字符串,表示要跳转到的具体页面。这个名称应该是用户在应用程序中定义的,以确保唯一性。 * 如果是页面的顺序ID,应该是一个数字,表示要跳转到的页面在列表中的顺序。注意,这个顺序ID可能随着页面的添加或移除而变化,因此建议使用页面名称来进行跳转。 2. `animation_id`(可选):动画参数ID,用于指定页面跳转时的动画效果。如果不需要动画,则设置为0。以下是可用的动画参数ID和对应的动画效果: * `0`:无动画 * `1`:淡入淡出 * `2`:向左滑出 * `3`:向右滑出 * `4`:向上滑出 * `5`:向下滑出 **示例** 1. 跳转到名为`home`的用户自定义页面,并且不使用任何动画效果: ```json { "page": ["home", 0] } ``` 1. 跳转到顺序ID为`3`的页面,并指定动画参数ID为2(向左滑出动画): ```json { "page": [3, 2] } ``` 1. 跳转到名为`settings`的用户自定义页面,使用淡入淡出动画效果: ```json { "page": ["settings", 1] } ``` 1. 跳转到顺序ID为`5`的页面,并指定动画参数ID为4(向上滑出动画): ```json { "page": [5, 4] } ``` 1. 跳转到名为`login`的用户自定义页面,并使用默认的动画效果(无动画): ```json { "page": ["login", 0] } ``` #### **Rest指令** Rest指令用于复位串口屏的间隔时间,单位为毫秒(ms),0表示立即复位,模拟器上该指令暂不生效。 **语法** ```json { "rest": "rest_time" } ``` * `"rest"`:指令关键字,用于表示复位串口屏的间隔时间。 * `rest_time`:复位串口屏的间隔时间,单位为毫秒(ms)。0表示立即复位。 **参数说明** 1. `rest_time`(必需):复位串口屏的间隔时间,单位为毫秒(ms)。如果设置为0,则立即复位串口屏;否则,等待指定的间隔时间后再进行复位。 **示例** 1. 立即复位串口屏: ```json { "rest": 0 } ``` 1. 在500毫秒后复位串口屏: ```json { "rest": 500 } ``` #### **WiFi指令**(仅适用于ESP32系列串口屏) ```json { "wifi": { "prop": { "ssid": "ASUS3", "pwd": "987654321" } } } ``` #### 字段说明 * `wifi`: 根字段,用于标识WiFi配置指令。 * `prop`: WiFi属性字段,包含具体的WiFi配置信息。 * `ssid`: WiFi网络的SSID(网络名称),这里的示例值为`"ASUS3"`。 * `pwd`: WiFi网络的密码,这里的示例值为`"987654321"`。 #### 功能说明 此指令用于通过串口发送WiFi配置信息,以便设备连接到指定的WiFi网络。发送该指令后,设备将尝试使用提供的SSID和密码进行WiFi连接。 #### 示例 假设我们有一个设备可以通过串口接收JSON格式的指令来配置WiFi,下面是一个具体的使用示例: 1. **准备指令**: ```json { "wifi": { "prop": { "ssid": "ASUS3", "pwd": "987654321" } } } ``` 2. **发送指令**: 将上述指令通过串口发送到设备。例如,可以使用串口通信工具(如`minicom`或`PuTTY`)发送这段JSON字符串。 3. **设备行为**: * 设备接收到指令后,解析JSON格式。 * 设备提取`ssid`和`pwd`的值。 * 设备尝试连接到SSID为`ASUS3`且密码为`987654321`的WiFi网络。 * 如果连接成功,设备将返回一个成功的消息。 * 如果连接失败,设备将返回一个错误消息。 #### 注意事项 * 确保发送的JSON格式正确,无语法错误。 * 确保WiFi网络的SSID和密码正确。 * 设备应具备正确的串口配置和WiFi模块。 #### **HTTP/HTTPS请求指令**(仅适用于ESP32系列串口屏) 本说明文档解释了通过串口发送指令来配置HTTP/HTTPS请求的过程,指令仅适用于ESP32系列的串口屏。指令以JSON格式传输,包含请求URL和数据存储变量的配置信息。 #### 指令格式 ```json { "http": { "prop": { "url": "http://192.168.100.202:8008/", "sval": "$globalVariable1" } } } ``` #### 字段说明 * `http`: 根字段,用于标识HTTP/HTTPS请求配置指令。 * `prop`: 请求属性字段,包含具体的HTTP/HTTPS配置信息。 * `url`: 请求的URL,可以是HTTP或HTTPS协议。示例值为`"http://192.168.100.202:8008/"`。 * `sval`: 请求获取到的数据将保存到指定的全局变量中,变量名需要以`$$`符号开头,并且必须在编辑器中的全局变量组件中定义。示例值为`"$globalVariable1"`。 #### 功能说明 此指令用于通过串口发送HTTP/HTTPS请求配置信息,以便ESP32系列的串口屏向指定的URL发起请求,并将请求返回的数据保存到指定的变量中。 #### 示例 假设我们有一个ESP32串口屏可以通过串口接收JSON格式的指令来配置HTTP/HTTPS请求,下面是具体的使用示例: 1. **准备指令**: ```json { "http": { "prop": { "url": "https://example.com/api/data", "sval": "$responseData" } } } ``` 2. **发送指令**: 将上述指令通过串口发送到ESP32串口屏。例如,可以使用串口通信工具(如`minicom`或`PuTTY`)发送这段JSON字符串。 3. **设备行为**: * ESP32串口屏接收到指令后,解析JSON格式。 * 设备提取`url`和`sval`的值。 * 设备向`url`指定的地址发起HTTP或HTTPS请求。 * 请求成功后,设备将获取到的字符串数据保存到`sval`指定的变量中(例如`$responseData`)。 * 如果请求失败,设备将返回一个错误消息,并可能提供失败原因。 #### 注意事项 * 确保发送的JSON格式正确,无语法错误。 * 确保URL格式正确,支持HTTP和HTTPS协议。 * `sval`指定的变量名需要以\$符号开头,并且必须是事先在编辑器中的全局变量组件中定义的全局变量。 * 如果`$globalVariable1`没有在编辑器中定义,指令将无法正常工作。 #### **gval赋值指令** gval可通过串口发送指令来设置全局变量的过程。指令以JSON格式传输,包含全局变量名称和赋值信息。全局变量以\$符号开头,并且可以赋值为字符串或另一个全局变量。 #### 指令格式 ```json { "gval": { "name": "$globalVariable1", "val": "ok_test" } } ``` #### 字段说明 * `gval`: 根字段,用于标识全局变量赋值指令。 * `name`: 需要赋值的全局变量名,必须以`$$`符号开头,并且必须在编辑器中的全局变量组件中定义。示例值为`"$globalVariable1"`。 * `val`: 要赋给全局变量的值,可以是一个字符串(如 `"ok_test"`)或另一个全局变量(如 `"$anotherGlobalVariable"`)。 #### 功能说明 此指令用于通过串口发送全局变量的赋值信息,以便ESP32系列的串口屏更新指定全局变量的值。全局变量可以被赋值为一个字符串或另一个全局变量的值。 #### 示例 假设我们有一个ESP32串口屏可以通过串口接收JSON格式的指令来设置全局变量,下面是具体的使用示例: 1. **准备指令**: ```json { "gval": { "name": "$globalVariable1", "val": "$globalVariable2" } } ``` 2. **发送指令**: 将上述指令通过串口发送到ESP32串口屏。例如,可以使用串口通信工具(如`minicom`或`PuTTY`)发送这段JSON字符串。 3. **设备行为**: * ESP32串口屏接收到指令后,解析JSON格式。 * 设备提取`name`和`val`的值。 * 设备将`val`的值赋给`name`指定的全局变量(如果`val`是另一个全局变量名,设备将获取该变量的值并赋给`name`指定的全局变量)。 #### 注意事项 * 确保发送的JSON格式正确,无语法错误。 * 确保`name`指定的变量名以\$符号开头,并且必须是事先在编辑器中的全局变量组件中定义的全局变量。 * `val`可以是字符串或另一个全局变量(同样需要\$符号开头)。 #### **gval累加指令** gval可通过串口发送指令来累加全局变量值的过程,指令以JSON格式传输,包含全局变量名称和累加值的信息。全局变量以\$符号开头,并且可以累加字符串或另一个全局变量的值。 #### 指令格式 ```json { "gval": { "name": "$globalVariable1", "add": "$globalVariable1" } } ``` #### 字段说明 * `gval`: 根字段,用于标识全局变量累加指令。 * `name`: 需要累加值的全局变量名,必须以\$符号开头,并且必须在编辑器中的全局变量组件中定义。示例值为`"$globalVariable1"`。 * `add`: 要累加到全局变量`name`的值,可以是一个字符串(如 `"ok_test"`)或另一个全局变量(如 `"$anotherGlobalVariable"`)。 #### 功能说明 此指令用于通过串口发送全局变量的累加信息,以便ESP32系列的串口屏更新指定全局变量的值。全局变量可以被累加字符串或另一个全局变量的值。 #### 示例 假设我们有一个ESP32串口屏可以通过串口接收JSON格式的指令来累加全局变量的值,下面是具体的使用示例: 1. **准备指令**: ```json { "gval": { "name": "$globalVariable1", "add": "additional_string" } } ``` 2. **发送指令**: 将上述指令通过串口发送到ESP32串口屏。例如,可以使用串口通信工具(如`minicom`或`PuTTY`)发送这段JSON字符串。 3. **设备行为**: * ESP32串口屏接收到指令后,解析JSON格式。 * 设备提取`name`和`add`的值。 * 设备将`add`的值累加到`name`指定的全局变量(如果`add`是另一个全局变量名,设备将获取该变量的值并累加到`name`指定的全局变量)。 #### 注意事项 * 确保发送的JSON格式正确,无语法错误。 * 确保`name`指定的变量名以\$符号开头,并且必须是事先在编辑器中的全局变量组件中定义的全局变量。 * `add`可以是字符串或另一个全局变量(同样需要以\$符号开头)。 #### **gval打印指令** gval可通过串口发送指令来打印全局变量值,指令适用于所有串口屏。指令以JSON格式传输,包含全局变量名称和打印格式的信息。打印格式支持C语言的`printf`标准格式,打印即通过串口输出。 #### 指令格式 ```json { "gval": { "name": "$globalVariable1", "get": "%s\n" } } ``` #### 字段说明 * `gval`: 根字段,用于标识全局变量打印指令。 * `name`: 需要打印值的全局变量名,必须以\$符号开头,并且必须在编辑器中的全局变量组件中定义。示例值为`"$globalVariable1"`。 * `get`: 打印格式,支持C语言的`printf`标准格式。示例值为`"%s\n"`,表示打印字符串并换行。 #### 功能说明 此指令用于通过串口发送全局变量的打印信息,以便串口屏打印指定全局变量的值。打印格式可以使用C语言的`printf`标准格式,例如`%s`、`%d`、`%f`等。 #### 示例 假设我们有一个串口屏可以通过串口接收JSON格式的指令来打印全局变量的值,下面是具体的使用示例: 1. **打印字符串变量**: ```json { "gval": { "name": "$globalVariable1", "get": "%s\n" } } ``` * 发送上述指令后,设备将以字符串格式打印`$globalVariable1`的值,并在打印后换行。 2. **打印整数变量**: ```json { "gval": { "name": "$globalVariable2", "get": "%d\n" } } ``` * 发送上述指令后,设备将以整数格式打印`$globalVariable2`的值,并在打印后换行。 3. **打印浮点数变量**: ```json { "gval": { "name": "$globalVariable3", "get": "%f\n" } } ``` * 发送上述指令后,设备将以浮点数格式打印`$globalVariable3`的值,并在打印后换行。 4. **打印多种格式**: ```json { "gval": { "name": "$globalVariable4", "get": "Value: %s, ID: %d\n" } } ``` * 发送上述指令后,设备将以指定格式打印`$globalVariable4`的值和ID,并在打印后换行。 #### 注意事项 * 确保发送的JSON格式正确,无语法错误。 * 确保`name`指定的变量名以\$符号开头,并且必须是事先在编辑器中的全局变量组件中定义的全局变量。 * `get`的值必须是有效的C语言`printf`标准格式。 #### **mid指令** mid指令通过串口发送指令来获取设备的唯一识别码(MID),并可以将其保存到指定的全局变量中。指令适用于所有串口屏。指令以JSON格式传输,包含全局变量名的信息。 #### 指令格式 ```json { "mid": { "sval": "$globalVariable1" } } ``` #### 字段说明 * `mid`: 根字段,用于标识获取设备唯一识别码的指令。 * `sval`: 用于保存设备唯一识别码的全局变量名,必须以\$符号开头,并且必须在编辑器中的全局变量组件中定义。示例值为`"$globalVariable1"`。 #### 功能说明 此指令用于通过串口请求设备的唯一识别码(MID),并将其保存到指定的全局变量中。该全局变量可以在之后的操作中使用。 #### 示例 假设我们有一个串口屏可以通过串口接收JSON格式的指令来获取设备的唯一识别码,并将其保存到指定的全局变量中,下面是具体的使用示例: 1. **获取唯一识别码并保存到全局变量**: ```json { "mid": { "sval": "$globalVariable1" } } ``` * 发送上述指令后,设备将获取其唯一识别码,并将其保存到`$globalVariable1`中。 #### 注意事项 * 确保发送的JSON格式正确,无语法错误。 * 确保`sval`指定的变量名以\$符号开头,并且必须是事先在编辑器中的全局变量组件中定义的全局变量。 * 设备必须支持通过串口获取唯一识别码的功能。 #### **dim指令** 通过串口发送指令来设置屏幕亮度。指令适用于所有支持此功能的串口屏。指令以JSON格式传输,包含亮度值的信息。 #### 指令格式 ```json { "dim": 50 } ``` #### 字段说明 * `dim`: 根字段,用于标识设置屏幕亮度的指令。 * 其值为整数,表示屏幕亮度的百分比,范围为 0 到 100。 #### 功能说明 此指令用于通过串口设置屏幕的亮度。亮度值以百分比表示,0 表示最暗,100 表示最亮。 #### 示例 假设我们有一个串口屏可以通过串口接收 JSON 格式的指令来调整屏幕亮度,下面是具体的使用示例: 1. **设置屏幕亮度为50%**: ```json { "dim": 50 } ``` * 发送上述指令后,设备将设置屏幕亮度为 50%。 #### 注意事项 * 确保发送的 JSON 格式正确,无语法错误。 * 亮度值必须在 0 到 100 的范围内,超出范围的值可能会导致设备忽略此指令或设置失败。 * 在发送指令前,确保设备处于可接收指令的状态。 #### **baud指令** 设置串口屏波特率 #### 指令格式 ```json { "baud": 921600 } ``` #### 字段说明 * `baud`: 根字段,用于标识设置串口屏波特率的指令。 * 其值为整数,表示要设置的波特率(单位:比特/秒,bps)。本文档支持的最高波特率为921600 bps。 #### 功能说明 此指令用于通过串口设置串口屏的波特率。波特率是串口通信中数据传输的速度,单位为比特每秒(bps)。设置新的波特率后,串口屏将立即使用新的波特率进行通信。 #### 示例 假设我们有一个串口屏可以通过串口接收 JSON 格式的指令来调整波特率,下面是具体的使用示例: 1. **设置波特率为921600**: ```json { "baud": 921600 } ``` * 发送上述指令后,设备将设置串口波特率为 921600 bps。 #### 注意事项 * 确保发送的 JSON 格式正确,无语法错误。 * 波特率值应为常用的标准值,如 9600, 14400, 19200, 38400, 57600, 115200, 230400, 460800, 921600。使用非常规波特率值可能会导致通信异常。 * 在设置波特率后,确保主机(如PC)和设备都使用相同的波特率进行通信。 #### 结论 通过上述说明,用户可以通过串口发送特定格式的 JSON 指令来设置串口屏的波特率,支持的最高波特率为921600 bps。确保主机和设备设置相同的波特率,可以保证通信正常进行。