Model Element Access

group Model_element_access

function that belongs to this group requires DB load at application startup

function that belongs to this group requires DB load at application startup

Functions

BOOL UpdateCanTpTxTimeout(API_HANDLE, const char *channel_name, uint64_t rx_id, uint8_t source_address, uint64_t tx_id, uint8_t target_address, uint64_t tx_timeout_ms)

Update transmission confirmation timeout (by default is set to 100 milliseconds)

Parameters:
  • channel_name – : can channel name like defined in the config file (*.yaml)

  • rx_id – : receiving message id

  • source_address – : source address

  • tx_id – : transmission message id

  • target_address – : target address

  • tx_timeout_ms – : transmission confirmation timeout

Returns:

BOOL

CALLBACK_HANDLE SignalSubscribe(API_HANDLE, const char *full_path_name, OnSignalReceived callback, SubscriptionType on_change)

start listening on a signal, this method could be used only after parsing the busses DBs (i.e call ApiSetup with database path)

Parameters:
  • full_path_name – : signal identifier CLUSTER_NAME::CHANNEL_NAME::FRANE_NAME::PDU_NAME::SIGNAL_NAME to create this id you can use GetSignalPathName or GetSignalPathNameByFrameId or GetSignalPathNameByFrameName

  • callback – : function to be invoked once an event is received

  • on_change – : if on SUBSCRIPTION_ON_CHANGE, the callback is invoked only when the received signal value changes. if SUBSCRIPTION_ALWAYS, the callback is invoked for every received signal value.

Returns:

CALLBACK_HANDLE

BOOL SignalUnsubscribe(API_HANDLE, const char *full_path_name, CALLBACK_HANDLE callback, SubscriptionType on_change)

stop listening os a signal

Parameters:
  • full_path_name – : signal identifier CLUSTER_NAME::CHANNEL_NAME::FRANE_NAME::PDU_NAME::SIGNAL_NAME to create this id you can use GetSignalPathName or GetSignalPathNameByFrameId or GetSignalPathNameByFrameName

  • callback – function used in SignalSubscribe

  • on_change

Returns:

BOOL

BOOL SetInterceptionFunction(API_HANDLE api, const char *channel, InterceptionFunction callback)

Sets the interception function for a specified channel in the API.

This function allows you to set a custom interception function for a specific channel in the API. The interception function will be invoked when a data frame request occurs on the specified channel.

Warning

The provided callback function (InterceptionFunction) is called in a non-thread-safe context. So, it is advised to set it once prior to any transmission on the corresponding channel.

Parameters:
  • channel – The name of the channel for which to set the interception function.

  • callback – The interception function to be set for the specified channel. It takes the following parameters:

    • channel_name: The name of the channel on which the interception occurred.

    • frame_id: The data frame request id.

    • payload: A pointer to the original payload data.

    • payload_size: The size of the original payload data.

    • drop_frame: A boolean indicating whether to drop the frame or not. The function is responsible for processing the data frame request and may modify the payload. The modified payload should be set using payload and payload_size, and drop_frame indicates whether to drop the frame or not.

Returns:

BOOL Returns TRUE if the interception function is successfully set, FALSE otherwise.

STRING_HANDLE GetSignalPathName(API_HANDLE, const char *channel_name, const char *frame_name, const char *frame_id, const char *pdu_name, const char *signal_name)

Get the Signal Path Name object, this is a utility to build correctly the signal path and to be used as input to other functions.

Parameters:
  • channel_name – : channel name like defined in the config file (*.yaml)

  • frame_name – : message like defined in the DB

  • frame_id – : message id

  • pdu_name – : PDU name like defined in the DB

  • signal_name – : signal name like defined in the DB

Returns:

STRING_HANDLE

STRING_HANDLE GetSignalPathNameByFrameId(API_HANDLE, const char *channel_name, uint64_t frame_id, const char *pdu_name, const char *signal_name)

Get the Signal Path Name By Frame Id object, similar usage as GetSignalPathName.

Parameters:
  • channel_name – : channel name like defined in the config file (*.yaml)

  • frame_id – : message id

  • pdu_name – : PDU name like defined in the DB

  • signal_name – : signal name like defined in the DB

Returns:

STRING_HANDLE

STRING_LIST_HANDLE GetSignalPathNameByFrameName(API_HANDLE, const char *channel_name, const char *frame_name, const char *pdu_name, const char *signal_name)

Get the Signal Path Name By Frame Name object, similar usage as GetSignalPathName.

Parameters:
  • channel_name – : channel name like defined in the config file (*.yaml)

  • frame_name – : message like defined in the DB

  • pdu_name – : PDU name like defined in the DB

  • signal_name – : signal name like defined in the DB

Returns:

STRING_LIST_HANDLE

BOOL SetSignalPhysicalValueSigned(API_HANDLE, const char *channel_name, uint64_t frame_id, const char *signal_name, int64_t signal_value, BOOL update_and_send)

Set the Signal Physical Value Signed object, the conversion from physical to raw is done using the formula parsed from DB.

Parameters:
  • channel_name – : channel name like defined in the config file (*.yaml)

  • frame_id – : message id

  • signal_name – : signal name like defined in the DB

  • signal_value – : signal value as signed int

  • update_and_send – : if true the signal value is updated and the corresponding frame is sent immediately

Returns:

BOOL

BOOL SetSignalPhysicalValueUnsigned(API_HANDLE, const char *channel_name, uint64_t frame_id, const char *signal_name, uint64_t signal_value, BOOL update_and_send)

Set the Signal Physical Value Unsigned object, the conversion from physical to raw is done using the formula parsed from DB.

Parameters:
  • channel_name – : channel name like defined in the config file (*.yaml)

  • frame_id – : message id

  • signal_name – : signal name like defined in the DB

  • signal_value – : signal value as unsigned int

  • update_and_send – : if true the signal value is updated and the corresponding frame is sent immediately, else the signal value is updated and will be used for the next scheduled sent of the frame if it is cyclic

Returns:

BOOL

BOOL SetSignalPhysicalValueDouble(API_HANDLE, const char *channel_name, uint64_t frame_id, const char *signal_name, double signal_value, BOOL update_and_send)

Set the Signal Physical Value , the conversion from physical to raw is done using the formula parsed from DB.

Parameters:
  • channel_name – : channel name like defined in the config file (*.yaml)

  • frame_id – : message id

  • signal_name – : signale name like defined in the DB

  • signal_value – : signal value as double

  • update_and_send – : if true the signal value is updated and the corresponding frame is sent immediately, else the signal value is updated and will be used for the next scheduled sent of the frame if it is cyclic

Returns:

BOOL

BOOL SetSignalRawValueSigned(API_HANDLE, const char *channel_name, uint64_t frame_id, const char *signal_name, int64_t signal_value, BOOL update_and_send)

Set the Signal Raw Value Signed object, the signal_value will be used to set the bits corresponding to the signal without any conversion.

Parameters:
  • channel_name – : channel name like defined in the config file (*.yaml)

  • frame_id – : message id

  • signal_name – : signale name like defined in the DB

  • signal_value – : signal value as signed int

  • update_and_send – : if true the signal value is updated and the corresponding frame is sent immediately, else the signal value is updated and will be used for the next scheduled sent of the frame if it is cyclic

Returns:

BOOL

BOOL SetSignalRawValueUnsigned(API_HANDLE, const char *channel_name, uint64_t frame_id, const char *signal_name, uint64_t signal_value, BOOL update_and_send)

Set the Signal Raw Value Unsigned object, the signal_value will be used to set the bits corresponding to the signal without any conversion.

Parameters:
  • channel_name – : channel name like defined in the config file (*.yaml)

  • frame_id – : message id

  • signal_name – : signale name like defined in the DB

  • signal_value – : signal value as unsigned int

  • update_and_send – : if true the signal value is updated and the corresponding frame is sent immediately, else the signal value is updated and will be used for the next scheduled sent of the frame if it is cyclic

Returns:

BOOL

BOOL SetSignalRawValueDouble(API_HANDLE, const char *channel_name, uint64_t frame_id, const char *signal_name, double signal_value, BOOL update_and_send)

Set the Signal Raw Value Double object, the signal_value will be used to set the bits corresponding to the signal without any conversion.

Parameters:
  • channel_name – : channel name like defined in the config file (*.yaml)

  • frame_id – : message id

  • signal_name – : signale name like defined in the DB

  • signal_value – : signal value as unsigned int

  • update_and_send – : if true the signal value is updated and the corresponding frame is sent immediately, else the signal value is updated and will be used for the next scheduled sent of the frame if it is cyclic

Returns:

BOOL

VARIANT_HANDLE GetLastReceivedSignalValue(API_HANDLE, const char *channel_name, uint64_t frame_id, const char *signal_name)

Get the Last Received Signal Value object.

Parameters:
  • channel_name – : channel name like defined in the config file (*.yaml)

  • frame_id – : message id

  • signal_name – : signal name like defined in the DB

Returns:

uint64_t

VARIANT_HANDLE GetLastReceivedSignalPhysicalValue(API_HANDLE, const char *channel_name, uint64_t frame_id, const char *signal_name)

Get the Last Received Signal Physical Value object.

Parameters:
  • channel_name – : channel name like defined in the config file (*.yaml)

  • frame_id – : message id

  • signal_name – : signal name like defined in the DB

Returns:

uint64_t

VARIANT_HANDLE GetSignalPayloadValue(API_HANDLE, const char *channel_name, uint64_t frame_id, const char *signal_name, uint8_t *payload, size_t payload_size, BOOL is_physical)

Get Signal Value object.

Parameters:
  • channel_name – : channel name like defined in the config file (*.yaml)

  • frame_id – : message id

  • signal_name – : signal name like defined in the DB

  • payload – : payload where we will check for signal value

  • is_physical – : return physical or raw value

Returns:

uint64_t

BOOL SignalValueFound(API_HANDLE, const char *channel_name, uint64_t frame_id, const char *signal_name)
STRING_HANDLE GetSignalPath(API_HANDLE, const char *channel_name, uint64_t frame_id, const char *signal_name)

Get the Signal Path object this function is a utility to be used to construct correctly the signal path. the signal path could be used as input for other functions.

Parameters:
  • channel_name – channel name like defined in the config file (*.yaml)

  • frame_id – message id

  • signal_name – signal name like specified in the DB

Returns:

STRING_HANDLE

BUFFER_HANDLE GetLastReceivedPduValue(API_HANDLE, const char *channel_name, const char *pdu_name, uint64_t frame_id)

Get the Last Received Pdu Value object.

Parameters:
  • channel_name – : channel name like defined in the config file (*.yaml)

  • pdu_name – : PDU name like specified in the DB

  • frame_id – : frame id

Returns:

BUFFER_HANDLE

BOOL TransmitPdu(API_HANDLE, const char *channel_name, const char *pdu_name, uint64_t frame_id, const uint8_t *payload, size_t payload_size, BOOL immediate)

send raw PDU in a given bus

Parameters:
  • channel_name – : channel name like defined in the config file (*.yaml)

  • pdu_name – : PDU name like specified in the DB

  • frame_id – : frame id

  • payload – : payload as bytes

  • payload_size – :

  • immediate – : send PDU immediately and don’t wait for the next cycle

Returns:

BOOL

BOOL StartTransmissionFrame(API_HANDLE, const char *channel_name, uint64_t frame_id)

start transmission of a given frame concerning DB specification (cyclicity …)

Parameters:
  • channel_name – channel name like defined in the config file (*.yaml)

  • frame_id – message id

Returns:

BOOL

BOOL StopTransmissionFrame(API_HANDLE, const char *channel_name, uint16_t frame_id)

stop transmission of a given frame

Parameters:
  • channel_name – channel name like defined in the config file (*.yaml)

  • frame_id – message id

Returns:

BOOL

BOOL StartTransmissionFrameSim(API_HANDLE, const char *channel_name, uint64_t frame_id)

stop transmission of a given frame using the corresponding simulation

Parameters:
  • channel_name – channel name like defined in the config file(*.yaml)

  • frame_id – message id @ return BOOL

BOOL StopTransmissionFrameSim(API_HANDLE, const char *channel_name, uint64_t frame_id)

stop transmission of a given frame using the corresponding simulation

Parameters:
  • channel_name – channel name like defined in the config file(*.yaml)

  • frame_id – message id @ return BOOL

BOOL ResetTransmissionFrameSim(API_HANDLE, const char *channel_name, uint64_t frame_id)

reset transmission of a given frame using the corresponding simulation

Parameters:
  • channel_name – channel name like defined in the config file(*.yaml)

  • frame_id – message id @ return BOOL

BOOL StartAllSimulations(API_HANDLE)
BOOL StopAllSimulations(API_HANDLE)
BOOL ResumeAllSimulations(API_HANDLE)
BOOL SuspendAllSimulations(API_HANDLE)
BOOL StartSimulations(API_HANDLE, const char **ecu_list, size_t count)
BOOL StopSimulations(API_HANDLE, const char **ecu_list, size_t count)
BOOL ResumeSimulations(API_HANDLE, const char **ecu_list, size_t count)
BOOL SuspendSimulations(API_HANDLE, const char **ecu_list, size_t count)
BOOL ConfigureTestFeatureController(API_HANDLE, const char *config_path, const char *json_settings_path)
BOOL SubscribeFrameToNmManager(API_HANDLE, const char *bus_name, uint64_t msg_id)
BOOL SetModelElement(API_HANDLE, const char *model_path, const char *param)
VARIANT_HANDLE GetModelElement(API_HANDLE api, const char *model_path, const char *param)
STRING_HANDLE GetNpduNameByIdAndEcuName(API_HANDLE, const char *ecu_name, uint32_t npdu_id)
BOOL EthernetApplyFaultyCorruptCrc(API_HANDLE, const char *path, BOOL on_off)
BOOL EthernetApplyFaultyCorruptAliveCounter(API_HANDLE, const char *path, BOOL on_off)
BOOL StartE2ESomeIpVerification(API_HANDLE, const char *path, E2ESomeIpVerificationCallback callback)
BOOL StartE2EVerification(API_HANDLE, const char *path, E2EVerificationCallback callback)
void StopE2EVerification(API_HANDLE, const char *path)
BOOL SetETHNetwork(API_HANDLE, const char *path, const char *param)

This function aims to set a specific signal over ethernet (someIp or Npdu)

Parameters:

path

(string) : the complete path of the signal to be set, this path is created like the following: “EcuName::ServiceId::InstanceId::MessageId::MemberName (someip)

A - This path can be classified by the type of MessageID

1 - MessageId == MethodId(Method request) : set an input argument in a method, the given EcuName should be a consumer ECU

name

Example : ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName

2 - MessageId == MethodId(Method response) : set an output argument in a method, the given EcuName should be a provider ECU

name

Example : ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName

3 - MessageId == EventId : set an input argument in an event, the given EcuName should be always a provider ECU name

Example : ProviderEcuName::ServiceId::InstanceId::EventId::Argument1

4 - MessageId == FieldNotifierID : set a notifier if its type is primitive(Int8, Int16,Double,..) or set a member or a

subMember in a notifier if its type is complex(struct).

The given EcuName should be always a provider ECU name

Example : ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName

5 - MessageId == FieldGetter(Client) : a request call that allows reading access to a field, nothing to be

set here that is why both the param argument and the MemberName should be empty “”.

The given EcuName should be a consumer ECU name

Example : SetETHNetwork (“ConsumerEcuName::ServiceId::InstanceId::FieldGetterId” , “”)

6 - MessageId == FieldGetter(Server) : a response call that allows reading access to a field.

The given EcuName should be a provider ECU name

Example : ProviderEcuName::ServiceId::InstanceId::FieldGetterId::Argument2

7 - MessageId == FieldSetter(Client) : a request call that allows writing access to a field.

The given EcuName should be a consumer ECU name

Example : ConsumerEcuName::ServiceId::InstanceId::FieldSetterId::Argument3

8 - MessageId == FieldSetter(Server) : a response call that allows writing access to a field : not allowed

”EcuName::npduId::signalName” (Npdu)

B - This path can be classified by the type of MemberName

1 - MemberName whose type is primitive (simple) for example Int8, Int16, Int32, float, double, Enum,…

==> Set directly the member of the messageID

Example : ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName (method request)

: ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName (method response)

: ProviderEcuName::ServiceId::InstanceId::EventId::inputName (event)

: ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName (notifier)

2 - MemberName whose type is complex (struct or struct in a struct ,…)

==> Follow the level of complexity until reaching a primitive type and then set it, to pass from one level to

another lever use ::

Example Complex (struct) : argument should be primitive :

ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::Argument

ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName::Argument

ProviderEcuName::ServiceId::InstanceId::EventId::inputName::Argument

ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName::Argument

Example doubly Complex (struct in struct) :

ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::memberName::Argument

ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName::memberName::Argument

ProviderEcuName::ServiceId::InstanceId::EventId::inputName::memberName::Argument

ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName::memberName::Argument

Example triply Complex (struct in the struct in struct)

ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::memberName::subMember::Argument

ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName::memberName::subMember::Argument

ProviderEcuName::ServiceId::InstanceId::EventId::inputName::memberName::subMember::Argument

ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName::memberName::subMember::Argument

3 - MemberName whose type is dynamic array (array or matrix)

Only members until min size of a dynamic length array are created by default.

To Set/check additional members, all array-size members in the member path need to be set

(value should be between min and max size) ARRAY_SIZE member path = ARRAY_PATH::array_dimension_value::ARRAY_SIZE

Example : SetETHNetwork(“EcuName::ServiceId::InstanceId::MethodId::array_name::1ARRAY_SIZE”,”15,false”)

::1:: array dimension == 1

array_name is a dynamic array, the user expects to have 15 elements in the array, and 15 should be between min and max

After resizing the dynamic array, the user can set any member at any index in the array like that :

array_name::array_dimension::index_to_be_set_in_the_array

* array_dimension == 1 in the case of the simple dynamic array

* array_dimension == 2 in case of the double dynamic array (matrix)

* index_to_be_set_in_the_array : from index 1 to the chosen index (15 in the last example)

Example : SetETHNetwork(“EcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::1::2”,”12,true”)

==> Set the value in the index 2 by 12 in the simple array

Example : SetETHNetwork(“EcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::1::15”,”10,true”)

==> Set the value in the index 15 by 10 in the simple array

Note: we can have a dynamic array of structs, in this case, apply rules 2 and 3

@param param (string) is composed of 2 parts separated by a comma ‘,’ valueToBeSet,updateNotSend

1 - The value of the signal to be set: according to the format of the member to be set:

a - String, just put the value to be set as it is for example “stringValue,true”

b - Boolen, put 0 or 1 (0 : false , 1 :true) for example “0,true”

c - float number, (float or double) add it with a point like the following “12125.125,true”

d - negative number, (int8, int16, int32, int64,…) add the symbol - for example “-122,true”

e - positive number, (uint8, uint16, uint32, uint64, enum..) for example “12544,true” or “0xAABB,true”

2 - The flag update_and_send

if (update_and_send == false) update the value of the memeber but do not send the payload, used to update several

members in the same payload and send the payload only once at the end

Example :

SetETHNetwork(“ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName1”,”12,false”) //update

SetETHNetwork(“ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName2”,”-12,false”) //update

SetETHNetwork(“ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName3”,”12.1222,false”)// update

SetETHNetwork(“ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName4”,”0,true”) //update and send now

if (update_and_send == true) update the value of the memeber and also send the payload

Example :

SetETHNetwork(“ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName1”,”12,true”)

SetETHNetwork(“ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName1”,”12532,true”) @ return BOOL, return true if the syntax of the path and param are OK, false otherwise

BOOL SetETHNetworks(API_HANDLE, const char **paths, size_t paths_count, const char **params, size_t params_count)
BOOL StartStopCyclicETHMessage(API_HANDLE, const char *path, BOOL respect_cycle)
BOOL SendSomeIpRawPayload(API_HANDLE, const char *path, const uint8_t *payload, size_t payload_size)

This function aims to send a raw payload over someIp.

This path can be classified by the type of MessageID 1 - MessageId == MethodId(Method request) : set a method request, the given EcuName should be a consumer ECU name Example : ConsumerEcuName::ServiceId::InstanceId::MethodId 2 - MessageId == EventId : set an event, the given EcuName should be always a provider ECU name Example : ProviderEcuName::ServiceId::InstanceId::EventId 3 - MessageId == FieldNotifierID : set a notifier The given EcuName should be always a provider ECU name Example : ProviderEcuName::ServiceId::InstanceId::FieldNotifierId 4 - MessageId == FieldGetter(Server) : set a getter response The given EcuName should be a provider ECU name Example : ProviderEcuName::ServiceId::InstanceId::FieldGetterId 5 - MessageId == FieldSetter(Client) : set a setter client The given EcuName should be a consumer ECU name Example : ConsumerEcuName::ServiceId::InstanceId::FieldSetterId

Parameters:
  • path – (string) : the complete path of the message to be set by sending its payload, this path is created like the following: “EcuName::ServiceId::InstanceId::MessageId”. There is no memberName because this function sets the entire message not a specific signal

  • payload – : a byte array that covers all bytes of the message to be set

  • payload_size – : size of payload Example : SendSomeIpRawPayload(“ConsumerEcuName::ServiceId::InstanceId::MethodId”,[0x00,0x12,0xAA,0xBB,0x1,0x2,0x3,0x4,0x11,0x22],10) @ return BOOL, return true if the syntax of the path is OK, false otherwise

BOOL CheckETHNetwork(API_HANDLE, const char *path, const char *param)

This function aims to check a specific signal over ethernet (someIp)

A - This path can be classified by the type of MessageID 1 - MessageId == MethodId(Method request) : check an input argument in a method, the given EcuName should be a consumer ECU Example : ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName 2 - MessageId == MethodId(Method response) : check an output argument in a method, the given EcuName should be a provider ECU Example : ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName 3 - MessageId == EventId : check an input argument in an event, the given EcuName should be always a provider ECU Example : ProviderEcuName::ServiceId::InstanceId::EventId::Argument1 4 - MessageId == FieldNotifierID : check a notifier if its type is primitive(Int8, Int16,Double,..) or check a member or a subMember if its type is complex(struct). The given EcuName should be always a provider ECU Example : ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName if its type is double for example 5 - MessageId == FieldGetter(Server) : check a getter response The given EcuName should be a provider ECU name Example : ProviderEcuName::ServiceId::InstanceId::FieldGetterId::Argument2 6 - MessageId == FieldSetter(Server) : check a setter response The given EcuName should be a provider ECU name Example : ProviderEcuName::ServiceId::InstanceId::FieldSetterId 7 - MessageId == FieldSetter(Client) : check a setter request The given EcuName should be a consumer ECU name Example : ConsumerEcuName::ServiceId::InstanceId::FieldSetterId::Argument3

B - This path can be classified by the type of MemberName 1 - MemberName whose type is primitive (simple) for example Int8, Int16, Int32, float, double, Enum,… ==> Check directly the member of the messageID Example : ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName (method request) : ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName (method response) : ProviderEcuName::ServiceId::InstanceId::EventId::inputName (event) : ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName (notifier) 2 - MemberName whose type is complex (struct or struct in a struct ,…) ==> Follow the level of complexity until reaching a primitive type and then check it, to pass from one level to another lever use :: Example Complex (struct) : argument should be primitive : ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::Argument ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName::Argument ProviderEcuName::ServiceId::InstanceId::EventId::inputName::Argument ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName::Argument Example doubly Complex (struct in struct) : ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::memberName::Argument ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName::memberName::Argument ProviderEcuName::ServiceId::InstanceId::EventId::inputName::memberName::Argument ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName::memberName::Argument Example triply Complex (struct in the struct in struct) ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::memberName::subMember::Argument ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName::memberName::subMember::Argument ProviderEcuName::ServiceId::InstanceId::EventId::inputName::memberName::subMember::Argument ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName::memberName::subMember::Argument 3 - MemberName whose type is dynamic array (array or matrix) Only members until min size of a dynamic length array are created by default. To Set/check additional members, all array-size members in the member path need to be set (value should be between min and max size) ARRAY_SIZE member path = ARRAY_PATH::array_dimension_value::ARRAY_SIZE Example : SetETHNetwork(“EcuName::ServiceId::InstanceId::MethodId::array_name::1::ARRAY_SIZE”,”15,false”) ::1:: array dimension == 1 (it is an array not a matrix (dimension == 2)) array_name is a dynamic array, the user expects to have 15 elements in the array, and 15 should be between min and max

After resizing the dynamic array, the user can check any member at any index in the array like that : array_name::array_dimension::index_to_be_check_in_the_array

  • array_dimension == 1 in the case of the simple dynamic array

  • array_dimension == 2 in case of the double dynamic array (matrix)

  • index_to_be_check_in_the_array : from index 1 to the chosen index (15 in the last example) Example : CheckETHNetwork(“EcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::1::2”,”12”) ==> check the value in the index 2to be equal to 12 in the simple array Example : checkETHNetwork(“EcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::1::15”,”10”) ==> Check the value in the index 15 to equal 10 in the simple array Note: we can have a dynamic array of structs, in this case, apply rules 2 and 3

    @ return BOOL, return true if the syntax of the path and param are OK, false otherwise

Parameters:
  • path – (string) : the complete path of the signal to be checked, this path is created like the following: “EcuName::ServiceId::InstanceId::MessageId::MemberName”

  • param – (string) the expected value The value of the signal to be checked: according to the format of the member to be checked: a - String, just put the value to be checked as it is for example “stringValueExpected” b - Boolen, put 0 or 1 (0 : false , 1 :true) for example “0” c - float number, (float or double) add it with a point like the following “12125.125” d - negative number, (int8, int16, int32, int64,…) add the symbol - for example “-122” e - positive number, (uint8, uint16, uint32, uint64, enum..) for example “12544” or “0xAABB”

BOOL CheckETHNetworkWithMask(API_HANDLE, const char *path, const char *param, uint64_t mask, ComparisonOp comp)
VARIANT_HANDLE GetSomeIpLastValue(API_HANDLE api, const char *path)

This function aims to get the last received value for a specific signal over someIp.

A - This path can be classified by the type of MessageID 1 - MessageId == MethodId(Method request) : get the value of an input argument in a method, the given EcuName should be a consumer ECU Example : ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName 2 - MessageId == MethodId(Method response) : get the value of an output argument in a method, the given EcuName should be a provider ECU Example : ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName 3 - MessageId == EventId : get the value of an input argument in an event, the given EcuName should be always a provider ECU Example : ProviderEcuName::ServiceId::InstanceId::EventId::Argument1 4 - MessageId == FieldNotifierID : get the value of a notifier if its type is primitive(Int8, Int16,Double,..) or get the value of a member or a subMember if its type is complex(struct). The given EcuName should be always a provider ECU Example : ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName 5 - MessageId == FieldGetter(Server) : get the value of a getter response The given EcuName should be a provider ECU name Example : ProviderEcuName::ServiceId::InstanceId::FieldGetterId::Argument2 6 - MessageId == FieldSetter(Server) : get the value of a setter response The given EcuName should be a provider ECU name Example : ProviderEcuName::ServiceId::InstanceId::FieldSetterId 7 - MessageId == FieldSetter(Client) : get the value of a setter request The given EcuName should be a consumer ECU name Example : ConsumerEcuName::ServiceId::InstanceId::FieldSetterId::Argument3

B - This path can be classified by the type of MemberName 1 - MemberName whose type is primitive (simple) for example Int8, Int16, Int32, float, double, Enum,… ==> Get the value of the member of the messageID directly Example : ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName (method request) : ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName (method response) : ProviderEcuName::ServiceId::InstanceId::EventId::inputName (event) : ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName (notifier) 2 - MemberName whose type is complex (struct or struct in a struct ,…) ==> Follow the level of complexity until reaching a primitive type and then get its value, to pass from one level to another lever use :: Example Complex (struct) : argument should be primitive : ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::Argument ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName::Argument ProviderEcuName::ServiceId::InstanceId::EventId::inputName::Argument ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName::Argument Example doubly Complex (struct in struct) : ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::memberName::Argument ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName::memberName::Argument ProviderEcuName::ServiceId::InstanceId::EventId::inputName::memberName::Argument ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName::memberName::Argument Example triply Complex (struct in the struct in struct) ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::memberName::subMember::Argument ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName::memberName::subMember::Argument ProviderEcuName::ServiceId::InstanceId::EventId::inputName::memberName::subMember::Argument ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName::memberName::subMember::Argument 3 - MemberName whose type is dynamic array (array or matrix) Only members until min size of a dynamic length array are created by default. To Set/check/get the value of additional members, all array-size members in the member path need to be set (value should be between min and max size) ARRAY_SIZE member path = ARRAY_PATH::array_dimension_value::ARRAY_SIZE Example : SetETHNetwork(“EcuName::ServiceId::InstanceId::MethodId::array_name::1::ARRAY_SIZE”,”15,false”) ::1:: array dimension == 1 (it is an array not a matrix (dimension == 2)) array_name is a dynamic array, the user expects to have 15 elements in the array, and 15 should be between min and max

After resizing the dynamic array, the user can get the value of any member at any index in the array like that : array_name::array_dimension::index_to_be_get_in_the_array

  • array_dimension == 1 in the case of the simple dynamic array

  • array_dimension == 2 in case of the double dynamic array (matrix)

  • index_to_be_get_in_the_array : from index 1 to the chosen index (15 in the last example) Example : GetSomeIpLastValue(“EcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::1::2”) ==> Get the value in index 2 in the simple array Example : GetSomeIpLastValue(“EcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::1::15”) ==> Get the value in the index 15 in the simple array Note: we can have a dynamic array of structs, in this case, apply rules 2 and 3

@ return : It depends on the type of the member to be gotten, this function returns one of the following types: 1 - String : a - If the type of the signal to be gotten is string b - Return “Invalid” if the syntax of the given path is wrong c - returns “Invalid” if there is no value received for the given signal 2 - Double if the type of signal to be gotten is float or double 3 - Int64 if the type of signal to be gotten is signed integer 4 - Uint64 if the type of signal to be gotten is an unsigned integer

Parameters:

path – (string) : the complete path of the signal, this path is created like the following: “EcuName::ServiceId::InstanceId::MessageId::MemberName”

BOOL MonitorAlwaysEthNetwork(API_HANDLE, const char *path, const char *expected_value, int timeout, ComparisonOp comp, uint64_t mask)

This function aims to verify that the value of a specific signal over ethernet (someIp) respects a specific rule during a given period 1 - If all received values of the signal to be checked respect the given rule during the given timeout ==> The monitor will return successfully 2 - If one of the received values for the signal to be checked does not respect the given rule during the given timeout ==> The monitor will return failed but the entire timeout will be elapsed even if the rule was not respected at the beginning of the timeout 3 - If there is no received value for the signal to be checked during the given timeout, we check the last received value before the start monitor a - If the last received value respects the rule ==> the monitor will return successfully b - If the last received value does not respect the rule ==> the monitor will return failed.

A - This path can be classified by the type of MessageID 1 - MessageId == MethodId(Method request) : check an input argument in a method, the given EcuName should be a consumer ECU Example : ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName 2 - MessageId == MethodId(Method response) : check an output argument in a method, the given EcuName should be a provider ECU Example : ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName 3 - MessageId == EventId : check an input argument in an event, the given EcuName should be always a provider ECU Example : ProviderEcuName::ServiceId::InstanceId::EventId::Argument1 4 - MessageId == FieldNotifierID : check a notifier if its type is primitive(Int8, Int16,Double,..) or check a member or a subMember if its type is complex(struct). The given EcuName should be always a provider ECU Example : ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName if its type is double for example 5 - MessageId == FieldGetter(Server) : check a getter response The given EcuName should be a provider ECU name Example : ProviderEcuName::ServiceId::InstanceId::FieldGetterId::Argument2 6 - MessageId == FieldSetter(Server) : check a setter response The given EcuName should be a provider ECU name Example : ProviderEcuName::ServiceId::InstanceId::FieldSetterId 7 - MessageId == FieldSetter(Client) : check a setter request The given EcuName should be a consumer ECU name Example : ConsumerEcuName::ServiceId::InstanceId::FieldSetterId::Argument3

B - This path can be classified by the type of MemberName 1 - MemberName whose type is primitive (simple) for example Int8, Int16, Int32, float, double, Enum,… ==> Check directly the member of the messageID Example : ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName (method request) : ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName (method response) : ProviderEcuName::ServiceId::InstanceId::EventId::inputName (event) : ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName (notifier) 2 - MemberName whose type is complex (struct or struct in a struct ,…) ==> Follow the level of complexity until reaching a primitive type and then check it, to pass from one level to another lever use :: Example Complex (struct) : argument should be primitive : ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::Argument ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName::Argument ProviderEcuName::ServiceId::InstanceId::EventId::inputName::Argument ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName::Argument Example doubly Complex (struct in struct) : ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::memberName::Argument ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName::memberName::Argument ProviderEcuName::ServiceId::InstanceId::EventId::inputName::memberName::Argument ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName::memberName::Argument Example triply Complex (struct in the struct in struct) ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::memberName::subMember::Argument ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName::memberName::subMember::Argument ProviderEcuName::ServiceId::InstanceId::EventId::inputName::memberName::subMember::Argument ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName::memberName::subMember::Argument 3 - MemberName whose type is dynamic array (array or matrix) Only members until min size of a dynamic length array are created by default. To Set/check additional members, all array-size members in the member path need to be set (value should be between min and max size) ARRAY_SIZE member path = ARRAY_PATH::array_dimension_value::ARRAY_SIZE Example : SetETHNetwork(“EcuName::ServiceId::InstanceId::MethodId::array_name::1::ARRAY_SIZE”,”15,false”) ::1:: array dimension == 1 (it is an array not a matrix (dimension == 2)) array_name is a dynamic array, the user expects to have 15 elements in the array, and 15 should be between min and max

After resizing the dynamic array, the user can check any member at any index in the array like that : array_name::array_dimension::index_to_be_check_in_the_array

  • array_dimension == 1 in the case of the simple dynamic array

  • array_dimension == 2 in case of the double dynamic array (matrix)

  • index_to_be_check_in_the_array : from index 1 to the chosen index (15 in the last example) Example : CheckETHNetwork(“EcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::1::2”,”12”) ==> check the value in the index 2to be equal to 12 in the simple array Example : checkETHNetwork(“EcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::1::15”,”10”) ==> Check the value in the index 15 to equal 10 in the simple array Note: we can have a dynamic array of structs, in this case, apply rules 2 and 3

Parameters:
  • path – (string) : the complete path of the signal to be checked, this path is created like the following: “EcuName::ServiceId::InstanceId::MessageId::MemberName”

  • expected_value – (string) the expected value The value of the signal to be checked: according to the format of the member to be checked: a - String, just put the value to be checked as it is for example “stringValueExpected” b - Boolen, put 0 or 1 (0 : false , 1 :true) for example “0” c - float number, (float or double) add it with a point like the following “12125.125” d - negative number, (int8, int16, int32, int64,…) add the symbol - for example “-122” e - positive number, (uint8, uint16, uint32, uint64, enum..) for example “12544” or “0xAABB”

  • timeout – (int) number of milliseconds during which we check if the signal respects the given rule or not

  • comp – (enum) the rule to be checked for each received value : a : EQUAL : 0 b : >= : 1 c : > : 2 d : <= : 3 e : < : 4 f : Not EQUAL : 5 The default value is EQUAL

  • mask – (uint64) : a bit mask to be applied to the received value if the signal is integral before checking the rule its value by default is 0xFFFFFFFFFFFFFFFF (check the received value as it is) @ return BOOL, return true if the signal respects the rule during the timeout, false otherwise

BOOL MonitorHappenedEthNetwork(API_HANDLE, const char *path, const char *expected_value, int timeout, ComparisonOp comp, uint64_t mask)

This function aims to verify that the value of a specific signal over ethernet (someIp) respects a specific rule at least once during a given period 1 - if the last received value before starting the monitor respects the given rule ==> The monitor will return successfully without starting elapsing the timeout 2 - else, If at least, one of the received values respects the rule during the timeout ==> The monitor will return successfully, at the time of receiving the respected value without elapsing all the timeout 3 - if all the received values do not respect the rule during the timeout ==> The monitor will return failed after elapsing the entire timeout 4 - If there is no received value for the signal to be checked during the given timeout ==> The monitor will return failed after elapsing the entire timeout.

A - This path can be classified by the type of MessageID 1 - MessageId == MethodId(Method request) : check an input argument in a method, the given EcuName should be a consumer ECU Example : ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName 2 - MessageId == MethodId(Method response) : check an output argument in a method, the given EcuName should be a provider ECU Example : ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName 3 - MessageId == EventId : check an input argument in an event, the given EcuName should be always a provider ECU Example : ProviderEcuName::ServiceId::InstanceId::EventId::Argument1 4 - MessageId == FieldNotifierID : check a notifier if its type is primitive(Int8, Int16,Double,..) or check a member or a subMember if its type is complex(struct). The given EcuName should be always a provider ECU Example : ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName if its type is double for example 5 - MessageId == FieldGetter(Server) : check a getter response The given EcuName should be a provider ECU name Example : ProviderEcuName::ServiceId::InstanceId::FieldGetterId::Argument2 6 - MessageId == FieldSetter(Server) : check a setter response The given EcuName should be a provider ECU name Example : ProviderEcuName::ServiceId::InstanceId::FieldSetterId 7 - MessageId == FieldSetter(Client) : check a setter request The given EcuName should be a consumer ECU name Example : ConsumerEcuName::ServiceId::InstanceId::FieldSetterId::Argument3

B - This path can be classified by the type of MemberName 1 - MemberName whose type is primitive (simple) for example Int8, Int16, Int32, float, double, Enum,… ==> Check directly the member of the messageID Example : ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName (method request) : ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName (method response) : ProviderEcuName::ServiceId::InstanceId::EventId::inputName (event) : ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName (notifier) 2 - MemberName whose type is complex (struct or struct in a struct ,…) ==> Follow the level of complexity until reaching a primitive type and then check it, to pass from one level to another lever use :: Example Complex (struct) : argument should be primitive : ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::Argument ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName::Argument ProviderEcuName::ServiceId::InstanceId::EventId::inputName::Argument ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName::Argument Example doubly Complex (struct in struct) : ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::memberName::Argument ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName::memberName::Argument ProviderEcuName::ServiceId::InstanceId::EventId::inputName::memberName::Argument ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName::memberName::Argument Example triply Complex (struct in the struct in struct) ConsumerEcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::memberName::subMember::Argument ProviderEcuName::ServiceId::InstanceId::MethodId::RETURN::outputName::memberName::subMember::Argument ProviderEcuName::ServiceId::InstanceId::EventId::inputName::memberName::subMember::Argument ProviderEcuName::ServiceId::InstanceId::FieldNotifierId::fieldNotifierName::memberName::subMember::Argument 3 - MemberName whose type is dynamic array (array or matrix) Only members until min size of a dynamic length array are created by default. To Set/check additional members, all array-size members in the member path need to be set (value should be between min and max size) ARRAY_SIZE member path = ARRAY_PATH::array_dimension_value::ARRAY_SIZE Example : SetETHNetwork(“EcuName::ServiceId::InstanceId::MethodId::array_name::1::ARRAY_SIZE”,”15,false”) ::1:: array dimension == 1 (it is an array not a matrix (dimension == 2)) array_name is a dynamic array, the user expects to have 15 elements in the array, and 15 should be between min and max

After resizing the dynamic array, the user can check any member at any index in the array like that : array_name::array_dimension::index_to_be_check_in_the_array

  • array_dimension == 1 in the case of the simple dynamic array

  • array_dimension == 2 in case of the double dynamic array (matrix)

  • index_to_be_check_in_the_array : from index 1 to the chosen index (15 in the last example) Example : CheckETHNetwork(“EcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::1::2”,”12”) ==> check the value in the index 2to be equal to 12 in the simple array Example : checkETHNetwork(“EcuName::ServiceId::InstanceId::MethodId::INPUT::inputName::1::15”,”10”) ==> Check the value in the index 15 equal to 10 in the simple array Note: we can have a dynamic array of structs, in this case, apply rules 2 and 3

Parameters:
  • path – (string) : the complete path of the signal to be checked, this path is created like the following: “EcuName::ServiceId::InstanceId::MessageId::MemberName”

  • expected_value – (string) the expected value The value of the signal to be checked: according to the format of the member to be checked: a - String, just put the value to be checked as it is for example “stringValueExpected” b - Boolen, put 0 or 1 (0 : false , 1 :true) for example “0” c - float number, (float or double) add it with a point like the following “12125.125” d - negative number, (int8, int16, int32, int64,…) add the symbol - for example “-122” e - positive number, (uint8, uint16, uint32, uint64, enum..) for example “12544” or “0xAABB”

  • timeout – (int) number of milliseconds during which we check if the signal respects the given rule or not

  • comp – (enum) the rule to be checked for each received value : a : EQUAL : 0 b : >= : 1 c : > : 2 d : <= : 3 e : < : 4 f : Not EQUAL : 5 The default value is EQUAL

  • mask – (uint64) : a bit mask to be applied to the received value if the signal is integral before checking the rule its value by default is 0xFFFFFFFFFFFFFFFF (check the received value as it is) @ return BOOL, return true if the signal respects the rule during the timeout at least once, false otherwise

BOOL ControlMethodResponse(API_HANDLE, const char *methodPath, BOOL onOff, const char *methodInput, const char *methodReturn)
BOOL SetResponseTimeout(API_HANDLE, const char *methodPath, uint64_t timeout_in_ms)
BOOL MonitorAlwaysSignalsMixed(API_HANDLE, const char **paths, size_t paths_count, const uint8_t *types, size_t types_count, const char **values, size_t values_count, int timeout, const ComparisonOp *comps, size_t comps_count, const uint64_t *masks, size_t masks_count)
BOOL MonitorHappenedSignalsMixed(API_HANDLE, const char **paths, size_t paths_count, const uint8_t *types, size_t types_count, const char **values, size_t values_count, int timeout, const ComparisonOp *comps, size_t comps_count, const uint64_t *masks, size_t masks_count)
BOOL StartEthObserver(API_HANDLE, const char *path)
BOOL StopEthObserver(API_HANDLE, const char *path)
BOOL CheckEthCyclicRepetition(API_HANDLE, const char *path, uint16_t cycle, uint8_t cycle_deviation, uint16_t nb_repetition)
BOOL ClearEthBuffer(API_HANDLE, const char *path)
BOOL CheckEthReception(API_HANDLE, const char *path, BOOL is_received)
void MessageObserverConfigureFrameBufferMaxSize(API_HANDLE, uint8_t max_size)
BOOL MessageObserverStartObserver(API_HANDLE, const char *message_path, BOOL on_change, BOOL include_empty_frames)
MESSAGE_BUFFER_HANDLE MessageObserverStopObserver(API_HANDLE, const char *message_path, BOOL get_values)
BOOL MessageObserverCheckCyclicTimeout(API_HANDLE, const char *message_path, uint16_t cyclic, uint16_t cyclic_deviation, uint16_t timeout, LogicalOp)
BOOL MessageObserverCheckCyclicRepetition(API_HANDLE, const char *message_path, uint16_t cyclic, uint16_t cyclic_deviation, uint16_t repetitions, LogicalOp)
BOOL MessageObserverCheckReception(API_HANDLE, const char *message_path, BOOL is_received, LogicalOp)
BOOL MessageObserverCheckPayloadByte(API_HANDLE, const char *message_path, const uint8_t *index_buffer, size_t index_count, const uint8_t *value_buffer, size_t value_count, const uint8_t *mask_buffer, size_t mask_count, LogicalOp)
void MessageObserverClearBuffer(API_HANDLE, const char *message_path)
MESSAGE_BUFFER_HANDLE MessageObserverGetBuffer(API_HANDLE, const char *message_path)
BOOL MessageObserverMonitorHappenedMessage(API_HANDLE, const char *message_path, const uint8_t *index_buffer, size_t index_count, const uint8_t *value_buffer, size_t value_count, const uint8_t *mask_buffer, size_t mask_count, uint16_t timeout)
BOOL MessageObserverMonitorMessageIsReceived(API_HANDLE, const char *messagePath, uint64_t timeout)
BOOL MessageObserverMonitorMultiMessagesAreReceived(API_HANDLE, const char **messagePath, size_t count_path, uint64_t timeout)
BOOL MessageObserverCheckMultipleCyclicMessagesWithTimeout(API_HANDLE, const char **messagesPaths, const size_t count_path, const uint16_t *cyclic, const uint16_t *cyclicdeviation, uint16_t timeout)
BOOL MessageObserverMonitorAlwaysMessage(API_HANDLE, const char *message_path, const uint8_t *index_buffer, size_t index_count, const uint8_t *value_buffer, size_t value_count, const uint8_t *mask_buffer, size_t mask_count, uint16_t timeout, LogicalOp)
BOOL SignalObserverStartObserver(API_HANDLE, const char *signal_path, BOOL on_change, BOOL is_phy)
VALUE_BUFFER_HANDLE SignalObserverStopObserver(API_HANDLE, const char *signal_path, BOOL get_values)
BOOL SignalObserverCheckSignal(API_HANDLE, const char *signal_path, uint64_t signal_value, ComparisonOp, LogicalOp, uint64_t mask)
BOOL SignalObserverMonitorAlwaysSignal(API_HANDLE, const char *signal_path, uint64_t signal_value, int timeout, ComparisonOp, uint64_t mask)
BOOL SignalObserverMonitorHappenedSignal(API_HANDLE, const char *signal_path, uint64_t signal_value, int timeout, ComparisonOp, uint64_t mask)
BOOL SignalObserverClearBuffer(API_HANDLE, const char *signal_path)
VALUE_BUFFER_HANDLE SignalObserverGetBuffer(API_HANDLE, const char *signal_path)
VALUE_BUFFER_HANDLE SignalObserverGetReceivedSignalValuesTimeout(API_HANDLE, const char *signal_path, uint16_t timeout)
VALUE_BUFFER_HANDLE SignalObserverGetLatestReceivedSignalValues(API_HANDLE, const char *signal_path, uint16_t last_received_buffer_size)
BOOL SignalObserverConfigureSignalBufferMaxSize(API_HANDLE, uint8_t max_size)
BOOL SetTriggerThenWaitReaction(API_HANDLE, const char **signals_paths_to_Set, const char **values_to_set, size_t paths_to_set_size, uint16_t setting_timeout, const char **signal_path_to_monitor, const char **expected_values, size_t paths_to_check_size, uint16_t checking_timeout, const int *compare_operations, const uint64_t *masks)
BOOL IOChannelObserverStartObserver(API_HANDLE, const char *io_channel_path, const char *io_attribute_name)
VALUE_BUFFER_HANDLE IOChannelObserverStopObserver(API_HANDLE, const char *io_channel_path, const char *io_attribute_name, BOOL get_values)
BOOL IOChannelObserverCheckIOChannel(API_HANDLE, const char *io_channel_path, const char *io_attribute_name, double io_channel_value, ComparisonOp, LogicalOp, uint64_t mask)
BOOL IOChannelObserverMonitorAlwaysIOChannel(API_HANDLE, const char *io_channel_path, const char *io_attribute_name, double io_channel_value, int timeout, ComparisonOp, uint64_t mask)
BOOL IOChannelObserverMonitorHappenedIOChannel(API_HANDLE, const char *io_channel_path, const char *io_attribute_name, double io_channel_value, int timeout, ComparisonOp, uint64_t mask)
BOOL IOChannelObserverClearBuffer(API_HANDLE, const char *io_channel_path, const char *io_attribute_name)
VALUE_BUFFER_HANDLE IOChannelObserverGetBuffer(API_HANDLE, const char *io_channel_path, const char *io_attribute_name)
VALUE_BUFFER_HANDLE IOChannelObserverGetReceivedIOChannelValuesTimeout(API_HANDLE, const char *io_channel_path, const char *io_attribute_name, uint16_t timeout)
VALUE_BUFFER_HANDLE IOChannelObserverGetLatestReceivedIOChannelValues(API_HANDLE, const char *io_channel_path, const char *io_attribute_name, uint16_t last_received_buffer_size)
BOOL IOChannelObserverConfigureIOChannelBufferMaxSize(API_HANDLE, uint8_t max_size)
BOOL IOChannelObserverMonitorHappenedIOChannels(API_HANDLE, const char **io_channels_paths, size_t io_channels_paths_count, const char **io_attributes_names, size_t io_attributes_names_count, const double *io_channels_values, size_t io_channels_values_size, int timeout, const ComparisonOp *comparisions, size_t comparisions_size)
BOOL IOChannelObserverMonitorAlwaysIOChannels(API_HANDLE, const char **io_channels_paths, size_t io_channels_paths_count, const char **io_attributes_names, size_t io_attribute_name_count, const double *io_channels_values, size_t io_channels_values_size, int timeout, const ComparisonOp *comparisons, size_t comparisons_size)
void IOChannelObserverStopObservers(API_HANDLE, const char **io_channels_paths, size_t io_channels_paths_count, const char **io_attributes_names, size_t io_attributes_names_count)
BOOL BusObserverStartObserver(API_HANDLE, const char *bus_name, const uint8_t event_type)
BOOL BusObserverStopObserver(API_HANDLE, const char *bus_name, const uint8_t event_type)
BOOL BusObserverCheckTraffic(API_HANDLE, const char *bus_name, uint64_t timeout, const uint8_t event_type)
BOOL BusObserverMonitorTraffic(API_HANDLE, const char *bus_name, uint64_t timeout, const uint8_t event_type)