Choose the samplerate based on the model number.

This commit is contained in:
Jef Driesen 2010-12-03 23:30:53 +01:00
parent a2b9d887a8
commit 1ea4879066
3 changed files with 14 additions and 4 deletions

View File

@ -338,7 +338,7 @@ doparse (FILE *fp, device_data_t *devdata, const unsigned char data[], unsigned
break;
case DEVICE_TYPE_CRESSI_EDY:
case DEVICE_TYPE_ZEAGLE_N2ITION3:
rc = cressi_edy_parser_create (&parser);
rc = cressi_edy_parser_create (&parser, devdata->devinfo.model);
break;
default:
rc = PARSER_STATUS_ERROR;

View File

@ -36,7 +36,7 @@ device_status_t
cressi_edy_device_open (device_t **device, const char* name);
parser_status_t
cressi_edy_parser_create (parser_t **parser);
cressi_edy_parser_create (parser_t **parser, unsigned int model);
#ifdef __cplusplus
}

View File

@ -30,6 +30,7 @@ typedef struct cressi_edy_parser_t cressi_edy_parser_t;
struct cressi_edy_parser_t {
parser_t base;
unsigned int model;
};
static parser_status_t cressi_edy_parser_set_data (parser_t *abstract, const unsigned char *data, unsigned int size);
@ -57,7 +58,7 @@ parser_is_cressi_edy (parser_t *abstract)
parser_status_t
cressi_edy_parser_create (parser_t **out)
cressi_edy_parser_create (parser_t **out, unsigned int model)
{
if (out == NULL)
return PARSER_STATUS_ERROR;
@ -72,6 +73,9 @@ cressi_edy_parser_create (parser_t **out)
// Initialize the base class.
parser_init (&parser->base, &cressi_edy_parser_backend);
// Set the default values.
parser->model = model;
*out = (parser_t*) parser;
return PARSER_STATUS_SUCCESS;
@ -125,11 +129,17 @@ cressi_edy_parser_get_datetime (parser_t *abstract, dc_datetime_t *datetime)
static parser_status_t
cressi_edy_parser_samples_foreach (parser_t *abstract, sample_callback_t callback, void *userdata)
{
cressi_edy_parser_t *parser = (cressi_edy_parser_t *) abstract;
const unsigned char *data = abstract->data;
unsigned int size = abstract->size;
unsigned int time = 0;
unsigned int interval = 1;
unsigned int interval = 0;
if (parser->model == 0x08)
interval = 1;
else
interval = 30;
unsigned int offset = 32;
while (offset + 2 <= size) {