浏览器窗口之间同步上传文件

对于PiCockpit,我目前正在开发Digital Nose应用程序。这个应用程序需要上传BSEC配置文件--这是一个二进制数据。一旦用户上传了这个文件,它就会通过MQTT发布,picockpit-client可以用它来配置BSEC人工智能算法来进行气体检测。这里有一个小...

更多内容

Vuetify :: 以编程方式打开细节行

对于即将发布的PiCockpit v2.0版本,我正在准备一个GPIO应用程序。GPIO条目是表格行--为了配置它们,我们希望能够通过点击配置按钮来访问详细行:点击雪佛龙或配置按钮将导致详细行的打开。这里...

更多内容

使用DBus在Python中启用和禁用一个systemd服务

即将到来的picockpit-client对来自前端的删除事件的反应是禁用它的服务(然而应用程序将保持安装)。同样地,当你决定再次运行picockpit-client连接时,服务将被重新启用并自动启动。这可以通过Python的DBus接口实现。DBus是一个用于交互的总线系统。

更多内容

如何在MongoDB集合中的嵌入式文档中设置唯一的对象ID

MongoDB的updateMany可以用来更新所有匹配的文档。问题是,如果你想在更新中设置唯一的新ObjectID,你会发现MongoDB为每个条目设置相同的ObjectID: db.getCollection('mypis_collectedpis').updateMany({}, {$set: {apps: { "com.picockpit/core":{ meta: { version:"2.0", name: "PiCockpit Core", image:"", 描述:"PiCockpit.com...

更多内容

在Crystal Lang中处理JSON::Any中的NIL问题

使用Crystal开发时的一个挑战是,它对数据类型的宽容度不如Python或Ruby,nil会让你忙得不可开交。下面的错误信息:从Nil到String的转换失败,在/usr/share/crystal/src/json/any.cr:220:5:220可以通过以下方式解决。# cast to string, THEN check if it is nil if...

更多内容

Chromium退出代码 -5

虽然用chromium-browser -display=:0 https://www.picockpit.com 运行Chromium可以让你从SSH连接中启动Chromium(并且它将输出到X服务器的主显示屏上),但当你试图用Python中的subprocess.Popen运行它时,这将会失败。"command":["chromium-browser", "-display=:0", "https://picockpit.com"] (这是我的JSON格式的一部分...

更多内容

使用Python的安全命令执行:subprocess.Popen

在开发picockpit-client时,安全对我来说很重要。以下内容适用于Linux系统(但可能适用于所有类似Unix的系统,包括macOS)Python允许使用subprocess模块运行外部命令。 import subprocess 在即将到来的PiCockpit版本中,用户将能够创建自己的按钮(简单地编辑...

更多内容