mindstone包为创建控制系统提供了一个易于使用的框架。

mindstone的Python项目详细描述


灵石

mindstone包为创建控制系统提供了一个易于使用的框架。 这个软件包包含了一系列工具,这些工具使之成为可能 用于远程处理源来控制本地参与者。在

包定义了两个实体。第一种是所谓的司机。这个实体 直接与给定平台接口,如Raspberry Pi微控制器, 并充当所述平台和更高功能控制器之间的桥梁。 另一个实体是控制者。控制器处理大部分处理和 定义驾驶员操作的行为和协议。控制器会这样做 被称为处理门的对象。这些门相互连接形成一个网络。 门代表简单的过程,可以在 产生不同行为的不同方式。Gates还允许用户扩展 通过允许用户嵌入自己定制的功能来实现控制系统的功能 并将运营纳入网络。在

安装

使用pip安装和更新

pip install mindstone

从Github克隆

^{pr2}$

基本用途

创建EHA驱动程序>

在驾驶台上,mindstone套装可以 按以下方式创建新驱动程序:

frommindstone.embeddedimportstart_driverif__name__=='__main__':start_driver("raspberry",hostname="10.0.0.1",port=50000)

这将启动驾驶员侧的连接,允许 一个新的控制器连接到它。在这种情况下,平台 驱动程序使用的是Raspberry Pi平台。在

创建控制器

frommindstone.controlimport*defchange_servo_angle(**kwargs):return{"test_component_1":{"angle":90,"is_active":True}}gates=[RootGate("host_1",{"my_component":("servo",{"model":"SG90","trigger":8})}),FunctionGate(change_servo_angle),ConfigGate("host_1")]connections=[(0,1),(1,2)]hosts={"host_1":("10.0.0.1",50000)}my_controller=Controller(gates,connections,hosts)final_received_data=my_controller.run()
  1. 导入控制器工具

    在开始创建控制器之前,我们需要导入所有 必要工具:

    frommindstone.controlimport*
  2. 设置门和门连接

    gates=[RootGate("host_1",{"my_component":("servo",{"model":"SG90","trigger":8})}),FunctionGate(change_servo_angle),ConfigGate("host_1")]connections=[(0,1),(1,2)]hosts={"host_1":(get_hostname(),50000)}

    每个门在激活时执行特定任务。 {cd1>开始于^门。当激活时,它初始化 与司机的联系。在这个连接过程中,它告诉驱动程序哪些组件 驾驶员应向其所在的平台注册,并接收有关 连接的驱动程序,可供网络中其他门使用。在

    函数门FunctionGate()在触发时执行可调用。这个可赎回的 接收从上一个门接收的数据并输出新的 python字典形式的数据。在

    最后,配置门ConfigGate()用于与 驱动程序正在使用的组件。这将把来自前一个门的数据作为 已连接驱动程序的新配置。本质上,如果您只连接到一个主机, 在网络运行期间,只需要一个配置门。在

    为了将这些门连接起来形成网络,在 保存它们的列表用于标识每个门。或者,字典也可以 当关键字被用来标识门时使用。在

    对于需要与驱动程序通信的门(如根门和配置门),一个 主机需要连接,这样网关才能知道它应该连接到哪里。这些主机已定义 使用dictionary对象,如上例中使用的对象。然后它被传送到控制器, 当控制器被初始化时。 重要的是要确保gate在网络中使用的任何主机都列在这个字典中。在

  3. 初始化控制器

    my_controller=Controller(gates,connections,hosts)final_received_data=my_controller.run()

    现在一切都已经设置好了,我们终于可以初始化控制器对象了。 一旦初始化,可以使用run()方法激活控制器。在

出资人

  • 乔舒亚·塞洛

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

推荐PyPI第三方库


热门话题
java JavaFX触控事件未触发Ubuntu 20.04触控笔记本电脑   java如何在AWT中关闭窗口?   java Dagger 2:注入具有构造函数参数的成员   创建对象的Java调用类   对象我想在A.java中添加两个数字,并在B.java中打印结果(如何?)   java如何使用AWS SDK for Android从数字海洋空间下载图像?   java Facebook sdk 4.0.1无法使用Android studio获取某些字段   4分钟后web应用程序(Angular 8和Rest API)中的java自动会话超时   在Eclipse for Java EE developers edition中禁用HTML警告   java按字母顺序排列字符串我错过了什么明显的东西吗?   java在Jshell中println和printf有什么不同