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
(默认目标)准备分发存档。它分两步完成:
- 查询git存储库中的标记(
git describe
命令)以确定当前版本并生成version.py
文件, - 调用传递
setup.py
脚本的python解释器来准备源代码和轮子分发。
在windows机器上运行时,Makefile
调用的python解释器默认为python
。
python3
否则。在这两种情况下,都可以重写它,将PYTHON
变量传递给命令,
例如make all PYTHON=python3
。
发布过程是自动化的,并且基于gitlab ci/cd环境-每个提交都会触发一个构建作业 尝试生成和安装构建的包(尚未实现测试,需要可用的硬件 平台)。如果已标记提交,则生成的控制盘分发将传递到部署阶段,并且 运行程序尝试将包上载到项目设置中指定的存储库。
测试
测试源文件位于sysfsgpio/tests
目录中。测试基于unittest
python
内置软件包。Makefile
定义了调用所有测试的test
目标。
测试分为两个步骤:
- 实用功能测试-对所有辅助功能进行单元测试。那些测试是 独立于平台(即应通过*nix或windows机器);
Pin
测试-执行Pin
类的单元测试。这些测试依赖于sysfs
linux 在Windows计算机上运行时跳过。
部署
库不打算在独立配置中使用-主要目的是
由更高级别的应用程序定义为依赖项。但是这是完全正确的
使用pip
手动安装。
请记住,在
在没有超级用户权限的情况下可以访问pin。包指定了3个入口点(可访问
作为命令行工具)以简化设置过程(开发并确认脚本
运行ARMBIAN分发的Orange PI平台上的工作)。这些入口点是:
sysfsgpio-install-service
-此命令安装并启用systemd
gpio-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。