Divinglog import: import temperature graph

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Miika Turkia 2015-07-12 23:16:57 +05:30 committed by Dirk Hohndel
parent 17bc868531
commit 22b665cc14

View file

@ -2846,8 +2846,8 @@ int parse_cobalt_buffer(sqlite3 *handle, const char *url, const char *buffer, in
extern int divinglog_profile(void *handle, int columns, char **data, char **column) extern int divinglog_profile(void *handle, int columns, char **data, char **column)
{ {
int sinterval = 0; int sinterval = 0;
unsigned long i, len; unsigned long i, len, lenprofile2 = 0;
char *ptr; char *ptr, temp[4];
/* We do not have samples */ /* We do not have samples */
if (!data[1]) if (!data[1])
@ -2870,9 +2870,26 @@ extern int divinglog_profile(void *handle, int columns, char **data, char **colu
* *
* Example: 004500010000 * Example: 004500010000
* 4.5 m, no deco, no RBT warning, ascanding too fast, no decostop ignored, no work, no extra info * 4.5 m, no deco, no RBT warning, ascanding too fast, no decostop ignored, no work, no extra info
*
*
* Profile2
*
* TTTFFFFIRRR
*
* T: Temperature (in °C with one decimal)
* F: Tank pressure 1 (in bar with one decimal)
* I: Tank ID (0, 1, 2 ... 9)
* R: RBT (in min)
*
* Example: 25518051099
* 25.5 °C, 180.5 bar, Tank 1, 99 min RBT
*/ */
len = strlen(data[1]); len = strlen(data[1]);
if (data[2])
lenprofile2 = strlen(data[2]);
for (i = 0, ptr = data[1]; i * 12 < len; ++i) { for (i = 0, ptr = data[1]; i * 12 < len; ++i) {
sample_start(); sample_start();
@ -2881,6 +2898,11 @@ extern int divinglog_profile(void *handle, int columns, char **data, char **colu
ptr[5] = 0; ptr[5] = 0;
cur_sample->depth.mm = atoi(ptr) * 10; cur_sample->depth.mm = atoi(ptr) * 10;
if (i * 11 < lenprofile2) {
memcpy(temp, &data[2][i * 11], 3);
cur_sample->temperature.mkelvin = C_to_mkelvin(atoi(temp) / 10);
}
ptr += 12; ptr += 12;
sample_end(); sample_end();
} }
@ -2929,7 +2951,7 @@ extern int divinglog_dive(void *param, int columns, char **data, char **column)
int retval = 0; int retval = 0;
sqlite3 *handle = (sqlite3 *)param; sqlite3 *handle = (sqlite3 *)param;
char *err = NULL; char *err = NULL;
char get_profile_template[] = "select ProfileInt,Profile from Logbook where Number = %d"; char get_profile_template[] = "select ProfileInt,Profile,Profile2 from Logbook where Number = %d";
char get_buffer[1024]; char get_buffer[1024];
dive_start(); dive_start();