Anfängerfrage

OP #3627990
Lesenswert?
• ▲
▼
Ich verstehe nicht ganz die Zuweisung:

endPoint.APS_DataInd=APS_DataInd;

APS_DataInd wird als Parameter des Endpoints definiert. Ist dies dann 
ein Callback-Funktions-Aufruf, der gleichzeitig ein Pointer ist? Ich 
verstehs leider nicht. Ich bin ein Microcontroller-Noob. Kann mir das 
vielleicht jemand erläutern?

static void initEndpoint(void){
    simpleDescriptor.AppDeviceId=1;
    simpleDescriptor.AppProfileId=1;
    simpleDescriptor.endpoint=1;
    simpleDescriptor.AppDeviceVersion=1;
    endPoint.simpleDescriptor=&simpleDescriptor;
    endPoint.APS_DataInd=APS_DataInd;
    APS_RegisterEndpointReq(&endPoint);
}

void APS_DataInd(APS_DataInd_t *indData){
    BSP_OnLed(LED_RED);
    HAL_StartAppTimer(&receiverTimerLed);
    appWriteDataToUart(indData->asdu,indData->asduLength);
    appWriteDataToUart((uint8_t*)"\r\n",2);
}
Gast #3628122
Lesenswert?
• ▲
▼
Jan Schimmack schrieb:
> APS_DataInd wird als Parameter des Endpoints definiert. Ist dies dann
> ein Callback-Funktions-Aufruf, der gleichzeitig ein Pointer ist?

Das ist einfach eine Zuweisung der Adresse von APS_DataInd an 
endPoint.APS_DataInd. Bei Funktionen kann man zur Adressbildung das & 
weglassen, genauso wie man bei einenm Funktionszeiger zum Aufuf das * 
weglassen kann.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren