64,649
社区成员
发帖
与我相关
我的任务
分享
void YaoModel::startTest()
{
if(testState["实验状态"] != START) {
testState.insert("实验状态",START);
connectDB("d:\\testData.db");
timer2 = new QTimer(this);
connect(timer2,&QTimer::timeout,this,&YaoModel::insertTestDataToDB);
timer2->start(1000);
}
}
#pragma execution_character_set("utf-8")
#include "yaomodel.h"
#include <QSqlTableModel>
#include <QTimer>
#include <QDebug>
#include <myqutil.h>
#include <QRandomGenerator>
#include <QSqlQuery>
YaoModel::YaoModel(QObject *parent)
: QSqlTableModel(parent)
{
initTestData();
initSampleInfo();
initTestState();
genarateTestData();
}
/*插入实验数据到数据库*/
void YaoModel::insertTestDataToDB()
{
QSqlQuery query;
query.prepare("insert into testData values (?,?,?,?,?,?,?,?,?)");
query.addBindValue(testData["实验时间"].toInt());
query.addBindValue(testData["油温"].toReal());
query.addBindValue(testData["工件温度"].toReal());
query.addBindValue(testData["摩擦力"].toReal());
query.addBindValue(testData["载荷"].toReal());
query.addBindValue(testData["转速"].toInt());
query.addBindValue(testData["线速度"].toReal());
query.addBindValue(testData["摩擦系数"].toReal());
query.addBindValue(testData["PV值"].toReal());
query.exec();
}
void YaoModel::pauseTest()
{
testState["实验状态"] = PAUSE;
}
void YaoModel::stopTest()
{
YaoModel::testState["实验状态"] = YaoModel::STOP;
}
void YaoModel::startTest()
{
if(testState["实验状态"] != START) {
testState.insert("实验状态",START);
}
}
void YaoModel::connectDB(QString dbName)
{
//```修改dbName
MyQutil::openSqlLite(dbName);
}
/*初始化testData*/
void YaoModel::initTestData()
{
testData.insert("实验时间",0);
testData.insert("转速",0);
testData.insert("工件温度",0.0);
testData.insert("线速度",0.00);
testData.insert("PV值",0.000);
testData.insert("油温",0.0);
testData.insert("载荷",15.0);
testData.insert("摩擦力",0.0);
testData.insert("摩擦系数",0.000);
}
void YaoModel::initSampleInfo()
{
sampleInfo.insert("工件内径",0.55);
sampleInfo.insert("工件长度",0.15);
}
void YaoModel::initTestState()
{
testState.insert("实验状态",YaoModel::STOP);
}
/*生成调试用数据*/
void YaoModel::genarateTestData()
{
timer = new QTimer(this);
connect(timer,&QTimer::timeout,this,[=] () {
if(YaoModel::testState["实验状态"].toInt() == YaoModel::START) {
YaoModel::testData["实验时间"] = YaoModel::testData["实验时间"].toInt()+1;
}
YaoModel::testData["转速"] = QRandomGenerator::global()->bounded(0,1450);
YaoModel::testData["工件温度"] = QRandomGenerator::global()->generateDouble()*100.00;
YaoModel::testData["油温"] = QRandomGenerator::global()->generateDouble()*100.00;
YaoModel::testData["载荷"] = QRandomGenerator::global()->generateDouble()*100.00;
YaoModel::testData["摩擦力"] = QRandomGenerator::global()->generateDouble()*100.00;
YaoModel::testData["摩擦系数"] = QRandomGenerator::global()->generateDouble();
YaoModel::testData["线速度"] = PI * YaoModel::testData["转速"].toFloat() * YaoModel::sampleInfo["工件内径"].toFloat()/60;
YaoModel::testData["PV值"] = (1000 * PI * YaoModel::testData["转速"].toFloat()*YaoModel::testData["载荷"].toFloat())/(60 * YaoModel::sampleInfo["工件长度"].toFloat());
});
timer->start(1000);
}
QMap<QString,QVariant> YaoModel::testData;
QMap<QString,QVariant> YaoModel::sampleInfo;
QMap<QString,QVariant> YaoModel::testState;