labview编写的数据回放软件,支持多曲线回放,支持曲线缩放,支持曲线打标签,支持曲线勾选可见不可见,支持点击曲线加粗显示,支持点击曲线显示当前曲线Y标尺,支持曲线配置,支持红蓝标尺,支持曲线时间轴以时间或数据点数显示,支持数据以图片或excel格式导出

在数据处理和分析领域,拥有一款强大的数据回放软件至关重要。今天就来聊聊我用LabVIEW编写的数据回放软件,它简直是数据可视化与分析的利器,具备超多实用功能。

多曲线回放功能

这是软件的核心功能之一。在LabVIEW中,通过创建一个数组来存储不同曲线的数据。例如:

// 创建一个二维数组来存储多组数据
For Loop (i = 0; i < numCurves; i++) {
    For Loop (j = 0; j < numPoints; j++) {
        dataArray[i][j] = generateDataPoint(i, j);
    }
}

这里numCurves表示曲线的数量,numPoints表示每条曲线的数据点数。generateDataPoint函数根据曲线索引i和数据点索引j生成对应的数据。这样,我们就可以同时在图表上绘制多条曲线,实现多曲线回放。

曲线缩放功能

LabVIEW的图表控件本身就提供了一定的缩放功能接口。通过在程序中捕获鼠标滚轮事件或者特定的缩放按钮点击事件来实现曲线缩放。

// 鼠标滚轮缩放事件处理
Case Structure (event = Mouse Wheel) {
    Case (Wheel Up) {
        scaleFactor *= 1.1;
    }
    Case (Wheel Down) {
        scaleFactor /= 1.1;
    }
}
// 根据缩放因子调整图表坐标轴范围
axisMin *= scaleFactor;
axisMax *= scaleFactor;

scaleFactor是缩放因子,通过调整它的值,进而改变图表坐标轴的范围axisMinaxisMax,从而实现曲线的缩放效果。

曲线打标签功能

为曲线添加标签可以让用户更清晰地理解每条曲线代表的含义。在LabVIEW中,可以利用文本标签控件实现。

// 为每条曲线添加标签
For Loop (i = 0; i < numCurves; i++) {
    label = "Curve " + i;
    Create Text Label (label, curvePosition[i]);
}

curvePosition表示每条曲线对应的标签位置,这里简单用一个数组来存储位置信息,Create Text Label函数负责在指定位置创建文本标签。

曲线勾选可见不可见

通过布尔型的勾选框来控制曲线的显示与隐藏。

// 勾选框事件处理
Case Structure (event = Checkbox Click) {
    Case (Checked) {
        curveVisible[i] = True;
    }
    Case (Unchecked) {
        curveVisible[i] = False;
    }
}
// 根据曲线可见状态绘制曲线
For Loop (i = 0; i < numCurves; i++) {
    If (curveVisible[i]) {
        Plot Curve (dataArray[i]);
    }
}

curveVisible数组存储每条曲线的可见状态,根据勾选框的状态更新这个数组,然后在绘制曲线时,仅绘制可见状态为True的曲线。

点击曲线加粗显示

当用户点击某条曲线时,让其加粗显示以突出重点。这可以通过捕获鼠标点击事件,并在事件处理中改变曲线的线宽属性实现。

// 鼠标点击曲线事件处理
Case Structure (event = Mouse Click on Curve) {
    Case (Clicked) {
        curveIndex = getClickedCurveIndex();
        curveWidth[curveIndex] = 2; // 加粗曲线
    }
}
// 绘制曲线时应用线宽
For Loop (i = 0; i < numCurves; i++) {
    Set Curve Width (curveWidth[i]);
    Plot Curve (dataArray[i]);
}

getClickedCurveIndex函数用于获取被点击曲线的索引,然后将对应曲线的线宽设置为2(比默认线宽更粗)。

点击曲线显示当前曲线Y标尺

同样是捕获鼠标点击曲线事件,获取点击曲线的数据范围,进而显示对应的Y标尺信息。

// 鼠标点击曲线事件处理
Case Structure (event = Mouse Click on Curve) {
    Case (Clicked) {
        curveIndex = getClickedCurveIndex();
        minY = getMinValue(dataArray[curveIndex]);
        maxY = getMaxValue(dataArray[curveIndex]);
        displayYScale(minY, maxY);
    }
}

getMinValuegetMaxValue函数分别获取曲线数据的最小值和最大值,displayYScale函数则负责将这些值以合适的格式显示出来,作为Y标尺信息。

曲线配置功能

曲线配置允许用户自定义曲线的颜色、样式等属性。可以通过弹出的配置对话框实现。

// 弹出曲线配置对话框
Case Structure (event = Configure Curve Click) {
    Case (Clicked) {
        curveIndex = getClickedCurveIndex();
        color = selectColor();
        style = selectStyle();
        configureCurve(curveIndex, color, style);
    }
}

selectColorselectStyle函数分别让用户选择曲线的颜色和样式,configureCurve函数根据用户选择的属性对指定曲线进行配置。

红蓝标尺功能

在图表上添加红蓝两种颜色的标尺,可以更方便地对比数据。在LabVIEW中,利用额外的坐标轴控件来实现。

// 添加红色标尺
Create Axis (Axis Type = Red, Axis Position = Right);
// 添加蓝色标尺
Create Axis (Axis Type = Blue, Axis Position = Left);

通过这样简单的代码,就可以在图表的左右两侧分别添加红色和蓝色的标尺。

曲线时间轴以时间或数据点数显示

用户可以根据需求选择时间轴是以时间还是数据点数显示。通过一个下拉菜单来切换显示模式。

// 下拉菜单事件处理
Case Structure (event = Dropdown Selection Change) {
    Case (Time Display) {
        timeAxisMode = True;
    }
    Case (Data Point Display) {
        timeAxisMode = False;
    }
}
// 根据显示模式更新时间轴
If (timeAxisMode) {
    updateTimeAxisAsTime();
} else {
    updateTimeAxisAsDataPoints();
}

timeAxisMode是一个布尔变量,用于标识当前时间轴的显示模式,根据用户在下拉菜单中的选择更新这个变量,并调用相应的函数来更新时间轴的显示。

数据以图片或Excel格式导出

导出功能方便用户将数据分享或进一步分析。LabVIEW提供了相应的库来实现图片和Excel文件的导出。

// 导出为图片
Case Structure (event = Export to Image Click) {
    Case (Clicked) {
        filePath = selectFilePath("png");
        exportChartAsImage(filePath);
    }
}
// 导出为Excel
Case Structure (event = Export to Excel Click) {
    Case (Clicked) {
        filePath = selectFilePath("xlsx");
        exportDataToExcel(filePath, dataArray);
    }
}

selectFilePath函数让用户选择文件保存路径,exportChartAsImage函数将图表导出为图片格式,exportDataToExcel函数将数据数组导出到Excel文件中。

这款LabVIEW编写的数据回放软件,凭借丰富的功能,能极大地满足数据处理和分析过程中的各种可视化和交互需求,为用户带来便捷高效的数据处理体验。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐