我试图找到一种方法来实时地为从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.
答案 0 :(得分:0)
我想问题是你得到的系统时间毫无意义。要获得全面的时间戳,您可以执行以下操作:
datestr(datetime,'yyyy-mmm-dd HH:MM:SS:FFF')
您可以使用datetime
函数获取时间作为 char 向量,并使用datestr
函数进行格式化和转换。因为你之前似乎已经完成了一些编程,我认为你以后可以谷歌这个以找到你想要使用的格式。我猜这可能因国家而异。
如果这不是你想要的,请评论。祝你好运!