Files
EF3-Interface/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SetSo7MotionConfig.cpp
T
2014-01-17 16:45:58 +08:00

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);
}