lingua-franca 0.10.1
Lingua Franca code generator
Loading...
Searching...
No Matches
org.lflang.federated.serialization.FedROS2CPPSerialization Class Reference

Enables support for ROS 2 serialization in C/C++ code. More...

Inherits org.lflang.federated.serialization.FedSerialization.

Public Member Functions

StringBuilder generateCompilerExtensionForSupport ()
StringBuilder generateNetworkDeserializerCode (String varName, String targetType)
 Generate code in C++ that deserializes 'varName'.
StringBuilder generateNetworkSerializerCode (String varName, String originalType)
 Generate code in C++ that serializes 'varName'.
StringBuilder generateNetworkSerializerCode (String varName, String originalType, boolean isSharedPtrType)
 Variant of.
StringBuilder generatePreambleForSupport ()
boolean isCompatible (GeneratorBase generator)
 Check whether the current generator is compatible with the given serialization technique or not.
String serializedBufferLength ()
String serializedBufferVar ()

Static Public Attributes

static final String deserializedVarName = "deserialized_message"
 Variable name in the target language for the deserialized data.
static final String serializedVarName = "serialized_message"
 Variable name in the target language for the serialized data.

Detailed Description

Enables support for ROS 2 serialization in C/C++ code.

Author
Soroush Bateni

Member Function Documentation

◆ generateCompilerExtensionForSupport()

StringBuilder org.lflang.federated.serialization.FedROS2CPPSerialization.generateCompilerExtensionForSupport ( )
Returns
Code that should be appended to the CMakeLists.txt to enable support for ROS 2 serialization.

Implements org.lflang.federated.serialization.FedSerialization.

◆ generateNetworkDeserializerCode()

StringBuilder org.lflang.federated.serialization.FedROS2CPPSerialization.generateNetworkDeserializerCode ( String varName,
String targetType )

Generate code in C++ that deserializes 'varName'.

This code will convert the data in 'varName' from a uint8_t into the 'targetType'. The deserialized data will be put in a variable called deserialized_message defined by

See also
deserializedVarName.
Parameters
varNameThe variable to deserialize.
targetTypeThe type to deserialize into.
Returns
Target code that deserializes 'varName' from an unsigned byte array to 'type'.

Implements org.lflang.federated.serialization.FedSerialization.

◆ generateNetworkSerializerCode() [1/2]

StringBuilder org.lflang.federated.serialization.FedROS2CPPSerialization.generateNetworkSerializerCode ( String varName,
String originalType )

Generate code in C++ that serializes 'varName'.

This code will convert the data in 'varName' from its 'originalType' into an uint8_t. The serialized data will be put in a variable called 'serialized_message', defined by

See also
serializedVarName.
Parameters
varNameThe variable to be serialized.
originalTypeThe original type of the variable.
Returns
Target code that serializes the 'varName' from 'type' to an unsigned byte array.

Implements org.lflang.federated.serialization.FedSerialization.

◆ generateNetworkSerializerCode() [2/2]

StringBuilder org.lflang.federated.serialization.FedROS2CPPSerialization.generateNetworkSerializerCode ( String varName,
String originalType,
boolean isSharedPtrType )

Variant of.

See also
generateNetworkSerializerCode(String varName, String originalType) that also supports shared pointer (i.e., std::shared_ptr<>) definitions of ROS port types.
Parameters
varNameThe variable name.
originalTypeThe original type name.
isSharedPtrTypeIndicates whether the port type is a shared pointer or not.

◆ generatePreambleForSupport()

StringBuilder org.lflang.federated.serialization.FedROS2CPPSerialization.generatePreambleForSupport ( )
Returns
Code in C that includes all the necessary preamble to enable support for ROS 2 serialization.

Implements org.lflang.federated.serialization.FedSerialization.

◆ isCompatible()

boolean org.lflang.federated.serialization.FedROS2CPPSerialization.isCompatible ( GeneratorBase generator)

Check whether the current generator is compatible with the given serialization technique or not.

Parameters
generatorThe current generator.
Returns
true if compatible, false if not.

Implements org.lflang.federated.serialization.FedSerialization.

◆ serializedBufferLength()

String org.lflang.federated.serialization.FedROS2CPPSerialization.serializedBufferLength ( )
Returns
Expression in target language that corresponds to the length of the serialized buffer.

Implements org.lflang.federated.serialization.FedSerialization.

◆ serializedBufferVar()

String org.lflang.federated.serialization.FedROS2CPPSerialization.serializedBufferVar ( )
Returns
Expression in target language that is the buffer variable itself.

Implements org.lflang.federated.serialization.FedSerialization.

Member Data Documentation

◆ deserializedVarName

final String org.lflang.federated.serialization.FedSerialization.deserializedVarName = "deserialized_message"
staticinherited

Variable name in the target language for the deserialized data.

◆ serializedVarName

final String org.lflang.federated.serialization.FedSerialization.serializedVarName = "serialized_message"
staticinherited

Variable name in the target language for the serialized data.


The documentation for this class was generated from the following file:
  • /Users/runner/work/lingua-franca/lingua-franca/core/src/main/java/org/lflang/federated/serialization/FedROS2CPPSerialization.java