电机一致性是电机传感器的重要测试内容,但目前没有合适的软件可用,研究人员一般是自行计算,但报告内容不标示清楚的话难以理解,也无法评判单点一致性指标是否合格。因此,需要开发一款专门用于电机一致性测试的软件,所有数据都在同一框架下计算,这样就能清楚的反映在测试报告里。
目录
1 功能需求
- 1 打开基准文件和测试文件,分两部分加载
- 2 每个文件的时间段可以指定
- 3 可根据时间段绘图并计算误差
- 4 可保存为图片
2 技术栈
程序注重的是曲线图,因此无需查看数据内容,用列表显示加载文件即可。时间段的指定可以用spinBox来指定。
3 开发步骤
1 框架搭建
首先新建main window应用,并设计UI界面。
2 初始化
在构造函数里进行初始化。
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->splitter->setStretchFactor(0,1);
ui->splitter->setStretchFactor(1,9);
// 模型视图
model = new QStringListModel;
ui->listView->setModel(model);
ui->listView->setEditTriggers(false);
}
3 打开参考
参考只有1个文件,写入到编辑框中,同时读取数据。
// 指定基准站
void MainWindow::on_actionBase_triggered()
{
QString tmpName = QFileDialog::getOpenFileName(this,"Open Base","","*.txt");
if(tmpName.isEmpty())
return;
// 读取时间和测量值
QFile file(tmpName);
if(!file.open(QIODevice::ReadOnly))
return;
QTextStream in(&file);
QString line;
bs.clear();
bt.clear();
bv.clear();
// 读文件头 共7行
line = in.readLine();
line = in.readLine();
line = in.readLine();
line = in.readLine();
line = in.readLine();
line = in.readLine();
line =