查看“Developing a hardware plugin”的源代码
←
Developing a hardware plugin
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
=我应该创建一个 C++ 硬件插件吗?= 可能不需要.<br><br>Domoticz 支持 Python 插件框架,无论从保证 Domoticz 核心系统更小还是更专注等方面都应该使用 Python. 细节请参考这里: [[Developing a Python plugin]] 只有不能被 Python 框架很好兼容的硬件才需要增加 C++ 插件.<br> =在硬件目录创建一个 .cpp 和一个 .h 文件= 通过查看其他插件作为一个好的例子,重命名这些文件和这些文件中的类和定义。例如:Sonos 硬件插件,我修改了这些文件: * hardware/SonosPlugin.cpp * hardware/SonosPlugin.h =在适当的全局文件中增加新的硬件= 接下来我们需要使 domotic 检测到新的插件存在。 '''main/RFXNames.h''' 增加 HTYPE_SonosPlugin 到 _eHardwareTypes '''main/RFXNames.cpp''' 增加 HTYPE_SonosPlugin 到 Hardware_Type_Desc '''main/mainworker.cpp''' 为硬件增加 #include "../hardware/SonosPlugin.h" 到 includes 文件末尾。 为 AddHardwareFromParams 方法添加 CSonosPlugin 的实例化(new)。 '''main/WebServer.cpp''' 通过 Cmd_UpdateHardware 增加 HTYPE_SonosPlugin 的操作,确保所有所需的硬件设置都有值。 在添加串行设备时,将HTYPE添加到 main/RFXNames.cpp 中的 IsSerialDevice 中。 =在硬件选项卡中添加创建新硬件的 UI 界面= '''www/app/HardwareController.js''' 在 UpdateHardware 和 UpdateHardware 中增加硬件验证字段(查找 text.indexOf("YourModelPlugin")). 不要忘记编辑 RefreshHardwareTable 函数,其中的硬件项目是由数字id引用的!!这里假设不需要额外的硬件配置数据。如果需要,其他插件可以重用数据库中可用的硬件字段: Address VARCHAR(20), Port INTEGER, Username VARCHAR(100), Password VARCHAR(100), Mode1 - Mode5 CHAR 如果需要让用户编辑该字段,请在 HardwareController.js 中创建相应的 Edit* 函数。(使用已有的函数是一个好办法) '''www/html5.appcache''' 在第二行增加 ref 编号,以让浏览器知道 js 文件已经更新并强制刷新硬件列表。 =修改 makefile= '''CMakeLists.txt''' 增加 hardware/SonosPlugin.cpp 到编译目标 - 技巧: 在调试的时候,把它加在最上面(问题将更早的暴露); 然后添加最新的硬件代码到目标中。 为链接增加必须的特定库。方法如下(gcc 需要使用 -llibname 语法): pthread gupnp-1.0 gssdp-1.0 gupnp-av-1.0 glib-2.0 gobject-2.0 gthread-2.0 增加必须的特定的 headers/includes. '''Build Makefile''' 修改 CMakeLists.txt 之后创建 makefile <nowiki> cmake CMakeLists.txt (raspberry) or cmake -DCMAKE_BUILD_TYPE=Release . (cubieboard) </nowiki> 必须在 makefile 中添加特定插件所需的所有的库和头文件。可能还包括其他编译/链接选项。(CMake 的语法很复杂,我刚刚以一种快速而糟糕的方式添加了我需要的东西,但是肯定有更好的办法。) =安装必须的软件包= 树莓派:通过 sudo apt-get install 命令安装,有时你需要 -dev 版本,你可能不知道。 在这种情况下,必须安装这些库。通过 "apt-cache search" 命令检查最新可用版本的名字。 libgupnp-1.0-dev libgupnp-av-1.0-dev libgssdp-1.0-dev libsoup2.4-dev libxml2 // libg glib =Compile and have fun=
返回
Developing a hardware plugin
。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
Wiki首页
Domoticz 中文站
Domoticz 论坛
Domoticz Github
随机页面
特殊页面
特殊页面
所有页面
分类
最近更改
工具
链入页面
相关更改
特殊页面
页面信息