上周我们发射了一枚火箭,其中一个 Arduino 将传感器的数据保存在一个 csv 文件中。该程序每 30 秒使用myFile.close()
一次,并创建一个新文件。但即使滑槽展开,当火箭触地时,SD 也会断开连接,因此文件永远不会关闭。所以我丢失了 30 年代的飞行数据,我想至少恢复其中的一部分。我有文件,但它是空的。
值得注意的是,每个文件都是 60Mo 而我的 RAM 是 8Mo(teensy 4.1)所以我知道至少有一部分数据在那里。
有人知道可以保存我的数据的软件吗?
上周我们发射了一枚火箭,其中一个 Arduino 将传感器的数据保存在一个 csv 文件中。该程序每 30 秒使用myFile.close()
一次,并创建一个新文件。但即使滑槽展开,当火箭触地时,SD 也会断开连接,因此文件永远不会关闭。所以我丢失了 30 年代的飞行数据,我想至少恢复其中的一部分。我有文件,但它是空的。
值得注意的是,每个文件都是 60Mo 而我的 RAM 是 8Mo(teensy 4.1)所以我知道至少有一部分数据在那里。
有人知道可以保存我的数据的软件吗?
正如@Gantendo 所暗示的那样,您可能想要对 sdcard 进行原始转储。在 Linux 下,您可以使用 dd 或 ddrescue 执行此操作。所以,如果 sdcard 是 /dev/sdb 你可以做
要获取原始图像的副本,您可以进行解析。
我的猜测是编写一个程序来读取原始转储并提取您可以找到的数据。我猜你如何做到这一点取决于 CSV 文件的确切格式/详细信息。
您可以通过在 Linux 下使用“strings”命令“快速启动”该过程,该命令可以在输入中搜索具有指定最小长度的人类可读字符串(并将这些字符串转储到另一个文件)。这将帮助您至少识别候选行。当然,还有很多其他的可能性,并且可能有更好的方法来做到这一点,具体取决于数据的格式。(如果您提供数据文件格式的详细信息,如果您卡在这里,stackexchange.com 上的好人可能会为您提供帮助。如果可以使用标准系统工具完成,我们可能也可以,但它可能这里超出范围)