Skip to content

RAW-Interface

Raw connections

The gateway introduces the concept of mimetypes. The following table shows the supported mimetypes in FERAL:

Mimetype String Network type Technology Description
special/NullCoder - - Default coder that throws errors on reception of messages
special/EchoCoder - - This coder can be mainly used for testing purposes. It just bypass the message value to the required format. No special encoding or decoding is happening here.
application/FERAL/CANFD/Native-V2 CAN Framecoder/Native legacy CAN message encoding, protocol version
application/FERAL/Ethernet/Native-V1 ETH Framecoder/Native legacy ethernet message encoding
application/FERAL/FlexRay/Native-V2 FLR Framecoder/Native legacy flexray message encoding, protocol version
application/FERAL/LIN/Native-V1 LIN Framecoder/Native legacy LIN message encoding, LIN simulation with scheduler
application/vda.silvi.can.flatbuffers.1 CAN Flatbuffers flatbuffers encoded CAN message based on SiLVI scheme
application/vda.silvi.ethernet.flatbuffers.1 ETH Flatbuffers flatbuffers encoded ethernet message based on SiLVI scheme
application/vda.silvi.flexray.flatbuffers.1 FLR Flatbuffers flatbuffers encoded flexray message based on SiLVI scheme

Basically, those mimetypes are strings telling the FERAL component behind the gateway which semantics of raw messages data is used.

This has been introduced for the context of networks behind a gateway, but may proove useful for many other occasions as well. In the network context, the mimetype is used to connect to raw network interfaces to identify the coder that shall be used and to serialize and deserialize network specific messages. In regard on the FERAL Gateway Concept, this represents the downmost worker port that connects to the yellow "RAW port" of the attached network simulation. More information on the mechanics behind this can be found in the chapter Networking.

The gateway does not care for the semantics of the raw data transmitted through worker ports to the client instances, hence it does also not interpret the mimetype. When a connection is established from a client library (e.g. through usage of the interface IClientControl::connect(String serverAddress, int serverPort, String clientAddress, String portName, String mimeType) of the Java implementation) and the mimetype is not empty, the gateway will establish a connection just the same as when connecting using IClientControl::connect(String serverAddress, int serverPort, String clientAddress, String portName), but the gateway forwards a MimetypeConfigurationMessage via the FERAL link to the FERAL simulation worker connected to that port. A FERAL worker expecting a mimetype must handle this message properly. It is guaranteed that this message arrives before a connected client can send any raw data.

The mimetype concept is fully implemented in the NetworkEventInterface class.