NMEA 2000 Shield

How much your engine is eating fuel/h?

So if you have 8 ml/pulse you will have 1000 / 8 pulse/l = 125 pulse/liter. If your engine takes 40 l/h, it means 5000 pulse/h = 1.39 pulse/s This means that you can not calculate pulses with 1 s period. Not even with 3 s - as you do in ReadFuelRate - giving you sometimes 3 pulses and sometime 4 pulses causing 33% changes. And by the way you newer call ReadFuelRate and do not update FuelRate variable. On idle engine takes so little fuel, that you can not measure it.

If the fuel stream is steady, you can get some results by measuring distance of each pulse in microseconds. But even that value you have average e.g. by using ring buffer.

Fuel rate is not on rapid PGN. It is on Engine Dynamic Parameters PGN, which you update once per second.

I have not used flags under engine dynamic parameters. Some MFD:s can show alarm according to them.