mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Allow for more O2 sensors
The Divesoft Liberty has four O2 sensors. So far, we had a hard coded limit of three sensors and crashed with a failed assert when we encoutered more than three. This allows for up to MAX_O2_SENSORS which is currently 6. The voting logic is adapted accordingly: We sort the values and we keep deleting the values that differ more than 20% by value from the closest. This follows what Shearwater implements on their computers. In some of the import/export functions the value is still hard coded to 6 thanks to explicit field names. Signed-off-by: Robert C. Helling <helling@lmu.de>
This commit is contained in:
parent
e00e1bb9f7
commit
e794efaba6
13 changed files with 31329 additions and 31257 deletions
|
@ -338,6 +338,21 @@ static void save_sample(struct membuffer *b, struct sample *sample, struct sampl
|
|||
old->o2sensor[2] = sample->o2sensor[2];
|
||||
}
|
||||
|
||||
if ((sample->o2sensor[3].mbar) && (sample->o2sensor[3].mbar != old->o2sensor[3].mbar)) {
|
||||
put_milli(b, " sensor4=", sample->o2sensor[3].mbar, "bar");
|
||||
old->o2sensor[3] = sample->o2sensor[3];
|
||||
}
|
||||
|
||||
if ((sample->o2sensor[4].mbar) && (sample->o2sensor[4].mbar != old->o2sensor[4].mbar)) {
|
||||
put_milli(b, " sensor5=", sample->o2sensor[4].mbar, "bar");
|
||||
old->o2sensor[4] = sample->o2sensor[4];
|
||||
}
|
||||
|
||||
if ((sample->o2sensor[5].mbar) && (sample->o2sensor[5].mbar != old->o2sensor[5].mbar)) {
|
||||
put_milli(b, " sensor6=", sample->o2sensor[5].mbar, "bar");
|
||||
old->o2sensor[5] = sample->o2sensor[5];
|
||||
}
|
||||
|
||||
if (sample->setpoint.mbar != old->setpoint.mbar) {
|
||||
put_milli(b, " po2=", sample->setpoint.mbar, "bar");
|
||||
old->setpoint = sample->setpoint;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue