RTA Knowledge Base

The InputOutputControlByIdentifier service is used by the client to substitute a value for an input signal, internal server function and/or force control to a value for an output (actuator) of an electronic system. In general, this service is used for relatively simple (e.g., static) input substitution / output control whereas Routine Control is used if more complex input substitution / output control is necessary.

The following examples show how to configure IO Control in RTA-BSW 3.1, to enable services:

  • FreezeCurrentState
  • ResetToDefault
  • ShortTermAdjustment
  • ReturnControlToECU
  • ReadData

Assumptions

You must have the following ETAS software installed:

  • ISOLAR-AB 4.0.2

  • RTA-BSW 3.1

  • RTA-RTE 6.3.0

  • RTA-OS 5.5.11

  • RTA-OS (Port) x.x.x

  • You already have DCM configure for basic services and the communication protocol is already configured.

  • You are familiar with the IO Control UDS service

Dcm Configuration

First we must configure the service in our DcmDsdServices table. Go to Dcm > DcmConfigSet > DcmDsd > DcmDsdServiceTableand right-click on DcmDsdServices. Select,"Create DcmDsdService". The below screenshot highlights the configurations required. In most configurations, the configuration below will always be the same when using RTA-BSW 3.1:

Now that we have the service configured, we must configure one or more DIDs to use with the IO Control service. Go to Dcm > DcmConfigSet > DcmDsp > DcmDspDatas. Right-click on DcmDspDatas and select "Create DcmDspData". In the screenshot below we have configured a single 64 bit (8 byte) UINT8_N (array) signal which exposes a synchronous client-server port for our SWC to connect to in the RTE. This DcmDspData will then be referenced later by our DcmDspDidSignal.

Next we want to create our DcmDspDidInfo. Go to Dcm > DcmConfigSet > DcmDsp > DcmDspDidInfos. Right-click on DcmDspDidInfos and select "Create DcmDspDidInfo". In this case, this DID will not be dynamically defined, so we select "false"for DcmDspDidDynamicallyDefined.

Now expand out DcmDspDidInfo and select "DcmDspDidControl". Here is where we will specify the IO Control services we would like to support for this DID. You're services might be different, but below is an example configuration

Next we will create our DcmDspDid and DcmDspDidSignals. Go to Dcm > DcmConfigSet > DcmDsp > DcmDspDids. Right-click on DcmDspDids and select "Create DcmDspDids". Provide your DID ID number (in this case we configure it as 0xF199). Click the DcmDspDidInfoRef drop-down and select Show All References..., in the dialog select the DcmDspDidInfo that we created above. Our completed configuration should look something like this

Expand out DcmDspDid and then right-click on DcmDspDidSignalsand select "Create DcmDspDidSignal". In some instances, you may require more than one signal to be configured. In that case you can repeat step 4 above for each signal, and then create additional signals references like we just did. Each signal will need a DcmDspDidDataPos and the reference to the DcmDspData that we created above. In this case, since we only have one signal, that start position will be 0. Our configuration looks like below

At this point our DCM configuration for IO Control should be complete. From here we can generate the BSW using RTA-BSW Code Gen.

Rte Configuration

Now that we have successfully configured the DCM module for IO Control, we must implement the server side of our DID in order to implement the functions we defined above. After the generation of the BSW, the file Dcm_Cfg_SWCD.arxml is created. This file must then be integrated into our RTE project and used to connect to our SWC component. NOTE This walkthrough assume that the Dcm_Cfg_SWCD.arxml was already previously integrated into your project add that the BSW Module Instance Ref was already created. If you're using a Starter Kit, this will be the case.

If we look at our RTE project, we should see the DCM service component listed under components. Expanding out the R Ports we should see our newly created services port DataServices_DspData_IO_CTRL_F199.

This R Port uses the DCM generated interface

This interface expects our SWC to implement the server portion of this interface. This means that you must now create or use an existing software component, and add a P Port which provides 5 operation invoked event runnables to serve the requests that come from DCM when the IO Control service is request for this DID by a tester.

The remainder of the configuration is simply implementing configuring the SWC, connecting your SWC to the DCM service component in the composition and implementing the runnables in your code.

Conclusion

The samples and advice provided with this AN are provided to inform and guide and should not be assumed to be universally applicable. It is your responsibility to interpret the content and apply it to your specific use case.