Check two string data without carriage return symbol

Hi all!
In the serial com port channel values comes from 0 to 1023, this example from Arduino: https://monosnap.com/file/TiTehc6zWhu0zszPnCALbnjIMAfpzf
On the MATLAB side I parse it via function:
while(obj1.BytesAvailable)
Psvoltage = deblank(fscanf(obj1)) %, '%d', 4)
[a, b] = size(Psvoltage)
bb = findstr(Psvoltage, '\r')
if ~isempty(Psvoltage)
sPs = str2num(Psvoltage) * (100 / 1023); %
break;
end
end
But sometimes from serial port I take corrupted data like this: https://monosnap.com/file/ysJFdabTbOVOKoQbgqJYF44SioAORy
And it is cause error in my program:
https://monosnap.com/file/oEJlyjnifsTx6h531xfDi23nQ89Shv
https://monosnap.com/file/6fdI8mgQa6pVjKn2EHFqzXdQnDDLzb
This is two string data, but without carriage return symbol, because all checking such as: ~isnan(), ~isempty() and findstr(Psvoltage, '\r') this data had been passed.
The question is: how do I check these data would be to ignore them?
Thank you!

 Accepted Answer

Ced
Ced on 25 Mar 2016
Edited: Ced on 25 Mar 2016
Why not just take the first row?
I.e.
Psvoltage = deblank(fscanf(obj1)) %, '%d', 4)
if ( ~isempty(Psvoltage) )
Psvoltage = Psvoltage(1,:);
end
edit: added ~isempty check

2 Comments

I tried you case, but it dont solve my problem with corrupted data. This is the code: https://monosnap.com/file/qgg8o3x6aQ2rbs6AtFpGsNh5LEtXZO
This is corrupted case with errors: https://monosnap.com/file/rAr5kgsKK2OAtVCKLNKiXL995Gffzb
How about
Psvoltage = deblank(fscanf(obj1)) %, '%d', 4)
if ( ~isempty(Psvoltage) )
volt_num = str2num(Psvoltage);
Psvoltage = volt_num(1);
end
?
or simply < removed, did not work >, see Sergey's answer below.

Sign in to comment.

More Answers (1)

Thank you very much! First variant is working correctly, but second is not (please see the 2nd result: https://monosnap.com/file/6XxSZBS1pNI2AcPHIZNSq3n4SCSPJD)

Categories

Asked:

on 25 Mar 2016

Edited:

Ced
on 25 Mar 2016

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!