纽兰扫描仪库

trimarlib-newland的Python项目详细描述


Trimarlib纽兰

用于连接纽兰扫描仪的python库。

开始

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

先决条件

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

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

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

  • setuptools
  • wheel

库也依赖于pyserial包-它用作设备的传输层。 此依赖关系在setup.py中定义,并在安装时自动满足。

建造和释放

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

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

Makefile调用的python解释器默认为python-可以重写它 向命令传递PYTHON变量,例如make all PYTHON=python3

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

测试

测试源文件位于newlandlib/tests目录中,它们以设备和 正在测试功能。测试基于python内置包。 Makefile定义了三个测试目标:unit-testsintegration-teststests(调用这两个 单元和集成测试)。

单元测试

unit-tests相当快,不需要任何设备连接到机器上,他们测试 实用方法。可以逐个手动调用它们(例如python -m newlandlib.tests.test_fm100_utils) 或者通过Makefile(即make unit-tests)。

集成测试

integration-tests由于所涉及的测试(fm100设备的完整测试)的数量,速度非常慢 大约需要3个小时),他们要求设备连接到运行代码的机器上。他们可能是 逐个调用(类似于单元测试,例如python -m newlandlib.tests.test_fm100_commands)或 按Makefile(即make integration-tests)分批进行。

部署

库不打算在独立配置中使用-主要目的是 由更高级别的应用程序定义为依赖项。但是这是完全正确的 使用pip手动安装。

版本控制

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

使用量

有关API文档,请参阅docstrings。

使用自动发现功能进行设备初始化的示例:

fromnewlandlibimportFM100ports=FM100.discover()dev=FM100(ports[0])dev.configure()defcallback(sender,*,data,codeid=None,aimid=None):print('sender={}, data={}, codeid={}, aimid={}'.format(sender,data,codeid,aimid))dev.callback=callbackdev.start()

将对每个扫描的条形码调用callback方法。

许可证

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


相关文件

本软件基于纽兰的以下文档:

  • fm100集成指南(v1.2.1,22/02/2017)
  • fm420集成指南(v1.1.42014年8月7日)
  • fm430用户指南(v1.2.1,19/07/2018)
  • 基于newland统一命令集的编程指南(v1.0.0,2018年2月12日)
  • 串行编程命令手册(v1.3.0,15/11/2016)

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

推荐PyPI第三方库


热门话题
Java中ArrayList的超简单问题   Java 8在一段时间后过期   java如何创建具有用户定义维度的矩阵,并使用从上到下、从左到右的递增值填充它?   java从JDBC重启mysql   带有sqlite的java LiveData未更新UI   带有JDialog的java小程序在Mac OSX中未正确隐藏   java ActionListener无法从公共类引用数组?   java Apache Digester:NoSuchMethodException:没有这样的可访问方法   安卓中数据库中的java数据没有以正确的格式检索   java快速排序实现:使用random pivot时几乎排序   安卓 Java:高效的ArrayList过滤?   java如何在单独的文件中制作GUI程序   jasper报告如何从JSP或Java代码在JasperReport中传递参数值?