Последовательный дисплей данных Matlab

Я написал программу для контроллера opencapsensense, в которой он имеет 8 портов и датчик подключен к первому порту контроллера. Теперь я хочу отобразить данные только одного порта, но результат получается как в терминах массива. поэтому, пожалуйста, предложите мне, как я могу отображать только данные с первого порта.

выход подобен стр = [22565,0,0,0,0,0,0,0]

и программа

s = serial('COM3'); %assigns the object s to serial port

set(s, 'InputBufferSize', 240); %number of bytes in inout buffer
set(s, 'FlowControl', 'software');
set(s, 'BaudRate', 115200);
set(s, 'Parity', 'none');
set(s, 'DataBits', 8);
set(s, 'StopBit', 1);
set(s, 'Timeout',10);

disp(get(s,'Name'));
prop(1)=(get(s,'BaudRate'));
prop(2)=(get(s,'DataBits'));
prop(3)=(get(s, 'StopBit'));
prop(4)=(get(s, 'InputBufferSize'));

disp(['Port setup done',num2str(prop)]);

fopen(s);           %opens the serial port
disp('Running');
d= size(s);
disp(d)
t = 1;i = 1;
nr_of_samples = 100;
print_matrix = zeros(nr_of_samples,3);
while (t<(nr_of_samples+1))
   str = fgets(s)% reads one line of text from the device connected to the serial port

fprintf(s,2)
   if numel(str) > 10
       %extract information from string to matrix
       sender = str2double(str(3));
       receiver = str2double(str(5));
       value = str2double(str(7:length(str)));
      %text = ['sender: ',int2str(sender),', receiver: ', int2str(receiver),' value: ',int2str(value),'\n'];
text = [' value: ',int2str(value),'\n'];
       fprintf(text);
       print_matrix(t,1) = sender;
      print_matrix(t,2) = receiver;
     print_matrix(t,3) = value;
     t = t+1;
   end
end
fprintf('\n');
distance = 50;

filename = ['conductivePaintOnFabric_' num2str(distance) '.dat'];
csvwrite(filename,print_matrix);
type(filename);

    fclose(s); % disconnect serial port object
    delete(s); % remove from memory
    clear s; % remove from workspace
    disp('Serial port closed');

0 ответов

Другие вопросы по тегам