初期化時
|
メールボックス生成:初期スレッド(mainスレッド)
//データ型 メールボックス
//アナログデータ取り込み・擬似データ作成スレッドとログ出力スレッドとの
//データの受け渡しをする為の、データ型メールボックスを作成する
strInfo.hParamMBox = CreateRtMailbox(DATA_MAILBOX | FIFO_QUEUING);
if (strInfo.hParamMBox == BAD_RTHANDLE)
Fail("Cannot create data mailbox ParamMBox");
if (!Catalog(NULL_RTHANDLE, strInfo.hParamMBox, "ParamMBox"))
Fail("Cannot catalog data mailbox ParamMBox");
|
データ送信
|
アナログ変換データ取得スレッド、擬似アナログデータ生成スレッド:データ100件に一度ログに出力する
/*取り込みデータ100件に1度ログ出力を行う */
if((dataCnt % 100) == 0){
/*100件に1度ログ出力スレッドにデータ型メールボックスを使用しデータを送信する */
SendRtData(strInfo.hParamMBox,aData,sizeof(aData));
/* 100件をの制御を行う為のカウンタをクリアする*/
dataCnt = 0;
}
|
データ受信
|
ログ出力スレッド:受信データをもとにログを出力
while (1) {
valData = (WORD*)byMessage;
/*アナログデータ取り込みスレッド、または擬似データ作成スレッドより*/
/*データ型メールボックスにてデータを受信*/
wActual = ReceiveRtData(strInfo.hParamMBox, valData, WAIT_FOREVER);
if (wActual == 0)
Fail("Receive from data mailbox ParamMBox failed");
/* 受信したデータをもとにログ出力を行う */
WriteLogFile(valData); /* ログ出力 */
}
|
|
|