一個模塊化機械臂控制程式,每次只能選擇一個模塊進行單模塊控制,求助大神怎樣修改一下,怎樣能一鍵同時控制多個模塊,讓機械臂完成一個抓取的動作,
控制界面如圖。void CVc6ExampleDlg::OnSelchangeListId()
{
// TODO: Add your control notification handler code here
//當前串列選擇索引號
m_nCurSel = m_IDList.GetCurSel();
}
void CVc6ExampleDlg::OnButtonHome()
{
// TODO: Add your control notification handler code here
// 尋零當前選擇的模塊
if ( m_nCurSel>=0)
{
m_pMREIIDev->Home(m_nCurSel);
}
}
void CVc6ExampleDlg::OnButtonRun()
{
// TODO: Add your control notification handler code here
// 旋轉模塊到指定位置
CString strValue;
m_RunPosEdit.GetWindowText(strValue);
float fValue = (float) atof(strValue.GetBuffer(0));
// 引數從度轉換為弧度
m_pMREIIDev->MoveToPos(m_nCurSel,fValue*EX_RADIAN1DEGREE);
}
void CVc6ExampleDlg::OnButtonOpenPaw()
{
// TODO: Add your control notification handler code here
// 打開手爪模塊
if ( m_nCurSel >= 0)
{
//手爪模塊設定電流環為EX_OPEN_PAW_CURRENT,即可打開手爪
//m_pMREIIDev->SetCurrentRing(m_nCurSel,m_nOpenPawAD);
m_pMREIIDev->OpenPaw(m_nCurSel);
}
}
void CVc6ExampleDlg::OnButtonClosePaw()
{
// TODO: Add your control notification handler code here
// 閉合手爪模塊
if ( m_nCurSel >= 0)
{
//手爪模塊設定電流環為EX_CLOSE_PAW_CURRENT,即可閉合手爪
//m_pMREIIDev->SetCurrentRing(m_nCurSel,m_nClosePawAD);
m_pMREIIDev->ClosePaw(m_nCurSel);
}
}
void CVc6ExampleDlg::OnKickIdle( )
{
// 執行對話框UI更新
UpdateDialogControls(this, FALSE);
}
void CVc6ExampleDlg::OnUpdateOpenDevUI(CCmdUI *pCmdUI)
{
//更新關閉設備時相關的UI
pCmdUI->Enable(!m_bOpenDev);
}
void CVc6ExampleDlg::OnUpdateCloseDevUI(CCmdUI *pCmdUI)
{
//更新打開設備時相關的UI
pCmdUI->Enable(m_bOpenDev);
}
void CVc6ExampleDlg::OnUpdateHomeBtn(CCmdUI *pCmdUI)
{
//更新尋零按鈕UI
pCmdUI->Enable( m_bOpenDev&& (m_nCurSel>=0) );
}
void CVc6ExampleDlg::OnUpdateRunToUI(CCmdUI *pCmdUI)
{
//更新旋轉模塊運行UI
if ( m_bOpenDev && m_nCurSel>=0 )
{
unsigned char nType;
m_pMREIIDev->GetType(m_nCurSel,nType) ;
pCmdUI->Enable( nType != MREII_MODULE_PAW );
}
else
{
pCmdUI->Enable(FALSE);
}
}
void CVc6ExampleDlg::OnUpdatePawUI(CCmdUI *pCmdUI)
{
//更新手爪模塊UI
if ( m_bOpenDev && m_nCurSel>=0 )
{
unsigned char nType;
m_pMREIIDev->GetType(m_nCurSel,nType) ;
pCmdUI->Enable( nType == MREII_MODULE_PAW );
}
else
{
pCmdUI->Enable(FALSE);
}
uj5u.com熱心網友回復:
部分程式如上圖,現在是不知道如何下手改,求大神指點。uj5u.com熱心網友回復:
你把控制代碼需要控制的設備放到一個陣列等中,然后遍歷陣列,對多個設備執行操作uj5u.com熱心網友回復:
我去查查,謝謝uj5u.com熱心網友回復:
謝謝 我去查查。
uj5u.com熱心網友回復:
您好,就是對機械臂的每個模塊控制不一樣,比如旋轉模塊需要對不同的模塊進行不同角度的旋轉,手抓分張開和閉合,通過建立陣列能夠實作嗎?您能寫一段代碼讓我參考參考嗎?謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/147956.html
標籤:網絡編程
上一篇:子視窗全屏問題
