更新时间:2024-08-01 03:30:47下载pdf
TuyaOS 定义了一套标准化的 TuyaOS Kernel Layer(TKL),旨在屏蔽硬件和系统的差异性,实现跨平台兼容性。TKL 接口涵盖系统和业务相关的功能,例如内存分配、互斥锁和信号量等。
针对 Linux 操作系统,系统相关的接口遵循统一的 POSIX 标准。因此,如果没有特殊需求,您可以直接使用 TuyaOS SDK 开发环境提供的示例代码。然而,业务相关的接口在不同的硬件和芯片上可能存在差异,您需要根据具体情况进行适配。
本文将介绍新旧版在 Wi-Fi 及蓝牙适配层接口的差异及如何适配必要的 TKL 接口,以便您能够轻松地实现 TKL 接口的适配,从而确保 TuyaOS SDK 开发框架在特定的硬件平台上顺利运行。
旧版本接口 | 新版本接口 | 区别 |
---|---|---|
无 | tkl_wifi_init | 新增接口,该接口的使用及注意事项,参考 热点配网。 |
tuya_adapter_wifi_ap_start | tkl_wifi_start_ap | 仅修改函数名称 |
tuya_adapter_wifi_ap_stop | tkl_wifi_stop_ap | 仅修改函数名称 |
tuya_adapter_wifi_set_work_mode | tkl_wifi_set_work_mode | 仅修改函数名称 |
tuya_adapter_wifi_get_work_mode | tkl_wifi_get_work_mode | 仅修改函数名称 |
tuya_adapter_wifi_station_connect | tkl_wifi_station_connect | 仅修改函数名称 |
tuya_adapter_wifi_station_disconnect | tkl_wifi_station_disconnect | 仅修改函数名称 |
tuya_adapter_wifi_station_get_status | tkl_wifi_station_get_status | 在旧版基础上新增了 DHCP 失败的枚举值 |
tuya_adapter_wifi_get_ip | tkl_wifi_get_ip | 仅修改函数名称 |
tuya_adapter_wifi_sniffer_set | 无 | 旧版的 EZ 配网存在一定的安全风险,涂鸦将下线该功能 |
旧版本接口 | 新版本接口 | 区别 |
---|---|---|
tuya_os_adapt_bt_port_init | tkl_ble_stack_init | 在旧版基础上新增角色入参 SERVER 和 CLIENT |
tuya_os_adapt_bt_send | tkl_ble_gatts_value_notify | 在旧版基础上新增连接及属性句柄 |
tuya_os_adapt_bt_reset_adv | tkl_ble_gap_adv_rsp_data_set | 仅修改函数名称 |
tuya_os_adapt_bt_start_adv | tkl_ble_gap_adv_start | 在旧版基础上新增入参,具体参考 TKL_BLE_GAP_ADV_PARAMS_T 结构体 |
tuya_os_adapt_bt_stop_adv | tkl_ble_gap_adv_stop | 仅修改函数名称 |
无 | tkl_ble_gap_callback_register | 新增接口,该接口的使用及注意事项,参考 蓝牙配网。 |
无 | tkl_ble_gatt_callback_register | 新增接口,该接口的使用及注意事项,参考 蓝牙配网。 |
无 | tkl_ble_gatts_service_add | 新增接口,该接口的使用及注意事项,参考 蓝牙配网。 |
无 | tkl_ble_gattc_exchange_mtu_request | 新增接口,该接口的使用及注意事项,参考 蓝牙配网。 |
以下系统相关接口,目前输出的 TuyaOS SDK 都是标准的 Linux 实现,一般情况无需修改。如果您的平台有特殊需要,请自行修改。
模块 | 描述 |
---|---|
tkl_fs | 提供操作文件系统的接口,包括文件的创建、打开和读写等操作 |
tkl_system | 提供 OS 相关的接口,包括获取系统时间、延时和重启等操作 |
tkl_memory | 提供内存管理的接口,包括内存分配、释放和拷贝等操作 |
tkl_thread | 提供线程管理的接口,包括线程的创建和销毁等操作 |
tkl_mutex | 提供互斥锁管理的接口,包括互斥锁的创建、上锁、解锁和销毁等操作 |
tkl_semaphore | 提供信号量管理的接口,包括信号量的创建、等待、发送和销毁等操作 |
tkl_uart | 提供串行通信的接口,包括 UART 的初始化、发送和接收等操作 |
TuyaOS SDK 默认输出日志到终端上。应用如需保存到其他地方,可以在 tkl_output
下面的 tkl_log_output
接口中实现。
// 把日志打印到终端
VOID_T tkl_log_output(IN CONST CHAR_T *str, ...)
{
printf("%s", str);
fflush(stdout);
return;
}
// 把日志保存到文件
VOID_T tkl_log_output(IN CONST CHAR_T *str, ...)
{
uFILE * fp = NULL;
// 打开文件
fp = ufopen("sweeper_log.txt", "w+");
if(NULL == fp) {
return ;
}
// 写入文件
uiWriteCnt = ufwrite(fp, str, strlen(str));
if(uiWriteCnt != strlen(str)) {
TAL_PR_ERR("sweeper_log uf file write data error!");
return ;
}
// 关闭文件
ufclose(fp);
return;
}
如需使用其他 TKL 开头的接口,您可以自行适配。
其他 TKL 接口功能,参考 移植 TuyaOS 到 Linux 平台。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈