sysfs gpio实用程序

trimarlib-sysfsgpio的Python项目详细描述


trimarlib sysfsgpio

python gpio库,使用linux sysfs接口。

开始

这些说明将在本地计算机上为您获取项目的副本,以便进行开发和测试。 有关如何在活动系统上部署项目的说明,请参见Deployment

先决条件

构建过程需要一些基本的开发工具:

  • make-gnu make程序,用于*nix或windows系统,用于执行生成和测试目标
  • git-不仅用于克隆存储库,还用于自动版本控制(请参见Versioning
  • python3

两个标准的python包用于构建和安装步骤:

  • setuptools
  • wheel

库不依赖于任何第三方包。

建造和释放

调用make all(默认目标)准备分发存档。它分两步完成:

  1. 查询git存储库中的标记(git describe命令)以确定当前版本并生成 version.py文件,
  2. 调用传递setup.py脚本的python解释器来准备源代码和轮子分发。

在windows机器上运行时,Makefile调用的python解释器默认为pythonpython3否则。在这两种情况下,都可以重写它,将PYTHON变量传递给命令, 例如make all PYTHON=python3

发布过程是自动化的,并且基于gitlab ci/cd环境-每个提交都会触发一个构建作业 尝试生成和安装构建的包(尚未实现测试,需要可用的硬件 平台)。如果已标记提交,则生成的控制盘分发将传递到部署阶段,并且 运行程序尝试将包上载到项目设置中指定的存储库。

测试

测试源文件位于sysfsgpio/tests目录中。测试基于unittestpython 内置软件包。Makefile定义了调用所有测试的test目标。

测试分为两个步骤:

  • 实用功能测试-对所有辅助功能进行单元测试。那些测试是 独立于平台(即应通过*nix或windows机器);
  • Pin测试-执行Pin类的单元测试。这些测试依赖于sysfslinux 在Windows计算机上运行时跳过。

部署

库不打算在独立配置中使用-主要目的是 由更高级别的应用程序定义为依赖项。但是这是完全正确的 使用pip手动安装。
请记住,在 在没有超级用户权限的情况下可以访问pin。包指定了3个入口点(可访问 作为命令行工具)以简化设置过程(开发并确认脚本 运行ARMBIAN分发的Orange PI平台上的工作)。这些入口点是:

  • sysfsgpio-install-service-此命令安装并启用systemdgpio-exporter服务, 它在系统启动时导出Orange PI SBC上可用的所有空闲管脚;
  • sysfsgpio-install-rules-此命令安装udev规则文件,确保每个导出的 pin有rw模式可用于staff组;
  • sysfsgpio-install-这个调用上面的命令来减少设置系统所需的命令数量。

每个命令都可以用^ {CD32 >}调用来重写现有文件——没有这个命令 开关命令无法打印正确的消息。

NOTE: The user needs to become member of the staff group to use the pins without super-user rights.

版本控制

该项目使用基于存储库标记功能的简单模式进行版本控制。见Makefile 有关实现的详细信息,有关可用版本,请参见 tags on this repository

使用量

有关API文档,请参阅docstrings。

  • 示例使用插脚PA21作为输入:
fromsysfsgpioimportPindefcallback(sender,value):print('pin={}, value={}'.format(sender,value))pin=Pin('PA21')pin.direction='in'pin.register_callback(callback)pin.enabled=True
  • 使用引脚PA20作为输出的示例:
fromsysfsgpioimportPinimporttimepin=Pin('PA20')pin.direction='out'foriinrange(10):time.sleep(.1)pin.value=pin.value^1
  • 使用引脚PA7作为反向输出来产生定时脉冲的示例:
fromsysfsgpioimportPinpin=Pin('PA20')pin.direction='out'pin.configuration=dict(ontime=3.33,offtime=6.67,repeat=3)pin.enable()

许可证

此软件是在麻省理工学院的许可下授权的-请参阅LICENSE

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

推荐PyPI第三方库


热门话题
java的单元测试测试用例库。util。列出实现   java通过超类进行序列化/反序列化   java Android获取设备语言ISO字符串   java如何打开广告的行动。移动   Eclipse IDE for(嵌入式C/C++)开发者202012:经典的深色主题深黑色背景和菜单中的文本   java使用不同的内容动态创建TableView(JavaFX)   java JAXB将多个同名节点解组   java ClassDefNotFoundException,即使类由类加载器加载(服务器上安装了多个应用程序)   java有没有办法关闭在后端生成的MqttClient线程?   html如何在网站上的java小程序中包含图像?   java无法访问已分配给超类引用的子类实例变量   java在TableViewer中双击打开对话框   列出如何创建ListNode。JAVA   java如何从文本中输出的数组中放入随机图像