From c5813d624ad3dbb083820b122dfa4eff0b1b1529 Mon Sep 17 00:00:00 2001 From: Jef Driesen Date: Thu, 13 Oct 2022 23:12:35 +0200 Subject: [PATCH] Add support for the Scubapro G2 TEK The Scubapro G2 TEK is compatible with the G2, but with a new model number. Reported-by: Greg McLaughlin --- src/descriptor.c | 4 +++- src/uwatec_smart_parser.c | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/descriptor.c b/src/descriptor.c index fce47f3..f735368 100644 --- a/src/descriptor.c +++ b/src/descriptor.c @@ -171,6 +171,7 @@ static const dc_descriptor_t g_descriptors[] = { {"Scubapro", "Aladin A1", DC_FAMILY_UWATEC_SMART, 0x25, DC_TRANSPORT_BLE, dc_filter_uwatec}, {"Scubapro", "Mantis 2", DC_FAMILY_UWATEC_SMART, 0x26, DC_TRANSPORT_SERIAL, NULL}, {"Scubapro", "Aladin A2", DC_FAMILY_UWATEC_SMART, 0x28, DC_TRANSPORT_BLE, dc_filter_uwatec}, + {"Scubapro", "G2 TEK", DC_FAMILY_UWATEC_SMART, 0x31, DC_TRANSPORT_USBHID | DC_TRANSPORT_BLE, dc_filter_uwatec}, {"Scubapro", "G2", DC_FAMILY_UWATEC_SMART, 0x32, DC_TRANSPORT_USBHID | DC_TRANSPORT_BLE, dc_filter_uwatec}, {"Scubapro", "G2 Console", DC_FAMILY_UWATEC_SMART, 0x32, DC_TRANSPORT_USBHID | DC_TRANSPORT_BLE, dc_filter_uwatec}, {"Scubapro", "G2 HUD", DC_FAMILY_UWATEC_SMART, 0x42, DC_TRANSPORT_USBHID | DC_TRANSPORT_BLE, dc_filter_uwatec}, @@ -557,7 +558,7 @@ static int dc_filter_uwatec (dc_transport_t transport, const void *userdata, voi "UWATEC Galileo Sol", }; static const dc_usb_desc_t usbhid[] = { - {0x2e6c, 0x3201}, // G2 + {0x2e6c, 0x3201}, // G2, G2 TEK {0x2e6c, 0x3211}, // G2 Console {0x2e6c, 0x4201}, // G2 HUD {0xc251, 0x2006}, // Aladin Square @@ -568,6 +569,7 @@ static int dc_filter_uwatec (dc_transport_t transport, const void *userdata, voi "HUD", "A1", "A2", + "G2 TEK", }; if (transport == DC_TRANSPORT_IRDA) { diff --git a/src/uwatec_smart_parser.c b/src/uwatec_smart_parser.c index 3c4e348..39a927c 100644 --- a/src/uwatec_smart_parser.c +++ b/src/uwatec_smart_parser.c @@ -49,6 +49,7 @@ #define ALADINA1 0x25 #define MANTIS2 0x26 #define ALADINA2 0x28 +#define G2TEK 0x31 #define G2 0x32 #define G2HUD 0x42 @@ -532,7 +533,8 @@ uwatec_smart_parser_cache (uwatec_smart_parser_t *parser) parser->model == CHROMIS || parser->model == MANTIS2 || parser->model == G2 || parser->model == ALADINSPORTMATRIX || parser->model == ALADINSQUARE || parser->model == G2HUD || - parser->model == ALADINA1 || parser->model == ALADINA2 ) { + parser->model == ALADINA1 || parser->model == ALADINA2 || + parser->model == G2TEK) { unsigned int offset = header->tankpressure + 2 * i; endpressure = array_uint16_le(data + offset); beginpressure = array_uint16_le(data + offset + 2 * header->ngases); @@ -622,6 +624,7 @@ uwatec_smart_parser_create (dc_parser_t **out, dc_context_t *context, unsigned i break; case G2: case G2HUD: + case G2TEK: case ALADINSPORTMATRIX: case ALADINA1: case ALADINA2: @@ -968,7 +971,8 @@ uwatec_smart_parse (uwatec_smart_parser_t *parser, dc_sample_callback_t callback parser->model == CHROMIS || parser->model == MANTIS2 || parser->model == G2 || parser->model == ALADINSPORTMATRIX || parser->model == ALADINSQUARE || parser->model == G2HUD || - parser->model == ALADINA1 || parser->model == ALADINA2 ) { + parser->model == ALADINA1 || parser->model == ALADINA2 || + parser->model == G2TEK) { // Uwatec Galileo id = uwatec_galileo_identify (data[offset]); } else {