【问题标题】:adding timestamp to real time data log matlab将时间戳添加到实时数据日志matlab
【发布时间】:2015-02-12 08:14:25
【问题描述】:

我正在尝试找到一种方法来对从 USB 端口接收到的字符串值进行时间戳记(每 0.5 秒)并将其保存到文件中。

到目前为止,我正在使用“记录”函数来保存字符串值,但我无法为其添加时间戳。通读这些问题,发现有人使用了“现在”功能,但他们没有描述如何做到这一点。我用作示例来生成代码的字符串值如下:

1 于 2015 年 2 月 12 日 15:57:13.940 录制。小端格式的二进制数据。

2

3

4

到目前为止我开发的代码如下:

%// start code
delete(instrfind);
s = serial('COM5');
set(s,'BaudRate',57600);
set(s,'terminator','CR');

%// Open Serial COM Port
fopen(s);

%// start save file
s.RecordDetail = 'verbose';
s.RecordName = datestr(now,30)
record(s,'on')

%// start time
tic; 
hold on;
count = 1; 
t = 0;

keepLooping = true;
while keepLooping

    time(count)=toc;
    count = count +1;
    out   = fscanf(s);
    fprintf(s,'%s','RS232?')
    out1 = strsplit(out,',');
    s.UserData = count;
    p(count) = str2double(out1(2));
    k(count) = str2double(out1(3));
    g(count) = str2double(out1(4));
    h(count) = str2double(out1(5));

%// plotting of the variables continues from this point.

【问题讨论】:

    标签: matlab timestamp real-time


    【解决方案1】:

    我想问题是你得到一些系统时间毫无意义。要获得全面的时间戳,您可以执行以下操作:

    datestr(datetime,'yyyy-mmm-dd HH:MM:SS:FFF')
    

    您可以使用datetime 函数获取时间作为char 向量,使用datestr 函数获取格式和转换。由于您似乎在我认为您以后可以通过谷歌搜索找到您想要使用的格式之前已经进行了一些编程。我猜这可能因国家/地区而异。

    如果这不是您想要的,请发表评论。祝你好运!

    【讨论】:

    • 嗨,Patrik,感谢您的回复,但这并不是我真正想要做的。您给我的建议是修改保存时生成的文件名中的时间戳。我所追求的是在从 USB 端口获取数据时尝试为文件中生成的每一行添加时间戳。文件名中的时间戳是跟踪每次读取时间的替代方法。希望这次我更清楚一点。谢谢你的建议。
    • @MiguelAlvarado 不,这不是我的建议。我向您展示了如何在 matlab 中将时间作为字符串获取。然后你要做的就是把它添加到你的打印输出中。 fprintf(s, '[%s] %s', datestr(datetime,'yyyy-mmm-dd HH:MM:SS:FFF'), 'RS232?')。认为它是直截了当的。如果您想从 USB 连接中获取时间,或者您只想要时差,您必须在问题中写下这个
    • 嗨@Patrik,我对编程很陌生,所以感谢您详细说明。我使用了命令行,它完成了这项工作,只是为了我的目的将日期时间更改为现在。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2015-08-30
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 2020-08-18
    • 2011-09-02
    相关资源
    最近更新 更多