更新时间:2025-03-12 03:11:32下载pdf
电力线通信(Power Line Communication,PLC)子设备接入旨在降低 PLC 网关的开发门槛。涂鸦提供软硬一体化方案,硬件上使用涂鸦 PLC 模组,软件上开启 PLC 功能,就可以零代码实现 PLC 网关开发,能够接入涂鸦生态的 PLC 子设备。
本文档将介绍如何使用 TuyaOS 网关开发框架提供的 PLC 网关功能。
开发一款 PLC 网关门槛较高,并且开发周期长。为了降低开发门槛,涂鸦提供了软硬一体化方案,即使用户没有 PLC 背景知识也能开发 PLC 网关产品。
硬件上通过串口连接涂鸦 PLC 模组,软件上开启 PLC 功能,该产品就具备了 PLC 网关能力,支持接入涂鸦生态子设备。
本小节将介绍在 TuyaOS 网关开发框架如何开启 PLC 网关功能,您无需关心具体的实现方式,通过调用接口就能实现 PLC 网关功能。
开启 PLC 功能主要涉及两个接口:PLC 服务初始化接口 tuya_plc_svc_init
和 PLC 服务启动接口 tuya_plc_svc_start
;参数都是相同的 JSON 数据,主要是配置信息。
JSON 数据字段说明如下:
字段 | 描述 |
---|---|
dev_name | 指定串口设备号 |
cts | 是否开启硬件流控:
|
baud_rate | PLC 模组和网关主控芯片串口通信波特率,根据您使用的 PLC 模组要求来设置波特率 |
// ...
#include "user_plc_svc.h"
int main(int argc, char **argv)
{
ty_cJSON *app_cfg = ty_cJSON_CreateObject();
if (app_cfg == NULL) {
return OPRT_CJSON_GET_ERR;
}
ty_cJSON_AddStringToObject(app_cfg, "storage_path", "./");
ty_cJSON_AddStringToObject(app_cfg, "cache_path", "/tmp/");
// 设置存储路径
TUYA_CALL_ERR_RETURN(tuya_set_config(app_cfg));
ty_cJSON *plc_cfg = ty_cJSON_CreateObject();
if (plc_cfg == NULL) {
return OPRT_CJSON_GET_ERR;
}
ty_cJSON_AddStringToObject(plc_cfg, "dev_name", "/dev/ttyS2");
ty_cJSON_AddNumberToObject(plc_cfg, "cts", 1);
ty_cJSON_AddNumberToObject(plc_cfg, "baud_rate", 921600);
// 初始化 PLC 服务
TUYA_CALL_ERR_RETURN(tuya_plc_svc_init(plc_cfg));
// 启动 PLC 服务
TUYA_CALL_ERR_RETURN(tuya_plc_svc_start(plc_cfg));
// ...
return 0;
}
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈