kbLogger 2.0.b1
The automotive ready test and logging program.
The ComObjects

ComObjects are used to connect the simulations to the device drivers. They are generic and uses the same API to the others ConfigItems.

Due to the fact that the different types of ComObjects are created by the same ConfigItem, it is possible to change the device which is related to the ComObject without to delete the connections to the other ConfigItems.

For example, it is possible to change the used device away from the RS232 to File to test the simulation with an already recorded data set. After finishing the test, it is easy to switch back to RS232.

Creating a ComObject:
Do a right-click on an empty place in the ConfigViewer of your project and choose "New ComObject".

Creating a new ComObject

Configure the ComObject:
Double click on the ComObject to open the configure dialog.

ComObject configure dialog

Device Type:
In this ComboBox, you can choose the type of the ComObject. In this moment, valid entries are CanObject, FileObject, PipeObject, ProcessObject, Rs232Object, SocketObject and RawSocketObject. In later versions of kbLogger, you may able to choose more than today. The configure options which are specific to the chosen device type are shown in the right subdialog and are described in detail on the help page related to that device type.

List of general purpose ComObjects:

Subdialog Modes of Operation:
In the left subdialog, you can configure the modes of operation which are common to all ComObjects.

Line Mode:
If this radio button is checked, the data stream is expected to consists in lines of ASCII text. The line delimiters for send and receive can be configured in the related text fields. The ComObjects collects the data stream until a complete line exists in the memory. This line will be send to the connected receiving ConfigItems.

Receive Line-Delimiter (RegExp):
Here you can configure the line delimiter for receiving. "\r" means CarriageReturn and "\n" means NewLine. Since these text is interpreted as a regular expression, "\r|\n" means CarriageReturn or NewLine.

Send Line-Delimiter:
In this text field, you can configure the line delimiter for sending. This text is not interpreted as regular expression. This line delimiter will be append to every message to send. Therefore it is not necessary to add them manually in the sending ConfigItem.

Binary Mode:
If this radio button is checked, the data stream is expected to consists in in binary data. The data stream is converted at first to an hexadecimal coded message, in which every original byte is coded into 2 byte representation of hex strings. Example: 0x10 converts to "0100".

RunLengthEncoded Mode:
If this check box is checked, the ComObject is searching in the message for a length field. If the message is completely received, it will be send to the connected receiving ConfigItems at one.

Offset for RL:
Here you have to configure the offset for the length field. If the message starts with it, you have to write 0 here.

Length for RL:
This field is used to configure the length of the length field in bytes.

ByteStuffing Mode:
This mode is used to avoid forbidden bytes in the data stream. The stuffing byte and the frame start and frame end bytes must be configured in the next two edit fields. If the message is completely received, it will be send to the connected receiving ConfigItems at one. Incomplete messages are discarded.

Stuffing Byte (Escape):
Here you can configure the hexadecimal string for the escape byte used in the byte stuffing mode. Example: "E0".

FrameStart, FrameEnd:
Here you can configure the start and stop of frame bytes. Example: "E1E2" means FrameStart=E1 and FrameEnd=E2.

MetaData on Receive:
The text in this edit field is appended as invisible meta data to every received message and send together with it to the connected receiving ConfigItems, which is now able to start individual actions, based on that text. For example: if you put the keyword script into that field, a connected ScriptObject or UserInterface will not call the function

function processMessage(strTimeStamp, strSender, strMessage, strMetadata)
{
}

Instead, it will forward the the received messages directly to the embedded JavaScript interpreter. This can be used to implement a kind of RMI interface.

Open Mode:
Here you can restrict the access to the hardware device.