Skip to content

rtdata

Get value of input title="Action" Input.aGetValue().send()

**Transition trigger**: Input Value TRUE

Assign data from signal in choice point or transition action
```title="Example"
// A) transition action
m_Variable = *rtdata;
// B) choice point (digital input)
return *rtdata
title="Check which error we get" if(rtdata->GetCur() == DRIVE_ERR_FOLLOWINGWIN){ //Do something }

## rtport
Source port information

```title="Check source port example"
if(rtport == &PortName){
//Do something
}

title='Send signal to source port' rtport->Error(CdErrorCode(GEN_ERR_BADPARAM)).reply();

## msg
```title="Get messange priority"
msg->getPriority()
title="Get signal index number" msg->sapIndex0();
```title="Defer message"
msg->defer();

```title="Recall message" ModePort.aStop().recall( true ); ModePort.recallAllFront(); FuncPort.recall();

```title="Purge message"
ModePort.aStop().purge();
ModePort.purge();

```title="Get signal as object"

if(msg->getSignal() == CpDriveStatePoller::Base::rti_IsMoving) { //Do Something }

```title="Get signal name"


if(msg->getSignalName() == "IsHigh")
{
//Do Something
}

getPortName

add to relations "CrProtocolUtil"

```title="Get port name"

//version 1 CdString sPortName = ""; sPortName.Empty() << CrProtocolUtil::GetNameOfPort( getMsg()->sap() );

//version 2 CdString sPortName = ""; const RTMessage * poMsg = getMsg(); if (poMsg != (const RTMessage *)0) { // Port stuff

const RTProtocol * poPort = poMsg->sap();
if (poPort != (const RTProtocol *)0)
{
    sPortName = CrProtocolUtil::GetNameOfPort( poPort );
}

}

po_DLOG("PortName") << "PortName is " << sPortName << "." << CLOSELOG; ```