【问题标题】:SciChart Graph discontinuitySciChart 图形不连续性
【发布时间】:2018-12-17 16:30:02
【问题描述】:

该应用正在从蓝牙获取数据并绘制实时图表。

但是,图表经常出现不连续性。

数据源是蓝牙模块(单独线程),它无法将所有数据发送到 SciChart lib。坦率地说,当我在蓝牙线程中插入Log.d() 行来打印数据时,事情就神奇地开始正常工作了。

我怀疑蓝牙线程没有按时执行。

这是我在DataManager.java 文件中修改的部分代码。

public void setSensingData(PBSensorData pbSensorData) {

        try {
            sensorDataQueueBlocking.put(pbSensorData);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        // This is the magic line. When the line is here, things work fine
        Log.d("DataManager", "put: " + (System.currentTimeMillis() - startTime) + " (ms)" ); 
        startTime = System.currentTimeMillis();
}

提前谢谢你!

【问题讨论】:

  • 可能是其他问题。当我找到解决方案时将再次发布。谢谢大家

标签: android multithreading scichart


【解决方案1】:

不幸的是,您没有提供任何配置 SciChartSurface 或其部分的代码(例如填充数据系列的代码),所以我不能 100% 确定为什么您的应用程序会出现不连续性。

这可能是由于图表更新过于频繁或您在更新期间分配了太多对象造成的。在这种情况下,当 Android 操作系统暂停 VM 以执行 GC 时,您的应用程序可能会出现微冻结,这可能会导致您描述的不连续性。无论如何,我建议从分析您的应用程序开始,以查找 CPU 或内存使用量是否出现峰值。另外我建议查看this answer,其中包含一些如何提高图表性能的建议。

另外我建议你看看SciChart Showcase applicationAudio Analyzer 演示,它展示了如何显示来自麦克风的实时数据。希望这个例子对你有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多