Shearwater Petrel: make the hardware ID decoding a bit easier to read

Dirk seems to have some documentation about the different ID's, plus it
just makes sense to order the switch statement by number.

This is partly based on Dirk's original commit to do the different model
numbers, with various changes over time due to merge conflict
resolution.  Dirk's sign-off comes from Dirks commit in the original
subsurface branch.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Linus Torvalds 2018-04-17 11:07:14 -07:00
parent 2d3b25cf8e
commit 0ae143e27f

View File

@ -212,25 +212,37 @@ shearwater_petrel_device_foreach (dc_device_t *abstract, dc_dive_callback_t call
unsigned int hardware = array_uint_be (dc_buffer_get_data (buffer), dc_buffer_get_size (buffer)); unsigned int hardware = array_uint_be (dc_buffer_get_data (buffer), dc_buffer_get_size (buffer));
unsigned int model = 0; unsigned int model = 0;
switch (hardware) { switch (hardware) {
case 0x0808: // Petrel 2 case 0x0101:
case 0x0909: // Petrel 1 case 0x0202:
case 0x0B0B: // Petrel 1 (newer hardware) model = PREDATOR;
model = PETREL;
break; break;
case 0x0606:
case 0x0A0A: // Nerd 1 case 0x0A0A: // Nerd 1
model = NERD; model = NERD;
break; break;
case 0x0E0D: // Nerd 2 case 0x0E0D: // Nerd 2
model = NERD2; model = NERD2;
break; break;
case 0x0707: case 0x0404:
case 0x0909: // Petrel 1
case 0x0B0B: // Petrel 1 (newer hardware)
model = PETREL;
break;
case 0x0505:
case 0x0808: // Petrel 2
model = PETREL;
break;
case 0x0707: // documentation list 0C0D for both Perdix and Perdix AI :-(
model = PERDIX; model = PERDIX;
break; break;
case 0x0C0C:
case 0x0C0D: case 0x0C0D:
case 0x0D0D:
model = PERDIXAI; model = PERDIXAI;
break; break;
default: default:
WARNING (abstract->context, "Unknown hardware type %04x.", hardware); model = PETREL;
WARNING (abstract->context, "Unknown hardware type %04x. Assuming Petrel.", hardware);
} }
// Emit a device info event. // Emit a device info event.