Check two string data without carriage return symbol

3 views (last 30 days)
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
Sergey Makovkin
Sergey Makovkin on 25 Mar 2016
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
Ced
Ced on 25 Mar 2016
Edited: Ced on 25 Mar 2016
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)

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

Categories

Find more on MATLAB in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!