📄 mainfrm.cpp
字号:
int itemnumber =pApp->m_nHitNumber ;//树型控件点击编号
BOOL bopendataflag=FALSE;
CString m_DataName;
int i;
int first[80];
float second[80];
float third[80];
float four[80];
float five[80];
float six[80];
for (i=0;i<80;i++)
{
first[i]=i+1;
second[i]=0;
third[i]=0;
four[i]=0;
five[i]=0;
six[i]=0;
}
switch(itemnumber)
{
case 0x011: //效率试验
bopendataflag=TRUE;
break;
case 0x012: //超载试验
bopendataflag=TRUE;
break;
case 0x013: //传动精度试验
bopendataflag=TRUE;
break;
case 0x014: //过度过程试验
bopendataflag=TRUE;
//MessageBox("过度过程试验");
break;
case 0x015: //启动力矩试验
bopendataflag=TRUE;
break;
case 0x016: //空程回差试验
bopendataflag=TRUE;
break;
case 0x017: //刚度及回差试验
bopendataflag=TRUE;
break;
default:
bopendataflag=FALSE;
break;
}
if (bopendataflag)
{
switch(itemnumber)
{
case 0x011: //效率试验
for (i=0;i<60;i++)
{
second[i]=(float)(pApp->pCTestFormDoc->pPowerInRate[i]);
third[i]=(float)(pApp->pCTestFormDoc->pPowerOutRate[i]);
four[i]=(float)(pApp->pCTestFormDoc->pPowerInTorque[i]);
five[i]=(float)(pApp->pCTestFormDoc->pPowerOutTorque[i]);
six[i]=(float)(pApp->pCTestFormDoc->pPowerData[i]);
}
second[60]=(float)(pApp->pCTestFormDoc->motorRate); //所设定电机转速
third[60]=(float)(pApp->pCTestFormDoc->motorDirect); //所设定电机转向
break;
case 0x012: //超载试验
for (i=0;i<60;i++)
{
second[i]=(float)(pApp->pCTestFormDoc->pPowerInRate[i]);
third[i]=(float)(pApp->pCTestFormDoc->pPowerOutRate[i]);
four[i]=(float)(pApp->pCTestFormDoc->pPowerInTorque[i]);
five[i]=(float)(pApp->pCTestFormDoc->pPowerOutTorque[i]);
six[i]=(float)(pApp->pCTestFormDoc->pPowerData[i]);
}
second[60]=(float)(pApp->pCTestFormDoc->motorRate); //所设定电机转速
third[60]=(float)(pApp->pCTestFormDoc->motorDirect);//所设定电机转向
break;
case 0x013: //传动精度试验
for (i=0;i<72;i++)
{
second[i]=(float)(pApp->pCTestFormDoc->pErrorData[i]);
}
second[72]=(float)(pApp->pCTestFormDoc->motorRate); //所设定电机转速
third[72]=(float)(pApp->pCTestFormDoc->motorDirect);//所设定电机转向
break;
case 0x014: //过度过程试验
for (i=0;i<21;i++)
{
second[i]=(float)(pApp->pCTestFormDoc->pPowerOutRate[i]);
}
second[21]=(float)(pApp->pCTestFormDoc->motorRate); //所设定电机转速
third[21]=(float)(pApp->pCTestFormDoc->motorDirect); //所设定电机转向
// i=(int) (four[21]); //超载试验上升范围上界
// first[0]=(int) (five[21]); //超载试验上升范围下界
six[21]=(float)(pApp->pCTestFormDoc->nTotalCoderNumber);//稳定范围
//MessageBox("过度过程试验");
break;
case 0x015: //启动力矩试验
for (i=0;i<7;i++)
{
second[i]=(float)(pApp->pCTestFormDoc->pTangleData[i]);
four[i]=(float)(pApp->pCTestFormDoc->pTourqeData[i]);
}
second[7]=(float)(pApp->pCTestFormDoc->torquearm);//力臂长度
third[7]=(float)(pApp->pCTestFormDoc->light); //加载重量
break;
case 0x016: //空程回差试验
for (i=0;i<72;i++)
{
second[i]=(float)(pApp->pCTestFormDoc->Berrordata[i]);
}
second[72]=(float)(pApp->pCTestFormDoc->motorRate); //所设定电机转速
third[72]=(float)(pApp->pCTestFormDoc->motorDirect);//所设定电机转向
four[72]=(float)(pApp->pCTestFormDoc->motorTangle); //所设定电机正向转角
five[72]=(float)(pApp->pCTestFormDoc->motorCTangle);//所设定电机反向转角
break;
case 0x017: //刚度及回差试验
for (i=0;i<33;i++)
{
second[i]=(float)(pApp->pCTestFormDoc->Rtorquedata[i]);
third[i]=(float)(pApp->pCTestFormDoc->Rerrordata[i]);
}
second[33]=(float)(pApp->pCTestFormDoc->nTotalCoderNumber);//单向加载次数
third[33]=(float)(pApp->pCTestFormDoc->torquearm); //力臂长度
five[33]=(float)(pApp->pCTestFormDoc->light); //卸载重量
break;
default:
break;
}
CFileDialog m_FileSaveDialog(FALSE,
"xls|txt",
NULL,
OFN_HIDEREADONLY,
"(*.xls)|*.xls|(*.txt)|*.txt||",
this);
if(m_FileSaveDialog.DoModal()==IDOK)
{
m_DataName=m_FileSaveDialog.GetFileName();
FILE *file;
file=fopen(m_DataName,"w");
fprintf(file,"序号\t第一个值\t第二个值\t第三个值\t第四个值\t第五个值\t\n");
for( i=0;i<80;i++)
{
fprintf(file,"%f\t%f\t%f\t%f\t%f\t%f\t\n",&first[i],&second[i],&third[i],&four[i],&five[i],&six[i]);
// fscanf(file,"%d\n",&num[i]);
}
fclose(file);
}
}
else
MessageBox("请在进行具体的试验之后才进行保存数据的操作!");
}
void CMainFrame::OnOpen()
{
// TODO: Add your command handler code here
CTestFormApp *pApp=(CTestFormApp *)AfxGetApp();
int itemnumber =pApp->m_nHitNumber ;//树型控件点击编号
BOOL bopendataflag=FALSE;
CString m_DataName;
int i;
int first[80];
float second[80];
float third[80];
float four[80];
float five[80];
float six[80];
switch(itemnumber)
{
case 0x011: //效率试验
bopendataflag=TRUE;
break;
case 0x012: //超载试验
bopendataflag=TRUE;
break;
case 0x013: //传动精度试验
bopendataflag=TRUE;
break;
case 0x014: //过度过程试验
bopendataflag=TRUE;
//MessageBox("过度过程试验");
break;
case 0x015: //启动力矩试验
bopendataflag=TRUE;
break;
case 0x016: //空程回差试验
bopendataflag=TRUE;
break;
case 0x017: //刚度及回差试验
bopendataflag=TRUE;
break;
default:
bopendataflag=FALSE;
break;
}
if (bopendataflag)
{
for (i=0;i<80;i++)
{
first[i]=0;
second[i]=0;
third[i]=0;
four[i]=0;
five[i]=0;
six[i]=0;
}
CFileDialog m_FileOpenDialog(TRUE,
"txt|xls",
NULL,
OFN_HIDEREADONLY,
"历史数据文件(*.txt)|*.txt|历史数据文件(*.xls)|*.xls||",
this);
if(m_FileOpenDialog.DoModal()==IDOK)
{
m_DataName=m_FileOpenDialog.GetFileName();
FILE *file;
if(!fopen(m_DataName,"r"))
{
AfxMessageBox("不能打开文件");
return ;
}
file=fopen(m_DataName,"r");
fscanf(file,"序号\t第一个值\t第二个值\t第三个值\t第四个值\t第五个值\t\n");
for( i=0;i<80;i++)
{
fscanf(file,"%d\t%f\t%f\t%f\t%f\t%f\t\n",&first[i],&second[i],&third[i],&four[i],&five[i],&six[i]);
// fscanf(file,"%d\n",&num[i]);
}
fclose(file);
switch(itemnumber)
{
case 0x011: //效率试验
for (i=0;i<60;i++)
{
pApp->pCTestFormDoc->pPowerInRate[i] =second[i];
pApp->pCTestFormDoc->pPowerOutRate[i] =third[i];
pApp->pCTestFormDoc->pPowerInTorque[i] =four[i];
pApp->pCTestFormDoc->pPowerOutTorque[i] =five[i];
pApp->pCTestFormDoc->pPowerData[i] =six[i];
}
pApp->pCTestFormDoc->nPowerNumber=60;
pApp->pCTestFormDoc->motorRate=second[60]; //所设定电机转速
pApp->pCTestFormDoc->motorDirect=(int) (third[60]); //所设定电机转向
pApp->pCTestFormView->powerDrawDlg.SendMessage(WM_OPENDATA,0,0);//发送消息至绘图窗口
pApp->pMotorDlgBase->powDlg.SendMessage(WM_OPENDATA,0,0);//发送消息至主控窗口
break;
case 0x012: //超载试验
for (i=0;i<60;i++)
{
pApp->pCTestFormDoc->pPowerInRate[i] =second[i];
pApp->pCTestFormDoc->pPowerOutRate[i] =third[i];
pApp->pCTestFormDoc->pPowerInTorque[i] =four[i];
pApp->pCTestFormDoc->pPowerOutTorque[i] =five[i];
pApp->pCTestFormDoc->pPowerData[i] =six[i];
}
pApp->pCTestFormDoc->nPowerNumber=60;
pApp->pCTestFormDoc->motorRate=second[60]; //所设定电机转速
pApp->pCTestFormDoc->motorDirect=(int) (third[60]); //所设定电机转向
pApp->pCTestFormView->overDrawDlg.SendMessage(WM_OPENDATA,0,0);//发送消息至绘图窗口
pApp->pMotorDlgBase->overDlg.SendMessage(WM_OPENDATA,0,0);//发送消息至主控窗口
break;
case 0x013: //传动精度试验
for (i=0;i<72;i++)
{
pApp->pCTestFormDoc->pErrorData[i] =second[i];
}
pApp->pCTestFormDoc->nTotalCoderNumber=72;
pApp->pCTestFormDoc->motorRate=second[72]; //所设定电机转速
pApp->pCTestFormDoc->motorDirect=(int) (third[72]); //所设定电机转向
pApp->pCTestFormView->prvDrawDlg.SendMessage(WM_OPENDATA,0,0);//发送消息至绘图窗口
pApp->pMotorDlgBase->prvDlg.SendMessage(WM_OPENDATA,0,0);//发送消息至主控窗口
break;
case 0x014: //过度过程试验
for (i=0;i<21;i++)
{
pApp->pCTestFormDoc->pPowerOutRate[i] =second[i];
}
pApp->pCTestFormDoc->nPowerNumber=21;
pApp->pCTestFormDoc->motorRate=second[21]; //所设定电机转速
pApp->pCTestFormDoc->motorDirect=(int) (third[21]); //所设定电机转向
i=(int) (four[21]); //超载试验上升范围上界
first[0]=(int) (five[21]); //超载试验上升范围下界
pApp->pCTestFormDoc->nTotalCoderNumber=(int) (six[21]);//稳定范围
pApp->pCTestFormView->respDrawDlg.SendMessage(WM_OPENDATA,0,0);//发送消息至绘图窗口
pApp->pMotorDlgBase->respDlg.SendMessage(WM_OPENDATA,i,first[0]);//发送消息至主控窗口
//MessageBox("过度过程试验");
break;
case 0x015: //启动力矩试验
for (i=0;i<7;i++)
{
pApp->pCTestFormDoc->pTangleData[i] =second[i];
pApp->pCTestFormDoc->pTourqeData[i] =four[i];
}
pApp->pCTestFormDoc->nPowerNumber=7;
pApp->pCTestFormDoc->torquearm = second[7];//力臂长度
pApp->pCTestFormDoc->light=third[7]; //加载重量
pApp->pCTestFormView->startDrawDlg.SendMessage(WM_OPENDATA,0,0);//发送消息至绘图窗口
pApp->pMotorDlgBase->startDlg.SendMessage(WM_OPENDATA,0,0);//发送消息至主控窗口
break;
case 0x016: //空程回差试验
for (i=0;i<72;i++)
{
pApp->pCTestFormDoc->Berrordata[i] =second[i];
}
pApp->pCTestFormDoc->nPowerNumber=72;
pApp->pCTestFormDoc->motorRate=second[72]; //所设定电机转速
pApp->pCTestFormDoc->motorDirect=(int) (third[72]); //所设定电机转向
pApp->pCTestFormDoc->motorTangle = four[72]; //所设定电机正向转角
pApp->pCTestFormDoc->motorCTangle = five[72]; //所设定电机反向转角
pApp->pCTestFormView->blankeDrawDlg.SendMessage(WM_OPENDATA,0,0);//发送消息至绘图窗口
pApp->pMotorDlgBase->blankDlg.SendMessage(WM_OPENDATA,0,0);//发送消息至主控窗口
break;
case 0x017: //刚度及回差试验
for (i=0;i<33;i++)
{
pApp->pCTestFormDoc->Rtorquedata[i] =second[i];
pApp->pCTestFormDoc->Rerrordata[i] =third[i];
}
pApp->pCTestFormDoc->nPowerNumber=33;
pApp->pCTestFormDoc->nTotalCoderNumber =(long)(second[33]);//单向加载次数
pApp->pCTestFormDoc->torquearm = third[33]; //力臂长度
pApp->pCTestFormDoc->light=five[33]; //卸载重量
pApp->pCTestFormView->rigidDrawDlg.SendMessage(WM_OPENDATA,0,0);//发送消息至绘图窗口
pApp->pMotorDlgBase->rigidDlg.SendMessage(WM_OPENDATA,0,0);//发送消息至主控窗口
break;
default:
break;
}
}
}
else
MessageBox("请选择具体的试验项目之后才进行打开历史数据的操作!");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -