掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
変数の更新 (ID:67587)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
少し長いのですが、ソース抜粋です。 ①送信後 Sleep(300)の間に ③受信 ④フラグ更新しているようですが? ②に入りません OnOnCommMscomm1はMSCommアイコンをダブルクリックで自動つかされた関数で、 呼ばれるタイミングも、こちらでは操作していません。 void CServoCntrlView::OnButton3() //送信処理 { char SOH = 0x01; char STX = 0x02; char ETX = 0x03; char EOT = 0x04; char TAB = 0x09; ・ ・ CString sendtxt; char chr; char ctimes; m_HandsF = 0; //0:送信済み 1:受信あり 2:応答チェック済み for(int times = 0; times<3; times++) { //--------------------------------------- 送信 for(int i=0; i<nn+2; i++) { chr = sendtxt.GetAt( i ); SendBinary( &chr ); //①送信 } //--------------------------------------- 履歴追加 itoa( times+1, &ctimes, 10); m_RichEdit1 = m_RichEdit1 + "<Send>" + "(" + ctimes + ")" + TAB + m_Edit1 + TAB + m_Edit2 + TAB + m_Edit3 + TAB + m_Edit4 + '\r' + '\n'; UpdateData(FALSE); Sleep(300); if(m_HandsF == 1) //受信ありの場合 { times = 9; //②ここに入らない } else if(m_HandsF == 0 && times<3) //受信が無い場合 { chr = EOT; SendBinary( &chr ); Sleep( 100 ); m_RichEdit1 = m_RichEdit1 + "<Send> EOT" + '\r' + '\n'; UpdateData(FALSE); } } } void CServoCntrlView::OnOnCommMscomm1() //OnCommイベント { char TAB = 0x09; COleSafeArray aRecvData; //Byte要素の1次元配列 LPBYTE pRecvByte; int i = 0; int j; i = m_comm.GetCommEvent(); //イベントの種類を取得 int nn = 0; CString EvnMsg; switch( i ) { //----------------------------イベントメッセージ case 1: //comEvSend break; case 2: //comEvReceive //受信イベント aRecvData = m_comm.GetInput(); aRecvData.AccessData((void**)&pRecvByte); nn = aRecvData.GetOneDimSize(); if( nn ) { m_RichEdit1 = m_RichEdit1 + "<Rece>" + TAB; //③受信履歴追加 } ・ 内容をm_RichEdit1へ追加 ・ m_RichEdit1 = m_RichEdit1 + " " + '\r' + '\n'; UpdateData( FALSE ); aRecvData.UnaccessData(); m_HandsF = 1; //④フラグ更新 break; case 3: //comEvCTS break; case 4: //comEvDSR break; case 5: //comEvCD break; case 6: //comEvRing break; case 7: //comEvEOF break; ・ ・ ・ 最適化で省かれたとは?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.