Datenaustausch - DALI Low Level Driver - API
Der Low Level Treiber schickt seine Nachrichten über die Funktion dalill_toDaliLib zur API, wie im folgenden Beispiel:
/*************************************************************/ 
/* forward low level frames to dalilib 
**************************************************************/ 
void dalill_toDalilib(void * p_context, dalill_frame_t* p_frame) 
{ 
dalilib_receive(p_context, (dalilib_frame_t*)p_frame); 
} 
Die API schickt ihre Daten über den dali_send_callback an den Low Level Treiber. Dieser wird über die Funktion dall_ll_SendQueue mit den Daten beschickt. Wichtig ist, dass im dritten Parameter die richtige Instanz der APIs eingetragen wird, damit der Loop-Layer richtig arbeitet. Zum Beispiel:
/**************************************************************/ 
/* will be called by the DALI library if it wants to send a DALI message 
* to the driver 
* result: 0: success 
**************************************************************/ 
static uint8_t dali_send_callback(void * p_context, dalilib_frame_t* p_frame) 
{ 
uint8_t result = 0; 
if(bDaliStackReady) 
{ 
result = dalill_pushSendQueue(p_context,(dalill_frame_t* ) p_frame, 
pDaliStackInstance); 
} 
return result; 
} 
Der letzte wichtige Callback ist der Timinghelper. Dieser ermöglicht es der API-Zeiten zu kontrollieren und einzuhalten.
Zum Beispiel:
/**************************************************************/ 
/* called every 10 ms 
**************************************************************/ 
void dalill_timingHelper(void *pInstance,uint32_t dali_time_ticker) 
{ 
dalilib_timingHelper(pInstance, dali_time_ticker); 
} 
 
                        