292 lines
9.5 KiB
C++
292 lines
9.5 KiB
C++
// SetSo7MotionConfig.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "resource.h"
|
|
#include "..\..\..\SevenOcean\SO7_Proto.h"
|
|
#include "ListCtrlItemEdit.h"
|
|
#include "EditableListCtrl.h"
|
|
#include "SetSo7MotionConfig.h"
|
|
#include "afxdialogex.h"
|
|
extern CSO7_Proto* m_pSO7_Proto;
|
|
|
|
// CSetSo7MotionConfig dialog
|
|
|
|
IMPLEMENT_DYNAMIC(CSetSo7MotionConfig, CMFCPropertyPage)
|
|
|
|
CSetSo7MotionConfig::CSetSo7MotionConfig():CMFCPropertyPage(CSetSo7MotionConfig::IDD)
|
|
{
|
|
|
|
}
|
|
|
|
CSetSo7MotionConfig::~CSetSo7MotionConfig()
|
|
{
|
|
}
|
|
|
|
void CSetSo7MotionConfig::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CMFCPropertyPage::DoDataExchange(pDX);
|
|
DDX_Control(pDX, IDC_LIST_SO7_MOTION_CONFIG, m_ConfigList);
|
|
DDX_Control(pDX, IDC_EDIT_SO7_MOTION_CONFIG_MSGOUT, m_edit_MsgOut);
|
|
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CSetSo7MotionConfig, CMFCPropertyPage)
|
|
ON_BN_CLICKED(IDC_BUTTON_SO7_MOTION_CONFIG_OK, &CSetSo7MotionConfig::OnBnClickedButtonSo7MotionConfigOk)
|
|
ON_BN_CLICKED(IDC_BUTTON_SO7_MOTION_CONFIG_CANCEL, &CSetSo7MotionConfig::OnBnClickedButtonSo7MotionConfigCancel)
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
// CSetSo7MotionConfig message handlers
|
|
BOOL CSetSo7MotionConfig::OnInitDialog()
|
|
{
|
|
CMFCPropertyPage::OnInitDialog();
|
|
|
|
RECT m_rect;
|
|
m_ConfigList.GetClientRect(&m_rect); //获取list的客户区
|
|
m_ConfigList.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT); //设置list风格
|
|
|
|
m_ConfigList.InsertColumn(0,_T("编号"),LVCFMT_LEFT, m_rect.right/10);
|
|
m_ConfigList.InsertColumn(1,_T("参数名"),LVCFMT_LEFT, m_rect.right*3/10);
|
|
m_ConfigList.InsertColumn(2,_T("值"),LVCFMT_LEFT, m_rect.right*2/10);
|
|
m_ConfigList.InsertColumn(3,_T("描述"),LVCFMT_LEFT, m_rect.right*4/10);
|
|
|
|
for (int i = 1; i < 100; i++)
|
|
{
|
|
CString str;
|
|
str.Format(_T("%d"), i);
|
|
m_ConfigList.InsertItem(i, str);
|
|
}
|
|
UpdateLabelName();
|
|
UpdateDataValue();
|
|
m_ConfigList.SetMaxItemIndex(0,13,2,2);
|
|
return TRUE;
|
|
}
|
|
|
|
void CSetSo7MotionConfig::UpdateLabelName()
|
|
{
|
|
int iRow=0;
|
|
int iCol=1;
|
|
CString cStr("");
|
|
cStr="CLOSE_LOOP_ENABLED";
|
|
m_ConfigList.SetItemText(iRow,iCol,cStr);
|
|
cStr="default:0";
|
|
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
|
|
iRow++;
|
|
|
|
cStr="MOTION_RETRY_TIMES";
|
|
m_ConfigList.SetItemText(iRow,iCol,cStr);
|
|
cStr="default:5";
|
|
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
|
|
iRow++;
|
|
|
|
cStr="SHIFT_POSITION_X";
|
|
m_ConfigList.SetItemText(iRow,iCol,cStr);
|
|
cStr="default:0";
|
|
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
|
|
iRow++;
|
|
|
|
cStr="SHIFT_POSITION_Y";
|
|
m_ConfigList.SetItemText(iRow,iCol,cStr);
|
|
cStr="default:0";
|
|
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
|
|
iRow++;
|
|
|
|
cStr="SHIFT_POSITION_Z";
|
|
m_ConfigList.SetItemText(iRow,iCol,cStr);
|
|
cStr="default:0";
|
|
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
|
|
iRow++;
|
|
|
|
cStr="SDK3000_SLEEP_COUNT";
|
|
m_ConfigList.SetItemText(iRow,iCol,cStr);
|
|
cStr="default:550000";
|
|
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
|
|
iRow++;
|
|
|
|
cStr="GET_USB_MESSAGE_METHOD";
|
|
m_ConfigList.SetItemText(iRow,iCol,cStr);
|
|
cStr="default:1";
|
|
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
|
|
iRow++;
|
|
|
|
cStr="WRITE_DATA_SLEEP_TIME";
|
|
m_ConfigList.SetItemText(iRow,iCol,cStr);
|
|
cStr="default:0";
|
|
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
|
|
iRow++;
|
|
|
|
cStr="ACCURA_ERROR_PULSE_X";
|
|
m_ConfigList.SetItemText(iRow,iCol,cStr);
|
|
cStr="default:1";
|
|
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
|
|
iRow++;
|
|
|
|
cStr="ACCURA_ERROR_PULSE_Y";
|
|
m_ConfigList.SetItemText(iRow,iCol,cStr);
|
|
cStr="default:1";
|
|
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
|
|
iRow++;
|
|
|
|
cStr="ACCURA_ERROR_PULSE_Z";
|
|
m_ConfigList.SetItemText(iRow,iCol,cStr);
|
|
cStr="default:1";
|
|
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
|
|
iRow++;
|
|
|
|
cStr="EQUIDISTANCE_PULSE_X";
|
|
m_ConfigList.SetItemText(iRow,iCol,cStr);
|
|
cStr="default:0";
|
|
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
|
|
iRow++;
|
|
|
|
cStr="EQUIDISTANCE_PULSE_Y";
|
|
m_ConfigList.SetItemText(iRow,iCol,cStr);
|
|
cStr="default:0";
|
|
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
|
|
iRow++;
|
|
|
|
cStr="EQUIDISTANCE_PULSE_Z";
|
|
m_ConfigList.SetItemText(iRow,iCol,cStr);
|
|
cStr="default:0";
|
|
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
|
|
iRow++;
|
|
}
|
|
void CSetSo7MotionConfig::UpdateDataValue()
|
|
{
|
|
int iRow=0;
|
|
int iCol=2;
|
|
CString cStr("");
|
|
cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion._EnCloseLoop);
|
|
m_ConfigList.SetItemText(iRow++,iCol,cStr);
|
|
cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion._RetryTimes);
|
|
m_ConfigList.SetItemText(iRow++,iCol,cStr);
|
|
cStr.Format(_T("%.3f"),m_pSO7_Proto->g_machine.s_machine_config.motion._ShiftPositionX);
|
|
m_ConfigList.SetItemText(iRow++,iCol,cStr);
|
|
cStr.Format(_T("%.3f"),m_pSO7_Proto->g_machine.s_machine_config.motion._ShiftPositionY);
|
|
m_ConfigList.SetItemText(iRow++,iCol,cStr);
|
|
cStr.Format(_T("%.3f"),m_pSO7_Proto->g_machine.s_machine_config.motion._ShiftPositionZ);
|
|
m_ConfigList.SetItemText(iRow++,iCol,cStr);
|
|
cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_CntThreadSleepVal);
|
|
m_ConfigList.SetItemText(iRow++,iCol,cStr);
|
|
cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.GetInterruptMsgMethod);
|
|
m_ConfigList.SetItemText(iRow++,iCol,cStr);
|
|
cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_WriteDataSleepTime);
|
|
m_ConfigList.SetItemText(iRow++,iCol,cStr);
|
|
cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_AccuraErrPulseX);
|
|
m_ConfigList.SetItemText(iRow++,iCol,cStr);
|
|
cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_AccuraErrPulseY);
|
|
m_ConfigList.SetItemText(iRow++,iCol,cStr);
|
|
cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_AccuraErrPulseZ);
|
|
m_ConfigList.SetItemText(iRow++,iCol,cStr);
|
|
cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_EQUIDIS_X);
|
|
m_ConfigList.SetItemText(iRow++,iCol,cStr);
|
|
cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_EQUIDIS_Y);
|
|
m_ConfigList.SetItemText(iRow++,iCol,cStr);
|
|
cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_EQUIDIS_Z);
|
|
m_ConfigList.SetItemText(iRow++,iCol,cStr);
|
|
}
|
|
void CSetSo7MotionConfig::SaveDataValue()
|
|
{
|
|
UpdateData(TRUE);
|
|
USES_CONVERSION;
|
|
const char* cTemp;
|
|
CString cStr("");
|
|
int iRow=0;
|
|
int iCol=2;
|
|
|
|
cStr=m_ConfigList.GetItemText(iRow,iCol);
|
|
cTemp=T2A(cStr);
|
|
m_pSO7_Proto->g_machine.s_machine_config.motion._EnCloseLoop=atoi(cTemp);
|
|
iRow++;
|
|
cStr=m_ConfigList.GetItemText(iRow,iCol);
|
|
cTemp=T2A(cStr);
|
|
m_pSO7_Proto->g_machine.s_machine_config.motion._RetryTimes=atoi(cTemp);
|
|
iRow++;
|
|
cStr=m_ConfigList.GetItemText(iRow,iCol);
|
|
cTemp=T2A(cStr);
|
|
m_pSO7_Proto->g_machine.s_machine_config.motion._ShiftPositionX=atof(cTemp);
|
|
iRow++;
|
|
cStr=m_ConfigList.GetItemText(iRow,iCol);
|
|
cTemp=T2A(cStr);
|
|
m_pSO7_Proto->g_machine.s_machine_config.motion._ShiftPositionY=atof(cTemp);
|
|
iRow++;
|
|
cStr=m_ConfigList.GetItemText(iRow,iCol);
|
|
cTemp=T2A(cStr);
|
|
m_pSO7_Proto->g_machine.s_machine_config.motion._ShiftPositionZ=atof(cTemp);
|
|
iRow++;
|
|
cStr=m_ConfigList.GetItemText(iRow,iCol);
|
|
cTemp=T2A(cStr);
|
|
m_pSO7_Proto->g_machine.s_machine_config.motion.m_CntThreadSleepVal=atoi(cTemp);
|
|
iRow++;
|
|
cStr=m_ConfigList.GetItemText(iRow,iCol);
|
|
cTemp=T2A(cStr);
|
|
m_pSO7_Proto->g_machine.s_machine_config.motion.GetInterruptMsgMethod=static_cast<char>(atoi(cTemp));
|
|
iRow++;
|
|
cStr=m_ConfigList.GetItemText(iRow,iCol);
|
|
cTemp=T2A(cStr);
|
|
m_pSO7_Proto->g_machine.s_machine_config.motion.m_WriteDataSleepTime=atoi(cTemp);
|
|
iRow++;
|
|
cStr=m_ConfigList.GetItemText(iRow,iCol);
|
|
cTemp=T2A(cStr);
|
|
m_pSO7_Proto->g_machine.s_machine_config.motion.m_AccuraErrPulseX=atoi(cTemp);
|
|
iRow++;
|
|
cStr=m_ConfigList.GetItemText(iRow,iCol);
|
|
cTemp=T2A(cStr);
|
|
m_pSO7_Proto->g_machine.s_machine_config.motion.m_AccuraErrPulseY=atoi(cTemp);
|
|
iRow++;
|
|
cStr=m_ConfigList.GetItemText(iRow,iCol);
|
|
cTemp=T2A(cStr);
|
|
m_pSO7_Proto->g_machine.s_machine_config.motion.m_AccuraErrPulseZ=atoi(cTemp);
|
|
iRow++;
|
|
cStr=m_ConfigList.GetItemText(iRow,iCol);
|
|
cTemp=T2A(cStr);
|
|
m_pSO7_Proto->g_machine.s_machine_config.motion.m_EQUIDIS_X=atoi(cTemp);
|
|
iRow++;
|
|
cStr=m_ConfigList.GetItemText(iRow,iCol);
|
|
cTemp=T2A(cStr);
|
|
m_pSO7_Proto->g_machine.s_machine_config.motion.m_EQUIDIS_Y=atoi(cTemp);
|
|
iRow++;
|
|
cStr=m_ConfigList.GetItemText(iRow,iCol);
|
|
cTemp=T2A(cStr);
|
|
m_pSO7_Proto->g_machine.s_machine_config.motion.m_EQUIDIS_Z=atoi(cTemp);
|
|
iRow++;
|
|
|
|
}
|
|
void CSetSo7MotionConfig::OnBnClickedButtonSo7MotionConfigOk()
|
|
{
|
|
SaveDataValue();
|
|
CString m_csMsg=_T("");
|
|
m_pSO7_Proto->Save_So7_Config();
|
|
m_pSO7_Proto->GetAppPath(m_csMsg);
|
|
m_csMsg=_T("配置文件保存在:")+m_csMsg+_T("\\so7_config.ini。");
|
|
OutputWithScroll(m_csMsg,m_edit_MsgOut);
|
|
}
|
|
|
|
|
|
void CSetSo7MotionConfig::OnBnClickedButtonSo7MotionConfigCancel()
|
|
{
|
|
UpdateDataValue();
|
|
}
|
|
//=====================================================================================
|
|
//Print message on edit control
|
|
void CSetSo7MotionConfig::OutputWithScroll(const CString &strNewText,CEdit &edtOutput)
|
|
{
|
|
CString strOutput;
|
|
edtOutput.GetWindowText(strOutput);
|
|
strOutput += strNewText;
|
|
if ("\r\n" != strOutput.Right(2))
|
|
{
|
|
strOutput += "\r\n";
|
|
}
|
|
|
|
int iCount = strOutput.GetLength();
|
|
|
|
edtOutput.SetRedraw(FALSE);
|
|
edtOutput.SetWindowText(strOutput);
|
|
int iLine = edtOutput.GetLineCount();
|
|
edtOutput.LineScroll(iLine, 0);
|
|
edtOutput.SetSel(iCount, iCount);
|
|
edtOutput.SetRedraw(TRUE);
|
|
} |