From 0ae143e27f942f3259ec71323bd16ad5bff910e7 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Tue, 17 Apr 2018 11:07:14 -0700 Subject: [PATCH] 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 Signed-off-by: Linus Torvalds --- src/shearwater_petrel.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/shearwater_petrel.c b/src/shearwater_petrel.c index 2e87a3f..b316da8 100644 --- a/src/shearwater_petrel.c +++ b/src/shearwater_petrel.c @@ -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 model = 0; switch (hardware) { - case 0x0808: // Petrel 2 - case 0x0909: // Petrel 1 - case 0x0B0B: // Petrel 1 (newer hardware) - model = PETREL; + case 0x0101: + case 0x0202: + model = PREDATOR; break; + case 0x0606: case 0x0A0A: // Nerd 1 model = NERD; break; case 0x0E0D: // Nerd 2 model = NERD2; 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; break; + case 0x0C0C: case 0x0C0D: + case 0x0D0D: model = PERDIXAI; break; 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.