首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android磨损操作系统(即CSV)上保存和传输智能手表传感器数据的最佳方法是什么?

在Android磨损操作系统(即CSV)上保存和传输智能手表传感器数据的最佳方法是什么?
EN

Stack Overflow用户
提问于 2021-12-06 18:36:14
回答 1查看 859关注 0票数 3

我已经为化石的Gen 6智能手表编写了一个磨损应用程序,它从车载传感器中提取光密度图(PPG)数据,并不断更新屏幕上的值。下面是我的onSensorChanged方法,它识别来自PPG传感器的事件并相应地更新TextView对象。我还尝试使用FileWriter对象将每个数据写入CSV文件。

代码语言:javascript
复制
@Override
    public void onSensorChanged(SensorEvent event) {

        // On event from PPG sensor, update text on screen and
        // write to CSV file.
        if (event.sensor.getType() == 65572) {
            sensorData = event.values[0];
            String dataString = Float.toString(sensorData);
            textView.setText(dataString);
            try {
                writer.write(dataString);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

文件编写器在MainActivity顶部声明。

代码语言:javascript
复制
    private FileWriter writer;

并在onResume方法中定义:

代码语言:javascript
复制
protected void onResume() {
        super.onResume();
        try {
            writer = new FileWriter("data.csv",true);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

我不知道该如何写这个文件,是否应该以某种方式将它存储在手表或配对电话上,以及如何最终在我的PC上检索CSV数据,以便在MATLAB中进行分析等。(是否有更好的方法来这样做?)谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-06 22:16:10

首先,我想说有很多方法可以做到这一点,而被认为“最好”的方法在很大程度上取决于用例的具体细节(有时还取决于个人的偏好)。

最重要的是要记住的是,手表有非常有限的资源(电池,内存,CPU)相比,典型的手机。

不管您的确切解决方案是什么,请记住以下几点:

  1. 写入文件是一项昂贵的操作。对于从传感器接收到的每个数据点来说,这样做并不理想。考虑将数据保存到数据库用房中。如果应用程序崩溃或设备意外重新启动,只要您还好,另一种更容易的选择就是将其保存在内存中。这可以使用基本数组或某种Map (时间戳和值)来完成,具体取决于您需要的数据。您还可以使用这两种方法的混合方式并将数据分批保存。
  2. 在手表和手机之间发送数据也很昂贵。我强烈建议把东西放在手表上,只有在需要的时候才把它转到手机上。这可以是手动触发,每天在一定时间,当手表充电,或其他一些聪明的策略,以尽量减少对手表的电池寿命的影响。
  3. 您可以使用可穿戴数据层API将数据发送到电话。根据需要传输的数据数量,您必须设置MessageClientChannelClient。如果您坚持使用Android支持的数据结构(而不是创建自己的数据结构),那么发送它们应该是非常直接的。
  4. 如果您需要处理或格式化您的数据以便于在MATLAB中进行分析,请考虑在电话上而不是在手表上这样做。当然,在合理大小的数据集上,更简单的操作可以直接在手表上执行。

确切地说,您决定如何将文件发送到您的计算机,这超出了我在这里试图回答的范围。有很多有据可查的方法可以做到这一点。最简单的方法是手动通过亚行转帐。这可以直接从手表,所以你甚至不必发送数据到电话。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70250275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档