316 lines
8.2 KiB
C++
316 lines
8.2 KiB
C++
#include "debugdialog.h"
|
||
#include "ui_debugdialog.h"
|
||
|
||
DebugDialog::DebugDialog(QWidget *parent) :
|
||
QDialog(parent),
|
||
ui(new Ui::DebugDialog)
|
||
{
|
||
ui->setupUi(this);
|
||
|
||
setWindowFlags (Qt::Window | Qt::FramelessWindowHint);
|
||
setWindowModality(Qt::ApplicationModal);
|
||
setAttribute(Qt::WA_TranslucentBackground, true);//设置窗体背景透明
|
||
setFocusPolicy(Qt::NoFocus);
|
||
initControlStyle();
|
||
m_flag = 0;
|
||
m_funType = 0;
|
||
m_headParaFlag = 0;
|
||
m_mcParaFlag = 0;
|
||
m_id = 0;
|
||
m_val = 0;
|
||
|
||
memset(m_headParaValues.paraBuf, 0, sizeof(m_headParaValues.paraBuf));
|
||
memset(m_mcParaValues.buf, 0, sizeof(ParaStruct));
|
||
memset(m_wkParaValues.buf, 0, sizeof(ParaStruct));
|
||
}
|
||
|
||
DebugDialog::~DebugDialog()
|
||
{
|
||
delete ui;
|
||
}
|
||
|
||
void DebugDialog::initControlStyle()
|
||
{
|
||
SetControlStyle setControlStyle;
|
||
setControlStyle.setUiName(this->objectName());
|
||
|
||
//设置控件图标
|
||
//背景图
|
||
ui->frameBack->setStyleSheet(TRANSPARENTSTYLE);
|
||
this->setStyleSheet(LABELWHITESTYLE);
|
||
ui->frameBack->setStyleSheet(setControlStyle.getStyleSheet(this->objectName()));
|
||
ui->labelTitle->setStyleSheet(LABELWHITESTYLE);
|
||
ui->labelTitle->setFont(fontNormal_1);
|
||
ui->labelTitle->setAlignment(Qt::AlignLeft);
|
||
ui->labelTitle->setAlignment(Qt::AlignVCenter);
|
||
ui->buttonCancel->setWhiteBlueBottomStyle();
|
||
ui->buttonOk->setWhiteBlueBottomStyle();
|
||
}
|
||
|
||
void DebugDialog::resizeUI(int w, int h)
|
||
{
|
||
this->resize(w,h);
|
||
ui->frameBack->setGeometry(0,0,w,h);
|
||
}
|
||
|
||
void DebugDialog::resizeTittle(int x, int y, int w, int h)
|
||
{
|
||
ui->labelTitle->setGeometry(x,y,w,h);
|
||
}
|
||
|
||
void DebugDialog::resizeCancelBtn(int x, int y, int w, int h)
|
||
{
|
||
SetControlStyle setControlStyle;
|
||
setControlStyle.setUiName(this->objectName());
|
||
|
||
ui->buttonCancel->setGeometry(x,y,w,h);
|
||
ui->buttonCancel->setTopImage(setControlStyle.getSharedTopStyleSheet(ui->buttonCancel->objectName()+"_1"),12);
|
||
}
|
||
void DebugDialog::resizeOkBtn(int x, int y, int w, int h)
|
||
{
|
||
SetControlStyle setControlStyle;
|
||
setControlStyle.setUiName(this->objectName());
|
||
|
||
ui->buttonOk->setGeometry(x,y,w,h);
|
||
ui->buttonOk->setTopImage(setControlStyle.getSharedTopStyleSheet(ui->buttonOk->objectName()+"_1"),12);
|
||
}
|
||
void DebugDialog::setTitleStr(QString str)
|
||
{
|
||
ui->labelTitle->setText(str);
|
||
}
|
||
|
||
void DebugDialog::setFlag(int flag)
|
||
{
|
||
m_flag = flag;
|
||
}
|
||
void DebugDialog::excuteOrder(int def, int fun)
|
||
{
|
||
//def 对应的事件宏定义
|
||
//fun 动作
|
||
if(def < 0 || fun < 0)
|
||
{
|
||
return;
|
||
}
|
||
|
||
switch(fun)
|
||
{
|
||
case OUTCONTROL_ENABLE:
|
||
g_pMachine->motoServoCtrl(def, UP_OPEN_ON);
|
||
break;
|
||
case OUTCONTROL_DISABLE:
|
||
g_pMachine->motoServoCtrl(def, DOWN_CLOSE_OFF);
|
||
break;
|
||
case OUTCONTROL_JOGP://电机点动正转
|
||
g_pMachine->motoMove(def, MT_MOVE_DIR_POSI, 0);
|
||
break;
|
||
case OUTCONTROL_JOGN://电机点动反转
|
||
g_pMachine->motoMove(def, MT_MOVE_DIR_NEGA, 0);
|
||
break;
|
||
case OUTCONTROL_STOP://电机点动停止
|
||
g_pMachine->motoMove(def, MT_MOVE_DIR_STOP, 0);
|
||
break;
|
||
case OUTCONTROL_ZERO://电机归零
|
||
g_pMachine->motoToZero(def);
|
||
break;
|
||
case OUTCONTROL_UP://气缸上升,输出控制方式的电机正转
|
||
g_pMachine->outputCtrl(def, UP_OPEN_ON, 0);
|
||
break;
|
||
case OUTCONTROL_DOWN://气缸下降,输出控制方式的电机反转
|
||
g_pMachine->outputCtrl(def, DOWN_CLOSE_OFF, 0);
|
||
break;
|
||
case MANUALACTION_RUN://手动动作执行
|
||
g_pMachine->manualAction(def);
|
||
break;
|
||
case OUTCONTROL_OPEN://电磁阀开
|
||
g_pMachine->outputCtrl(def, UP_OPEN_ON, 0);
|
||
break;
|
||
case OUTCONTROL_CLOSE://电磁阀合
|
||
g_pMachine->outputCtrl(def, DOWN_CLOSE_OFF, 0);
|
||
break;
|
||
case OUTCONTROL_FOLLOWPOS://跟随位 缠绕压脚 跟随位
|
||
g_pMachine->outputCtrl(def, UP_OPEN_ON, 2);
|
||
break;
|
||
case OUTCONTROL_ZEROPOS://锯齿零位
|
||
g_pMachine->outputCtrl(def, DOWN_CLOSE_OFF, 0);
|
||
break;
|
||
case OUTCONTROL_TOUP://锯齿上位
|
||
g_pMachine->outputCtrl(def, DOWN_CLOSE_OFF, 2);
|
||
break;
|
||
case OUTCONTROL_CTRL1://锯齿摆动位1
|
||
g_pMachine->outputCtrl(def, UP_OPEN_ON, 0);
|
||
break;
|
||
case OUTCONTROL_CTRL2://锯齿摆动位2
|
||
g_pMachine->outputCtrl(def, UP_OPEN_ON, 2);
|
||
break;
|
||
case OUTCONTROL_STARTOIL://开始(如手动加油)
|
||
g_pMachine->manualOil(1);
|
||
break;
|
||
case OUTCONTROL_STOPOIL://停止(如手动加油)
|
||
g_pMachine->manualOil(0);
|
||
break;
|
||
}
|
||
}
|
||
void DebugDialog::on_buttonCancel_clicked()
|
||
{
|
||
if(m_flag == 1)//已经发送打开命令
|
||
{
|
||
if(g_pMachine != NULL)
|
||
{
|
||
g_pMachine->encoderVal(0);//显示M轴绝对值编码器值,1打开,0关闭
|
||
m_flag = -1;
|
||
}
|
||
}
|
||
this->close();
|
||
}
|
||
void DebugDialog::on_buttonOk_clicked()
|
||
{
|
||
if(m_funType == DEBUG_DIECUTTER||
|
||
m_funType == DEBUG_DIECUTTER)
|
||
{
|
||
saveHeadPara();
|
||
}
|
||
|
||
if(m_funType == DEBUG_TRIM||//主轴调试
|
||
m_funType == DEBUG_NEEDLESHUTTLE)//针梭调试
|
||
{
|
||
saveMcPara();//发送机器参数
|
||
}
|
||
}
|
||
//设置界面类型
|
||
void DebugDialog::setFunType(int sel)
|
||
{
|
||
m_funType = sel;
|
||
if(m_funType == DEBUG_DIECUTTER ||
|
||
m_funType == DEBUG_DIECUTTER )
|
||
{
|
||
g_pMachine->getHeadParasFromMachine(1);//获取机头板参数
|
||
}
|
||
if(m_funType == DEBUG_TRIM ||
|
||
m_funType == DEBUG_NEEDLESHUTTLE )
|
||
{
|
||
g_pMachine->getParasFromMachine();//获取参数
|
||
}
|
||
// if(m_funType == DEBUG_CUTHEAD ||
|
||
// m_funType == DEBUG_SPINDLE )
|
||
// {
|
||
// ui->buttonOk->hide();
|
||
// }
|
||
// else
|
||
// {
|
||
// ui->buttonOk->show();
|
||
// }
|
||
}
|
||
//收到下位机参数改变信号的槽
|
||
void DebugDialog::paraChange(int type, int id)
|
||
{
|
||
m_mcParaFlag = 0;//参数改变的标志
|
||
//点了主板的按钮后,现在这个g_pMachine就是对应主板的
|
||
if (type == SEW_MCPARA_MACH)
|
||
{
|
||
if (id == 0)
|
||
{ //得到当前主板的参数
|
||
memcpy(&m_mcParaValues, &g_pMachine->getMcPara(), sizeof(ParaStruct));
|
||
m_mcParaFlag= 1;
|
||
emit siMcParaChange();
|
||
}
|
||
}
|
||
else if (type == SEW_MCPARA_WORK)
|
||
{
|
||
if (id == 0)
|
||
{
|
||
memcpy(&m_wkParaValues, &g_pMachine->getWkPara(), sizeof(ParaStruct));
|
||
// m_mcParaFlag = 1;
|
||
emit siWkParaChange();
|
||
}
|
||
}
|
||
}
|
||
|
||
//外围板参数改变的槽函数
|
||
void DebugDialog::EXBParaChange()
|
||
{
|
||
m_headParaFlag = 0;
|
||
if(g_pMachine->getHeadPara(0) != NULL)
|
||
{
|
||
memcpy(&m_headParaValues, g_pMachine->getHeadPara(0), sizeof(HeadInfo));
|
||
m_headParaFlag = 1;
|
||
emit siEXBParaChange();
|
||
}
|
||
}
|
||
//读取机头板参数
|
||
int DebugDialog::getHeadPara(int idx)
|
||
{
|
||
int value = 0;
|
||
value = m_headParaValues.paraBuf[idx];
|
||
return value;
|
||
}
|
||
//设置机头板参数
|
||
void DebugDialog::setHeadPara(int id,int val)
|
||
{
|
||
m_headParaValues.paraBuf[id] = val;
|
||
}
|
||
//发送机头板参数
|
||
void DebugDialog::saveHeadPara()
|
||
{
|
||
if(g_pMachine != NULL)
|
||
{
|
||
g_pMachine->setHeadBoardPara(&m_headParaValues);
|
||
}
|
||
}
|
||
|
||
|
||
//读取机器参数
|
||
int DebugDialog::getMcPara(int idx)
|
||
{
|
||
int mcValue = 0;
|
||
mcValue = m_mcParaValues.buf[idx];
|
||
return mcValue;
|
||
}
|
||
//设置机器参数
|
||
void DebugDialog::setMcPara(int id,int val)
|
||
{
|
||
//单个保存
|
||
// m_id = id;
|
||
// m_val = val;
|
||
m_mcParaValues.buf[id] = val;
|
||
}
|
||
//发送机器参数
|
||
void DebugDialog::saveMcPara()
|
||
{
|
||
if(g_pMachine != NULL)
|
||
{
|
||
//单个保存
|
||
//g_pMachine->setAMcPara(m_id+1, m_val);
|
||
g_pMachine->setMcPara(&m_mcParaValues);
|
||
}
|
||
}
|
||
//读取工作参数
|
||
int DebugDialog::getWkPara(int idx)
|
||
{
|
||
int wkValue = 0;
|
||
wkValue = m_wkParaValues.buf[idx];
|
||
return wkValue;
|
||
}
|
||
//设置工作参数
|
||
void DebugDialog::setWkPara(int id,int val)
|
||
{
|
||
//单个保存
|
||
// m_id = id;
|
||
// m_val = val;
|
||
m_wkParaValues.buf[id] = val;
|
||
}
|
||
//发送工作参数
|
||
void DebugDialog::saveWkPara()
|
||
{
|
||
if(g_pMachine != NULL)
|
||
{
|
||
//单个保存
|
||
//g_pMachine->setAMcPara(m_id+1, m_val);
|
||
g_pMachine->setWkPara(&m_wkParaValues);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|