Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

OpenZen allows to access many different sensor models which are connected via different transports layers with one unified programming interface. This allows to develop applications which support a wide range of sensors and allows to easily adapt your application to new or additional sensors.

A list of the must-have part parts of an OpenZen client program is:

...

The best way to learn how OpenZen client program works is to take a look at our example source file.

For this page, the example code codes are written in C++. We also have Python, C and C# examples in our repo.

IO Systems

To communicate with the sensor hardware, OpenZen provides multiple so-called please specify through which IO systems . Each of these can establish the communication to sensors and can list the available sensor hardware. Here are some examples of IO systems available in OpenZen:

USB virtual COM port

...

OpenZen should access your sensor.

Note

Permission and settings required for Linux user

COM port: In the terminal execute sudo adduser <username> dialout, log out and log back in to your user.

Bluetooth: To be able to connect to any Bluetooth sensor, it first needs to be paired via the operating system’s device manager.

  • USB virtual COM port

    Code Block
    // Windows
    auto sensorPair = client.obtainSensorByName("WindowsDevice", "//./COM40", 921600);
    // Linux
    auto sensorPair = client.obtainSensorByName("LinuxDevice", "devicefile:/dev/ttyUSB0", 921600);
  • USB Express (on Windows only)

    Code Block
    auto sensorPair = client.obtainSensorByName("SiUsb", "ig1pcan000028", 921600);
  • Bluetooth (only for B2 sensor)

    Code Block
    auto sensorPair = client.obtainSensorByName("Bluetooth", "00:04:3E:53:E9:9F", 115200);
  • Network streaming

...

A sensor can have multiple components which supply various types of sensor data. Once the connection
to a sensor has been established, the available components can be queried. Sensor data and their properties can
be access and modified. Furthermore, the streaming of measurement data can be started for each component.

At this time OpenZen supports the following components under a sensor:

Inertial / modified.

Inertial Measurement Unit (IMU)

Provides accelerometer and gyroscope measurements and the orientation result from the sensor fusion running on the connected sensor. All our sensors provide IMU components in OpenZen.

...

Keys for Sensor Data Access

Sensor data are collected as events in by the client program. Most of the keys listed in imuData and gnssData are available for access. Note that there are a few limitations on specific data fields:

...

Field name (explanation)

IG1 / IG1PLPMS3

U3
CU / URS / UTTL

NAV3

BE / ME

g1
(high-precision on the vertical)

o

x

o

x

g2

(general-purpose)

o

o

x

o

Info

To debug your OpenZen program, we have a Windows GUI client to work with sensors.

There are 2 communications that our sensors follows. They are categorized as follows:

  • LPMS2 sensors: LPMS-U2 series, LPMS-B2, LPMS-ME, LPMS-BE.

  • LPMS3 sensors: LPMS-IG1, LPMS-IG1P, LPMS-U3 series, LPMS-NAV3.

LPMSControl2 for LPMS3 sensors, OpenMAT for LPMS2 sensors.

For detailed information of all our sensors, please visit our Knowledge Base.

...

Info

Information above should have already given you a pretty nice illustration of the OpenZen library’s compositions. You can skip reading the following sections if you understand the sample program.

...