将时间戳添加到实时数据日志matlab中

时间:2015-02-12 08:14:25

标签: matlab timestamp real-time

我试图找到一种方法来实时地为从USB端口接收的字符串值加上时间戳 - 每0.5秒 - 并将其保存到文件中。

到目前为止,我正在使用'记录'函数保存字符串值,但我还没有能够添加时间戳。通过阅读问题,发现有人使用了“现在”的问题。功能,但他们没有描述这样做的方式。用于生成代码的字符串值I' m如下:

  

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

     

2< 34个ascii值。          时间戳,4.5,5.5,6.5,7.5,8.5,...

     

3< 34个ascii值。          时间戳,4.5,5.5,6.5,7.5,8.5,...

     

4< 34个ascii值。          时间戳,4.5,5.5,6.5,7.5,8.5,..."

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

%// 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.

1 个答案:

答案 0 :(得分:0)

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

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

您可以使用datetime函数获取时间作为 char 向量,并使用datestr函数进行格式化和转换。因为你之前似乎已经完成了一些编程,我认为你以后可以谷歌这个以找到你想要使用的格式。我猜这可能因国家而异。

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