Metadata-Version: 2.4
Name: ioddcomchecker
Version: 1.9.2
Summary: IoddCom IO-Link master checker
Home-page: https://siogeen.com
Author: Reimund Renner
Author-email: reimund@siogeen.com
License: proprietary and confidential
Project-URL: Documentation, https://siogeen.com/doc/
Project-URL: Help Desk, https://siogeen.com/helpdesk/
Project-URL: Knowledge Base, https://siogeen.com/helpdesk/knowledgebase
Project-URL: News, https://news.siogeen.com/
Keywords: IO-Link,IODD,development,test,production
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Manufacturing
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Customer Service
Classifier: Topic :: Software Development :: Embedded Systems
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Software Development :: Testing
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS :: MacOS X
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.9
Description-Content-Type: text/x-rst
License-File: LICENSE.txt
Requires-Dist: ioddcombase>=1.9.2
Requires-Dist: dict2obj>=1.2.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: project-url
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

IoddComChecker - IoddCom Checker
================================

.. _IoddComCheckerGui: /project/IoddComCheckerGui

This is the CLI for checking your IO-Link masters working with Siogeen IoddCom.

If you want using a GUI see IoddComCheckerGui_

**Install**

Use pip to install IoddComChecker:

>>> pip install IoddComChecker

In case of dependency problems, please use a virtual environment, see https://docs.python.org/3/library/venv.html

USB IO-Link masters:

* Linux and Raspberry Pi

  For Linux and Raspberry Pi udev rules and dialout group need to be installed. Please install this script as root or sudo user:
  https://siogeen.com/scripts/install_udev_rules.sh

  Please check the script to have SHA256 hash: https://siogeen.com/scripts/install_udev_rules.sh.sha256

  For searching ethernet based masters, the permission for sending ping ICMP packets is needed, if an exception
  is displayed in the console, see here how to fix:
  https://github.com/ValentinBELYN/icmplib/blob/main/docs/6-use-icmplib-without-privileges.md

* Windows

  The respective master serial driver shipped by the vendor needs to be installed

* macOS

  Unfotunately most USB masters cann not be recognized by macOS. If your USB master is not detected,
  contact us or consider using Windows or Linux.


**Usage**

To start a scan execute on the console:

>>> python -m siogeen.tools.cli.IoddComChecker

**Command line options**

>>> IoddComChecker [-h] [-a ADDRESS] [--auto] [-s SELECT] [--verbose VERBOSE] [--version]

-h, --help            show this help message and exit
-a ADDRESS, --address ADDRESS
                    specify one or more master addresses (default all)
--auto                activate master ports if all are disabled
-s SELECT, --select SELECT
                    select specific master types: ETH (ethernet) or USB
--verbose VERBOSE     verbosity 0..3
--version             print version

**Example**

>>> IoddComChecker -a 10.0.0.17 -a 10.0.0.19 --auto

For full package, requests and support go to https://siogeen.com

**Copyright 2017-2026 Siogeen UG** (limited liability)

.. _request: https://siogeen.com/#contact

Supported Platforms
~~~~~~~~~~~~~~~~~~~

========================= ===================== ======================
**OS**                    Python 3.6-3.8        Python 3.9 - 3.14
========================= ===================== ======================
**Windows**                 [1]_                   x [2]_
**Linux x86/x64**           [1]_                   x
**Linux Arm (Raspberry)**   [1]_                   x
**macOS**                   [1]_                   x
========================= ===================== ======================

.. [1] IoddCom for Python 3.6 - 3.8 on request_.

.. [2] IoddCom for Win32 Python 3.9 - 3.13, so for 3.14+ on request_.

Support for other platforms on request_.

Supported operating systems and IO-Link masters
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Table of supported IO-Link masters for specific operating systems (OS):

+-----------------------------------+------------------------------------------------+
|                                   | supported OS                                   |
|                                   +---------+----------+--------------+------------+
| Master                            | Windows |  Linux   | Raspberry Pi | macOS [3]_ |
+===================================+=========+==========+==============+============+
| TMG-USB based masters             |   x     |   x [4]_ |    x [4]_    |    x [4]_  |
+-----------------------------------+---------+----------+--------------+------------+
| TMG ethernet based masters [5]_   |   x     |    x     |    x         |    x       |
+-----------------------------------+---------+----------+--------------+------------+
| ifm ethernet based masters [6]_   |   x     |    x     |    x         |    x       |
+-----------------------------------+---------+----------+--------------+------------+
| ifm USB based masters [7]_        |   x     |    x     |    x         |    x       |
+-----------------------------------+---------+----------+--------------+------------+
| Turck Multi-Protocol masters [8]_ |   x     |    x     |    x         |    x       |
+-----------------------------------+---------+----------+--------------+------------+
| REST API based masters [9]_       |   x     |    x     |    x         |    x       |
+-----------------------------------+---------+----------+--------------+------------+
| IQ2 based masters [10]_           |   x     |    x     |    x         |    x       |
+-----------------------------------+---------+----------+--------------+------------+
| io-Fly based masters [11]_        |   x     |    x     |    x         |    x       |
+-----------------------------------+---------+----------+--------------+------------+

For macOS and Linux are 64-bit and for Windows and Raspberry Pi are both, 32-bit and 64-bit versions available.

.. [3] For macOS 11.0+

.. [4] For example: Baumer, Leuze, Pepperl+Fuchs, SICK AG, Turck.
       *Firmware v3.2+ only runs under Windows. For Linux/macOS/RasPi use FW < 3.2!*

.. [5] For Example: Balluff, Belden, Murrelektronik, Pepperl+Fuchs, Wenglor

.. [6] All ifm IO-Link masters AL1xxx should be supported. Functionality depends on master type

.. [7] ifm USB IO-Link master AL1060

.. [8] Turck Multi-Protocol masters (Modbus TCP, PROFINET, EtherNet/IP): TBEN-L, TBEN-S, FEN20, ...
       Special functions missing: read/write SIO, functions not available: data storage

.. [9] REST API based masters (Sick SIG200/SIG350, Belden Lion-X, MurrElectronik Impact67 Pro/MVK Pro, Baumer, **Beta:** Balluff)

.. [10] **Experimental:** Iq2 based masters (iqLink, iqInterface and SensoPart SensoIO)

.. [11] io-Fly based masters (io-Fly, Baumer SensControl)

Not supported masters:

* Baumer USB-C masters
* RevolutionPi RevPi masters
* Pepperl & Fuchs comtrol masters
* Germbedded masters
* TEConcept masters

Support for them or other masters on request_.


Supported functionality
~~~~~~~~~~~~~~~~~~~~~~~
All supported masters have the following functionality:

read/write ISDUs, read/write process data, get/set port config.

The following functionality is varying by master:

====================  ============  =======================================  ============  ==================
master                data storage  multi data / multi port                  PD streaming  special functions
====================  ============  =======================================  ============  ==================
Sim                   yes           read ISDU, read PD, read DI, multi-port  hw/sw         --
ifm ethernet based    yes           read PD, read DI, multi-port             hw/sw         yes
ifm USB based         yes           read PD, read DI, multi-port             sw            yes
REST API based        yes           read ISDU [13]_                          sw            yes, Balluff, SICK
TMG-USB based         yes [12]_     read PD, read DI, multi-port             hw/sw         yes
TMG ethernet based    yes           read PD, read DI, multi-port             hw/sw         yes, Balluff
Turck Multi-Protocol  --            read PD, read DI, multi-port             sw            yes
Iq2 USB/ethernet      yes [14]_     no                                       sw            yes
io-Fly                no            ?                                        hw/sw         no
====================  ============  =======================================  ============  ==================

.. [12] getConfig not supported, FW 3.2+: masterCommandDownloadFromMaster not supported anymore
.. [13] REST API multi data write ISDU will be added in future
.. [14] no read/write master DS supported (only config)


