MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    connect(ui->refreshPortsButton, SIGNAL(clicked()), this, SLOT(onRefreshPortsClick()));
    connect(ui->connectButton, SIGNAL(clicked()), this, SLOT(onConnectClick()));
    connect(ui->closeButton, SIGNAL(clicked()), this, SLOT(onCloseClick()));
    connect(ui->sendButton, SIGNAL(clicked()), this, SLOT(onSendClick()));
    connect(ui->sendLineEdit, SIGNAL(textChanged(QString)), this, SLOT(onTextChanged(QString)));

    connect(&m_serialPort, SIGNAL(readyRead()), this, SLOT(onReadData()));
    connect(&m_serialPort, SIGNAL(error(QSerialPort::SerialPortError)), this, SLOT(onError(QSerialPort::SerialPortError)));
}
Esempio n. 2
0
 bool
 BasicDeviceDriver::readSample(void)
 {
   return onReadData();
 }
void RawData::onReadReady()
{
//    mSocket->waitForReadyRead(3000);
    emit onReadData(mSocket->readAll(), this);
}
Esempio n. 4
0
/*************************
 *
 *  frmLog类
 *
 *************************/
frmLog::frmLog(QWidget *parent)
	: QDialog(parent)
{
	ui.setupUi(this);
	this->setWindowFlags(windowFlags()  &~ Qt::WindowFullscreenButtonHint &~ Qt::WindowMinMaxButtonsHint);
	ui.tabWidget->setCurrentIndex(0);

	pFrmPlayLog = 0;

	onProtocolSelect(0);	// 手动发送类型默认为CAN

	fillComPorts();
    connect(&mSerial, SIGNAL(readyRead()), this, SLOT(onReadData()));

	QTimer *tmrLog = new QTimer();
	connect(tmrLog,SIGNAL(timeout()),this,SLOT(onTimerLog()));
	tmrLog->start(20);

	/* 编程相关 */
	txtProg = new CodeEditor(ui.tab_2);
	txtProg->setStyleSheet(SS_CSHELL);
    txtProg->setObjectName(QStringLiteral("txtProg"));
	QFile file(":/emuToolQt/sample_script.txt");
	if (file.open(QFile::ReadOnly | QFile::Text))
		txtProg->setPlainText(file.readAll());
	// Tab键的宽度
	txtProg->setTabStopWidth(txtProg->fontMetrics().width("ab", 2));

	QSplitter *splitter = new QSplitter(Qt::Vertical,0); 
	splitter->addWidget(txtProg);
	ctlConsole = new QTextEdit();
	ctlConsole->setReadOnly(true);
	splitter->addWidget(ctlConsole);

	// 分隔栏比例
	splitter->setHandleWidth(5);
	splitter->setStretchFactor(0, 80);
	splitter->setStretchFactor(1, 20);
    ui.verticalLayout_3->addWidget(splitter);
	mKeywords << "\\bchar\\b" << "\\bclass\\b" << "\\bconst\\b"
                    << "\\bdouble\\b" << "\\binline\\b" << "\\bint\\b"
                    << "\\blong\\b" << "\\bshort\\b"  << "\\bsigned\\b"
                    << "\\bstatic\\b" << "\\bstruct\\b" << "\\btypedef\\b" 
                    << "\\bunion\\b" << "\\bunsigned\\b" 
                    << "\\bvoid\\b" << "\\bvolatile\\b" << "\\bif\\b"
					<< "\\bfor\\b" << "\\bwhile\\b" << "\\bdo\\b" << "\\bgoto\\b"
					<< "\\bswitch\\b" << "\\bcase\\b" << "\\bbreak\\b" << "\\bdefault\\b" << "\\bcontinue\\b"
					<< "\\b#define\\b" << "\\b#ifdef\\b" << "\\b#else\\b" << "\\b#endif\\b"
					<< "\\b#if\\b" << "\\b#ifdef\\b" << "\\b#ifndef\\b" << "\\breturn\\b";
	hlt = new Highlighter(txtProg->document(), mKeywords);


	isRunning = false;
	tmrProg = new QTimer();
	connect(tmrProg,SIGNAL(timeout()),this,SLOT(onTimerProg()));
	tmrProg->start(this->SLEEP_INTERVAL);	// timer,用于自动发送

	gpFrmLog = this;
	connect(this,SIGNAL(sigMsgBox(QString)),this,SLOT(onMsgBox(QString)));
	connect(this,SIGNAL(sigCmdToLinux(QString)),this,SLOT(onCmdToLinux(QString)));

	sMonitorLine = "";
	sLastLine = "";
	sReadLinePattern = "";
	sMonitorPattern = "";

    ui.txtComInfo->setStyleSheet(SS_MONITOR);
	// 事件过滤器,获取按键事件,这么做可以不要重新封装一个QTextEdit的派生类
	ui.txtComInfo->installEventFilter(this);

	loadIni();
}