Zum Inhalt

lennix-cis README

This document is the official README belonging to the CIS application
lennix-cis. It describes the purpose and use of the command-line interface and
how to test specific CIS interfaces with it.

Category Specification
Application lennix-cis
Version 0.3.1
Date 2019-02-15
Author Martin Kirst
Mail martin.kirst@weblehnert.de

Copyright © 2019 Lehnert Regelungstechnik GmbH

Application Purpose

The described features of lennix-cis are subject to change in the future
depending on the project phase and the current state of software development.
Moreover, the simulator application can be completely replaced by the final CIS
implementation when finished.

In fact, lennix-cis is compiled out of the very same software components
building the final CIS application, whereby the different interface components
will be associated with an additional state machine forming the final CIS
program.

Supported Platforms

Depending on the target platform, the application supports different intefaces.

CCS (Lehnert) CIDS (Camco) FCMS (Kalmar)
GNU/Linux yes yes yes
Windows yes yes no
macOS no no no

Software Dependencies

To run lennix-cis, Lehnert provides an image for Oracle's virtual machine
VirtualBox. This image is built based on
Debian GNU/Linux 9 alias Stretch and already set up for running all of
Lehnert's software out-of-the-box.

In the case Oracle VM VirtualBox cannot be used, Lehnert's software requires a
valid Debian 9 installation for providing all program libraries necessary for
running the application.

For running under Windows, Lehnert deploys the application together with all
necessary DLLs.

Command-Line Usage

The command-line (also called shell under Linux) is the only option for
interacting with lennix-cis. For all platforms, the available arguments are
the same, whereby the application explains itself directly via the command-line
output.

Executing the program with ./lennix-cis brings up:

[lehnert@vm release]$ ./lennix-cis
real application not implemented yet,
use --sim to simulate combined with
valid options to test interfaces:
  --ccs
  --cids
  --fcms-tlm-qc

NOT FORGET to configurate cfg/lennix-cis.cfg after first start

For example, to test the FCMS interface, the program needs to be executed with
./lennix-cis --sim --fcms-tlm-qc and so forth.

As the help indicates, the program automatically creates a configuration on its
first start. This file needs to be set up dependent on the targeted use, whereby
all available parameters are explained within the configuration file itself. All
interface-relevant options, like IPs or ports, usually have a prefix, infix or
suffix corresponding to their related interface as known from the CIS
specification.

During program runtime, the console directly prints out the log for showing the
latest information or errors. In the case there might by unclear errors, please
contact Lehnert directly.

Interface Testing

This section describes specific aspects for interface testing.

CCS (Lehnert)

Although the Crane Control System communicates with Lehnert's SPLC, the program
supports the testing of the communication between the SPLC and Lehnert's
controllers, too. This option is intended for Lehnert's internal use.

CIDS (Camco)

The application simulates the communication with the Container Identification
System via UDP/IP. The corresponding configuration parameters usually contain
the word Cids.

At the moment, the simulator does not implement the final state machine (FSM)
since the FSM will be provided during the integration on the crane. So the
program does not check the logic, but it verifies if the communication
technology works appropriately as well as the specified message layouts match.
To ensure that a message is properly understood, the application already
provides a valid message counter which gets incremented for each newly sent
message.

FCMS (Kalmar)

For testing the interfacing with the Fleet Control Management System, the
purpose of the program is to ensure that the ActiveMQ communication can be
done as specified. Therefore, the corresponding configuration parameters contain
the word Amq.

The program utilizes ActiveMQ's topic functionality for receiving and sending
messages. Due to the synchronous nature of the used ActiveMQ-CPP client-side
library, the program emits multiple messages when starting. After that, the
program needs to be restarted to send new messages.

The user needs to set up a valid message broker and can use the inbuilt monitor
capabilities of ActiveMQ to verify that the message is sent successfully. Then,
if a 3rd-party application can successfully parse the message received via
ActiveMQ sent by lennix-cis, the interfacing will work well in both directions
regarding the final implementation, because the simulation already utilizes the
same software components as the final program will use for both receiving and
sending messages as well as the XML structures for emitting and parsing
messages.