机器人管理守护程序

pepper2的Python项目详细描述


辣椒2

CircleCITest CoverageMaintainabilityMIT licenseBees

机器人管理守护程序

依赖关系

pepper2的一些依赖项在PyPI上不可用。在

  • D总线
    • 于1.12.16+测试
  • GLib2.46+
  • girepository1.46+
  • Python 3.6+
  • U盘2
    • 2.8.1+测试
  • udiskie或类似的使用udisks2的自动安装守护程序。
    • 1.7.7测试

这些软件包通常可以在带有桌面界面的系统上找到。在

Instructions for setting up a Debian 10 system包含在本回购中。在

跑步

这个回购中有两个程序,它们之间有共享代码。在

  • pepperctl
    • 通过D-Bus与pepperd通信的CLI工具。在
  • pepperd
    • 位于系统总线上的守护程序
    • 从udisk侦听装载和清理事件
    • 注册USB。在
    • 触发器根据一组条件为USB运行和停止事件。在

为了运行pepperd,我们需要告诉D-Bus我们有在系统总线上创建服务的权限。 这可以通过在/etc/dbus-1/uk.org.j5.pepper2.conf中放置一个配置文件来完成。 此存储库中包含一个配置文件示例:uk.org.j5.pepper2.conf。在

使用

pepperd应该作为后台进程使用systemd在后台运行。在

USB驱动器应该是自动安装的,pepper2将通过UDisk检测新驱动器。在

驱动器上的用户代码main.py将开始执行,stdout和{}将被记录到log.txt。在

  • 查看守护进程状态:pepperctl status
  • 查看用户代码状态:pepperctl usercode status
  • 终止用户代码:pepperctl usercode kill
  • 在已插入的驱动器上启动用户代码:pepperctl usercode start
  • 查看用户代码的实时日志:journalctl -ft pepper2-usercode

未来发展

pepper2 Entity Diagram

上图显示了使用pepper2的典型系统的工作原理。在

核心组件

核心组件对于使用pepper2是必不可少的。它们都包含在本次回购中。在

  • pepper2
    • 要与pepper2-daemon交互的Python库
    • 从用户那里抽象出D-Bus。在
  • pepper2-daemon
    • 侦听UDisks2事件的守护程序。在
    • 根据配置中定义的条件执行操作。
      • 管理用户代码进程
    • 提供可访问的“元数据”。
      • e、 gUSERCODE_DIRARENASTART_TRIGGER_STATE
  • pepper2-cli
    • 围绕pepper2的简单包装
    • 允许从CLI控制守护进程以进行调试和bash脚本。在

附加组件

  • pepper2-usercode
    • 可能对用户代码进程与pepper2交互有用的通用组件
    • 例如,等待启动。在
  • pepper2-leds
    • 侦听来自pepper2-daemon的信号事件,并根据配置操作GPIO管脚。在
  • pepper2-servohack
    • 侦听来自pepper2-daemon的信号事件并重置USB总线。bug in SR SBv4的解决方法

开发资源

这个程序大量使用D-Bus,这不是世界上最容易理解的事情。在

捐款

这个项目是根据麻省理工学院的许可证发布的。有关详细信息,请参阅许可证。在

贡献者文件可以通过执行贡献者.gen。此生成的文件包含对Pepper2作出贡献的人的列表。在

词源学

不,不是第二版。在

拼写是pepper2,很像j5。不需要大写字母。在

Wouldn't you like to be a pepper too?

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android首选项相同getPreference()值的不同数据   字符串如何在Java中连接两个列表中的单词   安卓 Java Socket编程:检测客户端和服务器是否连接   使用JTextField的java无法将值转换为int   在java中,如何在不通过超级构造函数设置的情况下将消息设置为自定义异常类   用于标识属性值的java正则表达式模式   Android中的java不可见谷歌地图   java正确取消启动ExecutorService的JavaFX任务   在非活动java类中使用安卓的融合位置提供程序,并在主活动类中获取经度和纬度   spring为什么我的大摇大摆不能用springboot在java中工作?   java JSF(2.2)ViewScope在Weblogic 12.2.1.2和JDK 8上使用Spring 4.3.7(在Mac OS和Docker Oracle Linux环境上)   java如何用一个按钮提高计时器速度   java如何检查字符是否是元音?   注册表引用了不存在的Java运行时环境安装或运行时已损坏错误   来自ResultSet java的mysql getDateTime   maven LanguageTool Java API是否具有“无用”依赖关系?   twitter api身份验证的java Trycatch问题   java在Apache Struts 1.1中是否可以显式白名单?   安卓致命异常:主java。lang.RuntimeException:被问及未知片段