Changeset ed43b5d in subsurface


Ignore:
Timestamp:
Jul 7, 2017, 1:48:24 PM (5 months ago)
Author:
Dirk Hohndel <dirk@…>
Branches:
master
Children:
d5793ea
Parents:
4834f51
Message:

Add support for tank sensor battery for Perdix AI

This is a bit awkward with a VENDOR event - but at the time the strings
are generated, we don't have the information, yet, that we need to
determine these values (we need the last sample parsed, but the strings
are created as part of the dive headers.

Signed-off-by: Dirk Hohndel <dirk@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • core/libdivecomputer.c

    rfbdba88 red43b5d  
    381381                sample->bearing.degrees = value.bearing;
    382382                break;
     383#if defined(SAMPLE_VENDOR_SHEARWATER_TRANSMITTERDATA)
     384        case DC_SAMPLE_VENDOR:
     385                if (value.vendor.type == SAMPLE_VENDOR_SHEARWATER_TRANSMITTERDATA && value.vendor.size == 2) {
     386                        // logversion 7 allows us to get a reading of the transmitter battery
     387                        // but that information is only available in the sample, so we use a
     388                        // vendor sample to get it out
     389                        char *str = NULL;
     390                        unsigned char *data = (char *)value.vendor.data;
     391                        if (data[0] != 0xF) {
     392                                switch (data[0]) {
     393                                case 0:
     394                                        str = "normal";
     395                                        break;
     396                                case 1:
     397                                        str = "critical";
     398                                        break;
     399                                case 2:
     400                                        str = "warning";
     401                                        break;
     402                                default:
     403                                        str = "unknown";
     404                                        break;
     405                                }
     406                                add_extra_data(dc, "T1 battery", str);
     407                        }
     408                        if (data[1] != 0xF) {
     409                                switch (data[1]) {
     410                                case 0:
     411                                        str = "normal";
     412                                        break;
     413                                case 1:
     414                                        str = "critical";
     415                                        break;
     416                                case 2:
     417                                        str = "warning";
     418                                        break;
     419                                default:
     420                                        str = "unknown";
     421                                        break;
     422                                }
     423                                add_extra_data(dc, "T2 battery", str);
     424                        }
     425                }
     426                break;
     427#endif
    383428#ifdef DEBUG_DC_VENDOR
    384429        case DC_SAMPLE_VENDOR:
Note: See TracChangeset for help on using the changeset viewer.