Hi Juan,
See the attached docs
The B-ULM (ultrasonic ATG) which has a
simple command to request data
The baud rate is set to 19200,8,N,1
This is the command sent to speak to
ATG#1;
31 01 06 6C
If we were addressing another of this type then the
second byte would be different and the verification sum would also change.
The ATG
that is polled will respond with device Adr, Temp, Fuel Height, Liquid Type etc
3E 01 06 16 FF FF A2 00 6C
Now this device can be configured for
Diesel, Petrol and water, so its important to report the mode it is configured
for.
The Verification sum is an 8Bit CRC.
Caution: the height can sometimes
jump or fall. It would be important to average out the reads that are similar
and ignore the radically out read.
(the full doc is attached)
In our experience with it there are
two Filtering parameters required;
1. DifferenceMm
2. ValidCount
How it Filters
If the difference between the first
reading and the next is greater than the DifferenceMm , then the reads are
rejected, if not it will be averaged until the "ValidCount" number of
reads have occurred.
The Master controller will get the
ATG level regularly but on a low priority. Once the Pumps are completed with dispensing,
the Priority can increase.
If there is heartbeat type report
required and there is no stable read since the last heartbeat it will report
current read at that moment but will Flag it as an Unstable read. After every
transaction, it important to send a Stable Read (especially with all the
Nozzles on that Tank being in the non-dispensing status)
You can simulate this device using MPC.
Let know if you have any questions.