typedef bool (* CALLBACK_TRANSFER)(char*, int, int);
通讯模块: CALLBACK_TRANSFER callBack_FillBuffer;
void COMM_BeginTransfer(CALLBACK_TRANSFER fillBuffer) { callBack_FillBuffer = fillBuffer; }
void COMM_Send() { char buffer[SIZE]; ... for (i=0; i<MAX_COUNT; i++) { if ((*callBack_FillBuffer)(buffer, SIZE, i)) { if (! COMM_Send_via_Port(buffer, SIZE)) { //Wrap the data and Send ... } } else break; //End. } }
其他 Module: void BeginTransfer() { COMM_BeginTransfer(TransferData); }
bool TransferData(char* buffer, int bufferSize, int index) { ... }
|