?? monicontroldlg.cpp
字號:
}
else
{
m_Small.SetIcon(hIconS_N);
}
//【大】光圈,微調
if(m_CRect_BM.PtInRect(myPoint))
{
m_BigMicro.SetIcon(hIconB_O);
}
else
{
m_BigMicro.SetIcon(hIconB_N);
}
//【小】光圈,微調
if(m_CRect_SM.PtInRect(myPoint))
{
m_SmallMicro.SetIcon(hIconS_O);
}
else
{
m_SmallMicro.SetIcon(hIconS_N);
}
//【遠】景深
if(m_CRect_F.PtInRect(myPoint))
{
m_Far.SetIcon(hIconF_O);
}
else
{
m_Far.SetIcon(hIconF_N);
}
//【遠】景深,微調
if(m_CRect_FM.PtInRect(myPoint))
{
m_FarMicro.SetIcon(hIconF_O);
}
else
{
m_FarMicro.SetIcon(hIconF_N);
}
//【近】景深
if(m_CRect_N.PtInRect(myPoint))
{
m_Near.SetIcon(hIconN_O);
}
else
{
m_Near.SetIcon(hIconN_N);
}
//【近】景深,微調
if(m_CRect_NM.PtInRect(myPoint))
{
m_NearMicro.SetIcon(hIconN_O);
}
else
{
m_NearMicro.SetIcon(hIconN_N);
}
//【長】焦距
if(m_CRect_LG.PtInRect(myPoint))
{
m_Long.SetIcon(hIconLG_O);
}
else
{
m_Long.SetIcon(hIconLG_N);
}
//【長】焦距,微調
if(m_CRect_LGM.PtInRect(myPoint))
{
m_LongMicro.SetIcon(hIconLG_O);
}
else
{
m_LongMicro.SetIcon(hIconLG_N);
}
//【短】焦距
if(m_CRect_SH.PtInRect(myPoint))
{
m_Short.SetIcon(hIconSH_O);
}
else
{
m_Short.SetIcon(hIconSH_N);
}
//【短】焦距,微調
if(m_CRect_SHM.PtInRect(myPoint))
{
m_ShortMicro.SetIcon(hIconSH_O);
}
else
{
m_ShortMicro.SetIcon(hIconSH_N);
}
//【開】雨刷
if(m_CRect_OB.PtInRect(myPoint))
{
m_OpenBrush.SetIcon(hIconO_O);
}
else
{
m_OpenBrush.SetIcon(hIconO_N);
}
//【關】雨刷
if(m_CRect_CB.PtInRect(myPoint))
{
m_CloseBrush.SetIcon(hIconC_O);
}
else
{
m_CloseBrush.SetIcon(hIconC_N);
}
//【開】射燈
if(m_CRect_OL.PtInRect(myPoint))
{
m_OpenLight.SetIcon(hIconO_O);
}
else
{
m_OpenLight.SetIcon(hIconO_N);
}
//【關】射燈
if(m_CRect_CL.PtInRect(myPoint))
{
m_CloseLight.SetIcon(hIconC_O);
}
else
{
m_CloseLight.SetIcon(hIconC_N);
}
CDialog::OnMouseMove(nFlags, point);
}
void CMoniControlDlg::SendCommand(int iType)
{
int i=0;
BYTE bytXor=0; //存放校驗字節內容
BYTE bytCommand; //存放命令字節內容
//根據iType,設置命令值bytCommand
switch(iType)
{
case 10100:
{
//更新操作顯示信息文本
m_ActStatus.SetWindowText("向上調節云臺!");
UpdateData(false);
bytCommand=0x92; //設置命令字節內容
break;
}
case 10101:
{
m_ActStatus.SetWindowText("無操作!");//停止向上調節云臺!
UpdateData(false);
bytCommand=0x93;
break;
}
case 10200:
{
m_ActStatus.SetWindowText("向下調節云臺!");
UpdateData(false);
bytCommand=0x94;
break;
}
case 10201:
{
m_ActStatus.SetWindowText("無操作!");//停止向下調節云臺!
UpdateData(false);
bytCommand=0x93;
break;
}
case 10300:
{
m_ActStatus.SetWindowText("向左調節云臺!");
UpdateData(false);
bytCommand=0x96;
break;
}
case 10301:
{
m_ActStatus.SetWindowText("無操作!");//停止向左調節云臺!
UpdateData(false);
bytCommand=0x97;
break;
}
case 10400:
{
m_ActStatus.SetWindowText("向右調節云臺!");
UpdateData(false);
bytCommand=0x98;
break;
}
case 10401:
{
m_ActStatus.SetWindowText("無操作!");//停止向右調節云臺!
UpdateData(false);
bytCommand=0x97;
break;
}
case 10110:
{
m_ActStatus.SetWindowText("向上調節云臺,微調!");
UpdateData(false);
bytCommand=0xB8;
break;
}
case 10210:
{
m_ActStatus.SetWindowText("向下調節云臺,微調!");
UpdateData(false);
bytCommand=0xB9;
break;
}
case 10310:
{
m_ActStatus.SetWindowText("向左調節云臺,微調!");
UpdateData(false);
bytCommand=0xB6;
break;
}
case 10410:
{
m_ActStatus.SetWindowText("向右調節云臺,微調!");
UpdateData(false);
bytCommand=0xB7;
break;
}
case 13100:
{
m_ActStatus.SetWindowText("向左上調節云臺!");
UpdateData(false);
bytCommand=0xA4;
break;
}
case 13101:
{
m_ActStatus.SetWindowText("無操作!");//停止向左上調節云臺!
UpdateData(false);
bytCommand=0xA8;
break;
}
case 13200:
{
m_ActStatus.SetWindowText("向左下調節云臺!");
UpdateData(false);
bytCommand=0xA5;
break;
}
case 13201:
{
m_ActStatus.SetWindowText("無操作!");//停止向左下調節云臺!
UpdateData(false);
bytCommand=0xA8;
break;
}
case 14100:
{
m_ActStatus.SetWindowText("向右上調節云臺!");
UpdateData(false);
bytCommand=0xA6;
break;
}
case 14101:
{
m_ActStatus.SetWindowText("無操作!");//停止向右上調節云臺!
UpdateData(false);
bytCommand=0xA8;
break;
}
case 14200:
{
m_ActStatus.SetWindowText("向右下調節云臺!");
UpdateData(false);
bytCommand=0xA7;
break;
}
case 14201:
{
m_ActStatus.SetWindowText("無操作!");//停止向右下調節云臺!
UpdateData(false);
bytCommand=0xA8;
break;
}
case 20100:
{
m_ActStatus.SetWindowText("增大光圈!");
UpdateData(false);
bytCommand=0x86;
break;
}
case 20101:
{
m_ActStatus.SetWindowText("無操作!");//停止增大光圈!
UpdateData(false);
bytCommand=0x87;
break;
}
case 20200:
{
m_ActStatus.SetWindowText("減小光圈!");
UpdateData(false);
bytCommand=0x88;
break;
}
case 20201:
{
m_ActStatus.SetWindowText("無操作!");//停止減小光圈!
UpdateData(false);
bytCommand=0x87;
break;
}
case 20300:
{
m_ActStatus.SetWindowText("增大景深!");
UpdateData(false);
bytCommand=0x8A;
break;
}
case 20301:
{
m_ActStatus.SetWindowText("無操作!");//停止增大景深!
UpdateData(false);
bytCommand=0x8B;
break;
}
case 20400:
{
m_ActStatus.SetWindowText("減小景深!");
UpdateData(false);
bytCommand=0x8C;
break;
}
case 20401:
{
m_ActStatus.SetWindowText("無操作!");//停止減小景深!
UpdateData(false);
bytCommand=0x8B;
break;
}
case 20500:
{
m_ActStatus.SetWindowText("焦距加長!");
UpdateData(false);
bytCommand=0x8E;
break;
}
case 20501:
{
m_ActStatus.SetWindowText("無操作!");//停止焦距加長!
UpdateData(false);
bytCommand=0x8F;
break;
}
case 20600:
{
m_ActStatus.SetWindowText("焦距縮短!");
UpdateData(false);
bytCommand=0x90;
break;
}
case 20601:
{
m_ActStatus.SetWindowText("無操作!");//停止焦距縮短!
UpdateData(false);
bytCommand=0x8F;
break;
}
case 20110:
{
m_ActStatus.SetWindowText("增大光圈,微調!");
UpdateData(false);
bytCommand=0xB0;
break;
}
case 20210:
{
m_ActStatus.SetWindowText("減小光圈,微調!");
UpdateData(false);
bytCommand=0xB1;
break;
}
case 20310:
{
m_ActStatus.SetWindowText("增大景深,微調!");
UpdateData(false);
bytCommand=0xB2;
break;
}
case 20410:
{
m_ActStatus.SetWindowText("減小景深,微調!");
UpdateData(false);
bytCommand=0xB3;
break;
}
case 20510:
{
m_ActStatus.SetWindowText("焦距加長,微調!");
UpdateData(false);
bytCommand=0xB4;
break;
}
case 20610:
{
m_ActStatus.SetWindowText("焦距縮短,微調!");
UpdateData(false);
bytCommand=0xB5;
break;
}
case 30100:
{
m_ActStatus.SetWindowText("打開雨刷!");
UpdateData(false);
bytCommand=0xA0;
break;
}
case 30200:
{
m_ActStatus.SetWindowText("關閉雨刷!");
UpdateData(false);
bytCommand=0xA1;
break;
}
case 30300:
{
m_ActStatus.SetWindowText("打開射燈!");
UpdateData(false);
bytCommand=0xA2;
break;
}
case 30400:
{
m_ActStatus.SetWindowText("關閉射燈!");
UpdateData(false);
bytCommand=0xA3;
break;
}
}
//根據iType發送具體的命令
if(iType==40100)
{
m_ActStatus.SetWindowText("選擇設備地址!");
UpdateData(false);
if(m_Address!=0)
{
//發送切換設備地址的命令
sendArray.SetAt(6,0);
sendArray.SetAt(10,m_Address);
sendArray.SetAt(11,0x80);
bytXor=0;
for(i=4;i<=11;i++)
{
bytXor^=sendArray.GetAt(i);
}
sendArray.SetAt(12,bytXor);
if(myComm.GetPortOpen())
{
myComm.SetOutput(COleVariant(sendArray));
}
else
{
m_ActStatus.SetWindowText("請先打開串口!");
UpdateData(false);
}
}
}
else
{
//發送設備操作命令
if(m_Address==0 && iType<30000)
{
m_ActStatus.SetWindowText("云臺、鏡頭不能廣播操作!");
UpdateData(false);
return;
}
sendArray.SetAt(6,1);
sendArray.SetAt(10,m_Address);
sendArray.SetAt(11,bytCommand);
bytXor=0;
for(i=4;i<=11;i++)
{
bytXor^=sendArray.GetAt(i);
}
sendArray.SetAt(12,bytXor);
if(myComm.GetPortOpen())
{
myComm.SetOutput(COleVariant(sendArray));
}
else
{
m_ActStatus.SetWindowText("請先打開串口!");
UpdateData(false);
}
}
}
void CMoniControlDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
//若串口是打開的,則關閉它。
if(myComm.GetPortOpen())
{
myComm.SetPortOpen(0);
}
CDialog::OnClose();
}
int CMoniControlDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
//創建控件的實例
DWORD style=WS_VISIBLE|WS_CHILD;
if (!myComm.Create(NULL,style,CRect(0,0,0,0),this,IDC_MSCOMM1))
{
AfxMessageBox("創建MSComm控件失敗!");
m_OpenCom.EnableWindow(false); //使打開串口按鈕無效
m_CloseCom.EnableWindow(false); //使關閉串口按鈕無效
return -1;
}
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -