summaryrefslogtreecommitdiffstats
path: root/cochran_cmdr.h
blob: 1c5f938d52ff2833acc908d3257a2e91c740a477 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*
 * subsurface
 *
 * Copyright (C) 2014 John Van Ostrand
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 * MA 02110-1301 USA
 */


struct cochran_cmdr_log_t {
	// Pre-dive 128 bytes
	unsigned char minutes, seconds;			// 2 bytes
	unsigned char day, hour, year, month;	// 4 bytes
	unsigned char sample_start_offset[4];	// 4 bytes
	unsigned char start_timestamp[4];		// 4 bytes
	unsigned char pre_dive_timestamp[4];	// 4 bytes
	unsigned char unknown1[6];				// 6 bytes
	unsigned char water_conductivity;		// 1 byte [0=low, 2=high]
	unsigned char unknown2[5];				// 5 bytes
//30
	unsigned char sample_pre_event_offset[4];// 4 bytes
	unsigned char unknown3[4];				// 4 bytes
	unsigned char start_battery_voltage[2];	// 2 bytes [/256]
//40
	unsigned char unknown4[2]; 				// 2 bytes
	unsigned char start_sgc[2];				// 2 bytes
	unsigned char entered_or_computed_po[2];// 2 bytes ???
	unsigned char unknown5[10];				// 10 bytes
//56
	unsigned char start_depth[2];			// 2 byte [/4]
	unsigned char unknown6[4];				// 3 bytes
	unsigned char start_psi[2];				// 2 bytes LE
	unsigned char unknown7[4];				// 4 bytes
	unsigned char sit[2];					// 2 bytes
//70
	unsigned char number[2];				// 2 bytes
	unsigned char unknown8[1];				// 1 byte
	unsigned char altitude;					// 1 byte [/4 = kft]
	unsigned char unknown9[28];				// 27 bytes
	unsigned char alarm_depth[2];			// 2 bytes
	unsigned char unknown10[4];				// 5 bytes
//108
	unsigned char repetitive_dive;			// 1 byte
	unsigned char unknown11[3];				// 3 bytes
	unsigned char start_tissue_nsat[16];	// 16 bytes [/256]

	// Post-dive 128 bytes
	unsigned char sample_end_offset[4];		// 4 bytes
	unsigned char unknown12[21];			// 21 bytes
	unsigned char temp;						// 1 byte
	unsigned char unknown13[12];			// 12 bytes
	unsigned char bt[2];					// 2 bytes [minutes]
//168
	unsigned char max_depth[2];				// 2 bytes [/4]
	unsigned char avg_depth[2];				// 2 bytes
	unsigned char unknown14[38];			// 38 bytes
//210
	unsigned char o2_percent[4][2];			// 8 bytes
	unsigned char unknown15[22];			// 22 bytes
	unsigned char end_tissue_nsat[16];		// 16 bytes [/256]
} __attribute__((packed));

struct cochran_cmdr_config1_t {
	unsigned char unknown1[209];
	unsigned short int dive_count;
	unsigned char unknown2[274];
	unsigned short int serial_num; // @170
	unsigned char unknown3[24];
} __attribute__((packed));