Add support for the Scubapro G2 HUD

The G2 HUD is compatible with the G2, except for the new USB PID.
This commit is contained in:
Jef Driesen 2019-04-22 22:45:18 +02:00
parent 7d48587ed8
commit 74957542bb
2 changed files with 6 additions and 2 deletions

View File

@ -140,6 +140,7 @@ static const dc_descriptor_t g_descriptors[] = {
{"Scubapro", "Mantis 2", DC_FAMILY_UWATEC_SMART, 0x26, DC_TRANSPORT_SERIAL, NULL},
{"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},
/* Reefnet */
{"Reefnet", "Sensus", DC_FAMILY_REEFNET_SENSUS, 1, DC_TRANSPORT_SERIAL, NULL},
{"Reefnet", "Sensus Pro", DC_FAMILY_REEFNET_SENSUSPRO, 2, DC_TRANSPORT_SERIAL, NULL},
@ -420,6 +421,7 @@ static int dc_filter_uwatec (dc_transport_t transport, const void *userdata)
static const dc_usb_desc_t usbhid[] = {
{0x2e6c, 0x3201}, // G2
{0x2e6c, 0x3211}, // G2 Console
{0x2e6c, 0x4201}, // G2 HUD
{0xc251, 0x2006}, // Aladin Square
};
static const char *bluetooth[] = {

View File

@ -50,6 +50,7 @@
#define CHROMIS 0x24
#define MANTIS2 0x26
#define G2 0x32
#define G2HUD 0x42
#define UNSUPPORTED 0xFFFFFFFF
@ -529,7 +530,7 @@ uwatec_smart_parser_cache (uwatec_smart_parser_t *parser)
parser->model == ALADIN2G || parser->model == MERIDIAN ||
parser->model == CHROMIS || parser->model == MANTIS2 ||
parser->model == G2 || parser->model == ALADINSPORTMATRIX ||
parser->model == ALADINSQUARE) {
parser->model == ALADINSQUARE || parser->model == G2HUD) {
unsigned int offset = header->tankpressure + 2 * i;
endpressure = array_uint16_le(data + offset);
beginpressure = array_uint16_le(data + offset + 2 * header->ngases);
@ -620,6 +621,7 @@ uwatec_smart_parser_create (dc_parser_t **out, dc_context_t *context, unsigned i
parser->nevents[2] = C_ARRAY_SIZE (uwatec_smart_galileo_events_2);
break;
case G2:
case G2HUD:
case ALADINSPORTMATRIX:
parser->headersize = 84;
parser->header = &uwatec_smart_trimix_header;
@ -963,7 +965,7 @@ uwatec_smart_parse (uwatec_smart_parser_t *parser, dc_sample_callback_t callback
parser->model == ALADIN2G || parser->model == MERIDIAN ||
parser->model == CHROMIS || parser->model == MANTIS2 ||
parser->model == G2 || parser->model == ALADINSPORTMATRIX ||
parser->model == ALADINSQUARE) {
parser->model == ALADINSQUARE || parser->model == G2HUD) {
// Uwatec Galileo
id = uwatec_galileo_identify (data[offset]);
} else {