新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 射擊模擬訓練器激光靶設計

射擊模擬訓練器激光靶設計

作者: 時間:2012-03-30 來源:網(wǎng)絡 收藏

m_CommDpj.SetRThreshold(10);//設置OnComm事件的響應

m_Opened=m_CommDpj.SetPortOpen(m_Port);// 打開指定的串口

打開所需串口后,使用OnComm事件和CommEvent屬性捕捉并檢查通信事件和錯誤的值。發(fā)生通信事件或錯誤時將觸發(fā)OnComm事件,CommEvent屬性的值將被改變,應用程序通過檢查CommEvent屬性值并作出相應的反應。以下為OnComm事件的源代碼:
VARIANT m_input1;
COleSafeArray m_input2;
long length,i;
if(m_CommDpj.GetCommEvent()==2)//接收緩沖區(qū)內(nèi)有字符
{
m_input1=m_CommDpj.GetInput();//讀取緩沖區(qū)內(nèi)的數(shù)據(jù)
m_input2=m_input1;//將VARIANT型變量轉(zhuǎn)換為ColeSafeArray型變量
length=m_input2.GetOneDimSize();//確定數(shù)據(jù)長度
for(i=0;ilength;i++)
m_input2.GetElement(i,m_Data+i);//將數(shù)據(jù)轉(zhuǎn)換為BYTE型數(shù)組
FromDpj();//進行事件處理
DpjLock=false;
}

4.4 數(shù)據(jù)文件的生成

數(shù)據(jù)文件才文本形式進行存儲。在數(shù)據(jù)文檔中建立如下結(jié)構(gòu)體:
struct ShotData{
unsigned int m_uNum;//編號
unsigned int m_uSNum;//站號
unsigned int m_uPlot;//
CTime m_Curtime;//當前時間};

數(shù)據(jù)記錄的源代碼如下:
void CJGBDoc::GetFileName()//獲取記錄文件名
{
CString m_str;
GetCurrentDirectory(128,m_str.GetBuffer(128));
m_str.ReleaseBuffer(-1);
CFileDialog dlg(false,Txt,m_str+*.Txt,NULL,記錄文件(*.Txt));
if(dlg.DoModal()==IDOK)
{
if(file.Open(dlg.GetPathName(),CFile::modeRead)!=0)
{
if(AfxMessageBox(文件已存在,是否覆蓋?,MB_YESNO)==IDNO)
{
AfxMessageBox(文件保存失敗!);
return;
}
file.Close();
}
if(file.Open(dlg.GetPathName(),CFile::modeWrite|CFile::modeCreate)==0)
{
AfxMessageBox(文件保存失??!);
}
}
else
AfxMessageBox(文件保存失??!);
}

實時記錄函數(shù):
{
---
CString m_record;
m_record.Format(%d,%d,%d,%s,m_pDoc-> ShotData.m_uNum,
m_pDoc-> ShotData.m_uNum, m_pDoc-> ShotData.m_uNum
m_pDoc-> ShotData.m_CurTime.Format (%y-%m-%d %H:%M:%S));
file.Write(m_record);
---
}

模擬信號相關(guān)文章:什么是模擬信號


脈寬調(diào)制相關(guān)文章:脈寬調(diào)制原理
激光器相關(guān)文章:激光器原理


關(guān)鍵詞: 設計 激光 訓練器 模擬 射擊

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉