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);
}
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
