Add support for the new models

This commit is contained in:
Jef Driesen 2017-05-19 20:02:33 +02:00
parent 55b9307e19
commit 28947876a2
3 changed files with 12 additions and 5 deletions

View File

@ -290,8 +290,15 @@ static const dc_descriptor_t g_descriptors[] = {
{"DiveSystem", "iDive Deep", DC_FAMILY_DIVESYSTEM_IDIVE, 0x0B},
{"DiveSystem", "iX3M Easy", DC_FAMILY_DIVESYSTEM_IDIVE, 0x22},
{"DiveSystem", "iX3M Deep", DC_FAMILY_DIVESYSTEM_IDIVE, 0x23},
{"DiveSystem", "iX3M Tec", DC_FAMILY_DIVESYSTEM_IDIVE, 0x24},
{"DiveSystem", "iX3M Tech+", DC_FAMILY_DIVESYSTEM_IDIVE, 0x24},
{"DiveSystem", "iX3M Reb", DC_FAMILY_DIVESYSTEM_IDIVE, 0x25},
{"DiveSystem", "iX3M Pro Easy", DC_FAMILY_DIVESYSTEM_IDIVE, 0x32},
{"DiveSystem", "iX3M Pro Deep", DC_FAMILY_DIVESYSTEM_IDIVE, 0x34},
{"DiveSystem", "iX3M Pro Tech+", DC_FAMILY_DIVESYSTEM_IDIVE, 0x35},
{"DiveSystem", "iDive2 Free", DC_FAMILY_DIVESYSTEM_IDIVE, 0x40},
{"DiveSystem", "iDive2 Easy", DC_FAMILY_DIVESYSTEM_IDIVE, 0x42},
{"DiveSystem", "iDive2 Deep", DC_FAMILY_DIVESYSTEM_IDIVE, 0x44},
{"DiveSystem", "iDive2 Tech+", DC_FAMILY_DIVESYSTEM_IDIVE, 0x45},
{"Cochran", "Commander", DC_FAMILY_COCHRAN_COMMANDER, 0},
{"Cochran", "EMC-14", DC_FAMILY_COCHRAN_COMMANDER, 1},
{"Cochran", "EMC-16", DC_FAMILY_COCHRAN_COMMANDER, 2},

View File

@ -367,7 +367,7 @@ divesystem_idive_device_foreach (dc_device_t *abstract, dc_dive_callback_t callb
unsigned char packet[MAXPACKET - 2];
const divesystem_idive_commands_t *commands = &idive;
if (device->model >= IX3M_EASY && device->model <= IX3M_REB) {
if (device->model >= IX3M_EASY) {
commands = &ix3m;
}
@ -393,7 +393,7 @@ divesystem_idive_device_foreach (dc_device_t *abstract, dc_dive_callback_t callb
vendor.size = commands->id.size;
device_event_emit (abstract, DC_EVENT_VENDOR, &vendor);
if (device->model >= IX3M_EASY && device->model <= IX3M_REB) {
if (device->model >= IX3M_EASY) {
// Detect the APOS4 firmware.
unsigned int apos4 = (devinfo.firmware / 10000000) >= 4;
if (apos4) {

View File

@ -99,7 +99,7 @@ divesystem_idive_parser_create (dc_parser_t **out, dc_context_t *context, unsign
// Set the default values.
parser->model = model;
if (model >= IX3M_EASY && model <= IX3M_REB) {
if (model >= IX3M_EASY) {
parser->headersize = SZ_HEADER_IX3M;
} else {
parser->headersize = SZ_HEADER_IDIVE;
@ -243,7 +243,7 @@ divesystem_idive_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callba
unsigned int nsamples = array_uint16_le (data + 1);
unsigned int samplesize = SZ_SAMPLE_IDIVE;
if (parser->model >= IX3M_EASY && parser->model <= IX3M_REB) {
if (parser->model >= IX3M_EASY) {
// Detect the APOS4 firmware.
unsigned int firmware = array_uint32_le(data + 0x2A);
unsigned int apos4 = (firmware / 10000000) >= 4;