Extensions.DiagComPlus.ExecuteHexDiagServiceFunctional

From emotive
Jump to navigation Jump to search

Classification

Name ExecuteHexDiagServiceFunctional
Short Description Allows the sending of diagnostic services by directly entering the request byte stream
Class Action
Extension OTX DiagComPlus extension
Group DiagComPlus related Actions
Exceptions LossOfComException
Checker Rules DiagComPlus_Chk001
Standard Compliant Yes

OTL Syntax

ActionRealisation DiagComPlus.ExecuteHexDiagServiceFunctional(ComChannelTerm comChannel, ByteFieldTerm request, MapVariable responses);

Description

The ExecuteHexDiagSeviceFunctional action allows the sending of diagnostic services by directly entering the request byte stream. Unlike the diag:ExecuteHexDiagService action, it will receive responses from different ECUs (functional addressing, refer to the example in ISO 13209-3 Figure One-shot service, functional addressing, single-part responses).

Icons Note.png The time that the action will wait for responses is not specified in this action. It depends on the communication parameters of the given diag:ComChannel or the underlying system.

Properties

Name Data Type Class Default Cardinality Description
ComChannel ComChannel Term - [1..1] This element will reference the handle of the communication channel, which will be used for communication with the functional (or physical) link.
Request ByteField Term - [1..1] This element will contain the service request as a set of raw bytes.
Responses Map Variable - [1..1] This element specifies the OTX Map<String,ByteField> variable to which the combination of ComChannelIdentifier and raw response bytes of the service will be assigned. The key of the map is the ComChannelIdentifier. The associated value is the hexadecimal response of the ECU.
Exclamation.png Important: If there is more than one ComChannelIdentifier with the same ECU short name, but a different baud rate value: the one that uses the baud rate that is currently being used will be returned.
Exclamation.png Important: If there is more than one ComChannelIdentifier with the same communication ID (e.g. CAN ID) and same baud rate, but a different ECU short name only one (not specified which one) of them will be returned.
Icons Note.png The map will be empty. For example, if the hexadecimal service is configured to suppress positive responses and all connected ECUs respond positively.

OTL Examples

/// Local Declarations

Exception Exception1;
DiagCom.ComChannel ComChannel1;
ByteField ByteField1 = &1122;
Map<String, ByteField> MapStringByteField1;

/// Flow

ComChannel1 = DiagCom.GetComChannel("LL_GatewUDS", "EV_GatewLear_006", false);

try
{
	[#DiagMetaData , <#Data>
		<dmd:diagMetaData xmlns:dmd="http://iso.org/OTX/1.0.0/Auxiliaries/DiagMetaData">
		  <dmd:comChannelName value="LL_GatewUDS" />
		  <dmd:ecuVariantName value="EV_GatewLear_006" />
		</dmd:diagMetaData></#Data>]
	DiagComPlus.ExecuteHexDiagServiceFunctional(ComChannel1, ByteField1, MapStringByteField1);
}
catch (DiagCom.LossOfComException Exception1)
{
}

See also

StartCommunication
StopCommunication
CreateComChannel
GetComChannelState
GetComParameterList