<FunctionCatalog xmlns="http://www.mostcooperation.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mostcooperation.com mostfcat_3_1_0.xsd">
<CatalogVersion Release="3.1.0" Date="2016-10-19+02:00" SchemaVersion="3.1.0">
<Author>WG DA</Author>
<Company>MOST Cooperation</Company>
<!---->
</CatalogVersion>
<SharedParameters>
<SharedParameter Name="ErrorCode_0">
<Parameter Name="ErrorCode">
<Description>(Refer to the MOST Specification, section "Structure of MOST Messages: OPType")</Description>
<DataType>
<TEnum>
<TEnumValue Name="FBlockIDNotAvailable" Code="1">
<Description>FBlockID not available</Description>
</TEnumValue>
<TEnumValue Name="InstIDNotAvailable" Code="2">
<Description>InstID not available</Description>
</TEnumValue>
<TEnumValue Name="FktIDNotAvailable" Code="3">
<Description>FktID not available</Description>
</TEnumValue>
<TEnumValue Name="OPTypeNotAvailable" Code="4">
<Description>OPType not available</Description>
</TEnumValue>
<TEnumValue Name="InvalidLength" Code="5">
<Description>Invalid length</Description>
</TEnumValue>
<TEnumValue Name="ParameterWrong" Code="6">
<Description>One or more of the parameters were wrong, i.e., not within the boundaries specified for the function. Example: Function Temp shall be set to 200, although maximum value is 80. </Description>
</TEnumValue>
<TEnumValue Name="ParameterNotAvailable" Code="7">
<Description>One or more of the parameters were within the boundaries specified for the function, but are not available at that time. </Description>
</TEnumValue>
<TEnumValue Name="DeviceMalfunction" Code="11">
<Description>Device Malfunction</Description>
</TEnumValue>
<TEnumValue Name="SegmentationError" Code="12">
<Description>ErrorInfo contains a value in the range of 0x01…0x07.</Description>
</TEnumValue>
<TEnumValue Name="NotAvailable" Code="65">
<Description>Function is implemented in principle, but is not available at the moment.</Description>
</TEnumValue>
<TEnumReserved DisplayName="Reserved0x08_0x0A" StartCode="8" EndCode="10" />
<TEnumReserved DisplayName="Reserved0xFF" StartCode="255" EndCode="255" />
</TEnum>
</DataType>
</Parameter>
</SharedParameter>
<SharedParameter Name="SenderHandle_0">
<Parameter Name="SenderHandle">
<Description>Unique identifier of the requesting task within the device.</Description>
<DataType>
<TUWord Unit="none" Step="1" Exponent="0" />
</DataType>
</Parameter>
</SharedParameter>
</SharedParameters>
<FBlock Id="3" Name="ErrorSpecificationExample">
<Description />
<FBlockVersion Release="3.1.0" Date="2016-10-19+02:00" Access="public" />
<Function Name="MethodWithErrorSpecification" Id="1280" Virtual="false" Wellknown="false" Occurrence="Mandatory">
<Description>This method details how errors can be specified in the MOST function catalog.
</Description>
<FunctionVersion Release="0.0.1" Date="2015-04-08+02:00" Time="19:30:55.000+02:00" Access="public" />
<Parameters>
<Parameter Name="ByteParameter">
<Description>A parameter of data type Unsigned Byte.</Description>
<DataType>
<TUByte Unit="none" Step="1" Exponent="0" />
</DataType>
</Parameter>
<Parameter Name="ErrorInfo">
<Description>Besides the error information provided in the MOST Specification, as an example, additional function specific error info values are specified here.</Description>
<DataType>
<TStream>
<Parameters>
<Parameter Name="UnavailableOPType">
<Description>The value of the OPType for ErrorCode 0x04 (OPType not available). Because this error is only reported from FBlock to controller, the specified range does not include reports (OPType > 8).</Description>
<DataType>
<TEnum>
<TEnumValue Name="SetStart" Code="0">
<Description>Set for properties, Start for methods.</Description>
</TEnumValue>
<TEnumValue Name="GetAbort" Code="1">
<Description>Get for properties, Abort for methods.</Description>
</TEnumValue>
<TEnumValue Name="SetGetStartResult" Code="2">
<Description>SetGet for properties, StartResult for methods.</Description>
</TEnumValue>
<TEnumValue Name="Increment" Code="3">
<Description>Increment for properties; no OPType is specified for this code for methods.</Description>
</TEnumValue>
<TEnumValue Name="Decrement" Code="4">
<Description>Decrement for properties; no OPType is specified for this code for methods.</Description>
</TEnumValue>
<TEnumValue Name="NotAllowed" Code="5">
<Description>No OPType is specified for this code.</Description>
</TEnumValue>
<TEnumValue Name="StartResultAck" Code="6">
<Description>No OPType is specified for this code for properties; StartResultAck for methods.</Description>
</TEnumValue>
<TEnumValue Name="AbortAck" Code="7">
<Description>No OPType is specified for this code for properties; AbortAck for methods.</Description>
</TEnumValue>
<TEnumValue Name="StartAck" Code="8">
<Description>No OPType is specified for this code for properties; StartAckfor methods.</Description>
</TEnumValue>
</TEnum>
</DataType>
</Parameter>
<Parameter Name="ParameterPosition">
<Description>Contains the position of the offending parameter, where the value 1 corresponds to the first parameter. If a SenderHandle is present, 1 corresponds to the first parameter following the SenderHandle.</Description>
<DataType>
<TUByte Unit="none" Step="1">
<ValueRange Min="1" Max="255" />
</TUByte>
</DataType>
</Parameter>
<Parameter Name="ParameterValue">
<Description>Value of the first offending parameter. Since, the data type of the actual parameter is determined at run time, Array Type is used as an envelope so that arbitrary structures can be provided.</Description>
<DataType>
<TArrayType ElementCountByteLength="2" Name="ParameterValueByte">
<Description>One byte in the Parameter Value array.</Description>
<DataType>
<TUByte Unit="none" Step="1" />
</DataType>
</TArrayType>
</DataType>
</Parameter>
<Parameter Name="SegmentationErrorCause">
<Description>The cause of the segmentation error.</Description>
<DataType>
<TEnum>
<TEnumValue Name="FirstSegmentMissing" Code="1">
<Description>First segment missing, that is, the first telegram of a segmented message was not received.</Description>
</TEnumValue>
<TEnumValue Name="TooFewBuffers" Code="2">
<Description>Target node does not provide enough buffers to handle a message of this size.</Description>
</TEnumValue>
<TEnumValue Name="UnexpectedSegment" Code="3">
<Description>Unexpected segment number.</Description>
</TEnumValue>
<TEnumValue Name="TooManyMessages" Code="4">
<Description>Too many unfinished segmentation messages pending.</Description>
</TEnumValue>
<TEnumValue Name="Timeout" Code="5">
<Description>Timeout while waiting for next segment.</Description>
</TEnumValue>
<TEnumValue Name="NodeNotCapable" Code="6">
<Description>Node not capable of handling segmented messages.</Description>
</TEnumValue>
<TEnumValue Name="MessageCollision" Code="7">
<Description>Segmented message has not been finished before the arrival of another message with identical FBlockID, InstID, FktID, and OPType sent by the same node.</Description>
</TEnumValue>
</TEnum>
</DataType>
</Parameter>
</Parameters>
<StreamSwitch SelectorName="ErrorCode_0">
<ParamStreamCase MinSelectorValue="1" MaxSelectorValue="1">
<Description>FBlockID not available</Description>
</ParamStreamCase>
<ParamStreamCase MinSelectorValue="2" MaxSelectorValue="2">
<Description>InstID not available</Description>
</ParamStreamCase>
<ParamStreamCase MinSelectorValue="3" MaxSelectorValue="3">
<Description>FktID not available</Description>
</ParamStreamCase>
<ParamStreamCase MinSelectorValue="4" MaxSelectorValue="4">
<Description>OPType not available</Description>
<StreamParamReference Name="UnavailableOPType" />
</ParamStreamCase>
<ParamStreamCase MinSelectorValue="5" MaxSelectorValue="5">
<Description>Invalid length</Description>
</ParamStreamCase>
<ParamStreamCase MinSelectorValue="6" MaxSelectorValue="6">
<Description>Parameter wrong / out of range</Description>
<StreamParamReference Name="ParameterPosition" />
<StreamParamReference Name="ParameterValue" />
</ParamStreamCase>
<ParamStreamCase MinSelectorValue="7" MaxSelectorValue="7">
<Description>Parameter not available</Description>
<StreamParamReference Name="ParameterPosition" />
<StreamParamReference Name="ParameterValue" />
</ParamStreamCase>
<ParamStreamCase MinSelectorValue="11" MaxSelectorValue="11">
<Description>Device Malfunction</Description>
</ParamStreamCase>
<ParamStreamCase MinSelectorValue="12" MaxSelectorValue="12">
<Description>Segmentation Error</Description>
<StreamParamReference Name="SegmentationErrorCause" />
</ParamStreamCase>
<ParamStreamCase MinSelectorValue="65" MaxSelectorValue="65">
<Description>Not available</Description>
</ParamStreamCase>
</StreamSwitch>
</TStream>
</DataType>
</Parameter>
<SharedParameterReference Name="ErrorCode_0" />
<SharedParameterReference Name="SenderHandle_0" />
</Parameters>
<Method Class="Sequence Method">
<StartResultAck>
<ParameterReference Name="SenderHandle_0" />
<ParameterReference Name="ByteParameter" />
</StartResultAck>
<ErrorAck>
<ParameterReference Name="SenderHandle_0" />
<ParameterReference Name="ErrorCode_0" />
<ParameterReference Name="ErrorInfo" />
</ErrorAck>
<ResultAck>
<ParameterReference Name="ByteParameter" />
</ResultAck>
<Error>
<ParameterReference Name="ErrorCode_0" />
<ParameterReference Name="ErrorInfo" />
</Error>
</Method>
</Function>
</FBlock>
</FunctionCatalog>