PDA

View Full Version : Filtering out "bad" data in v8



Jim_PA
August 6th, 2022, 05:13 AM
Am I missing the instructions on how to make filters for v8 scanner like we could with v7.5? TP change less than 5% per 100ms, ECT > 178, etc.?

I have looked all over I promise :grin:

nonnieselman
August 6th, 2022, 01:25 PM
Ive been trying to do the same.. V8 isnt near as easy to work with yet as V7.5

Happy Jim
August 9th, 2022, 08:33 AM
I’m with you…..can’t figure it out :-(

Jim_PA
August 11th, 2022, 11:29 PM
Well, so far it looks like you have to do it with calculated PIDS. at the pid selection screen you can click the little triangle on the config button and click calculated PIDs.

On the top half of the screen you can add your own "Group". I picked "TUNE" and named it "Filter PIDS for Tuning". Then, click on your new group and in the bottom half of the screen you can add your custom PID filter.

I called the PID TPDX, with name "Remove Fast TP changing". Make it a boolean value PID

Then I found this code you have to use (from an old thread):

-- TUNE.TPDX

-- divide by 10 to convert from "%/per second" to "%/per 100ms"
tpdx = dx("TP",frame()-1,frame())/10

-- filter PIDs must have units of "boolean" which means
-- it must return true or false.
if ( tpdx<5 ) then
return true
else
return false
end



I've yet to figure out if returning true means the data will be filtered out, or if true means the data can stay.

But anyway, once you've saved all that, you'll see with your log file open you'll have your newly created Filter PID in the drop down menu at the bottom right.


I think eventually you'd want to name this filter "standard VE filter", and in the if/else/end statement you'd have more logic

paraphrasing here, but...

if ( (tpdx<5) && ("ECT" > 180) && (count(BEN1) > 30) ) then
return true
else
return false
end

joecar
August 12th, 2022, 04:33 PM
The filter calc pid returning true means the sample is filtered out from the dataset.

joecar
August 12th, 2022, 04:38 PM
BTW: you can replace this:


if X
then
return true
else
return false
end


with simply:


return X

aaronc7
August 25th, 2022, 02:21 PM
Good thread. I'm just getting back into tinkering with my C5 and see there's been lots of software changes and V8 has come a long way-- I like it!

Anyways, I had this same question and popped on the forum, and was happy to see this going already

I've come up with these 2 functions and they appear to work identically and appear to be what we/I want to do? Filter out data greater than 5% tps per 100ms.

I think you want the functions to 'return' good data, so in this case, return anything less than 5% tps per 100ms

Anyways here is what I originally tried, and then a more simplified version which so far appears to be identical result. Still experimenting.



-- USER.TRANSTPS
tpdx = dx("PCM.TP",frame()-1,frame())/10
return tpdx < 5




-- USER.TRANSTPS
return dx("PCM.TP",frame()-1,frame())/10 < 5

aaronc7
September 4th, 2022, 06:03 AM
I converted over most of the "CALC.VET" type of stuff that I used on v7.5 as well. Will share if I can figure out a better way to save them to a file or something.

joecar
September 10th, 2022, 07:35 PM
...



-- USER.TRANSTPS
tpdx = dx("PCM.TP",frame()-1,frame())/10
return tpdx < 5




-- USER.TRANSTPS
return dx("PCM.TP",frame()-1,frame())/10 < 5


Yes, those do the same thing.