| 
									
										
										
										
											2017-04-27 20:18:03 +02:00
										 |  |  | // SPDX-License-Identifier: GPL-2.0
 | 
					
						
							| 
									
										
										
										
											2011-09-14 21:00:49 -07:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * defines and prototypes for the uemis Zurich SDA file parser | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-03 12:27:14 -07:00
										 |  |  | #ifndef UEMIS_H
 | 
					
						
							|  |  |  | #define UEMIS_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <stdint.h>
 | 
					
						
							| 
									
										
										
										
											2012-12-05 09:59:52 -08:00
										 |  |  | #include "dive.h"
 | 
					
						
							| 
									
										
										
										
											2011-10-03 12:27:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-05 12:11:46 -07:00
										 |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-02 21:59:54 -07:00
										 |  |  | void uemis_parse_divelog_binary(char *base64, void *divep); | 
					
						
							| 
									
										
										
										
											2016-03-09 19:06:14 -08:00
										 |  |  | int uemis_get_weight_unit(uint32_t diveid); | 
					
						
							| 
									
										
										
										
											2015-02-12 22:08:43 -08:00
										 |  |  | void uemis_mark_divelocation(int diveid, int divespot, uint32_t dive_site_uuid); | 
					
						
							| 
									
										
										
										
											2012-11-28 17:11:19 -07:00
										 |  |  | void uemis_set_divelocation(int divespot, char *text, double longitude, double latitude); | 
					
						
							| 
									
										
										
										
											2015-09-10 16:05:16 +02:00
										 |  |  | int uemis_get_divespot_id_by_diveid(uint32_t diveid); | 
					
						
							| 
									
										
										
										
											2012-11-28 17:11:19 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-27 20:09:57 -08:00
										 |  |  | typedef struct | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	uint16_t dive_time; | 
					
						
							|  |  |  | 	uint16_t water_pressure;   // (in cbar)
 | 
					
						
							|  |  |  | 	uint16_t dive_temperature; // (in dC)
 | 
					
						
							|  |  |  | 	uint8_t ascent_speed;      // (units unclear)
 | 
					
						
							|  |  |  | 	uint8_t work_fact; | 
					
						
							|  |  |  | 	uint8_t cold_fact; | 
					
						
							|  |  |  | 	uint8_t bubble_fact; | 
					
						
							|  |  |  | 	uint16_t ascent_time; | 
					
						
							|  |  |  | 	uint16_t ascent_time_opt; | 
					
						
							|  |  |  | 	uint16_t p_amb_tol; | 
					
						
							|  |  |  | 	uint16_t satt; | 
					
						
							|  |  |  | 	uint16_t hold_depth; | 
					
						
							|  |  |  | 	uint16_t hold_time; | 
					
						
							|  |  |  | 	uint8_t active_tank; | 
					
						
							| 
									
										
										
										
											2012-09-25 23:19:57 -07:00
										 |  |  | 	// bloody glib, when compiled for Windows, forces the whole program to use
 | 
					
						
							|  |  |  | 	// the Windows packing rules. So to avoid problems on Windows (and since
 | 
					
						
							|  |  |  | 	// only tank_pressure is currently used and that exactly once) I give in and
 | 
					
						
							|  |  |  | 	// make this silly low byte / high byte 8bit entries
 | 
					
						
							| 
									
										
										
										
											2014-02-27 20:09:57 -08:00
										 |  |  | 	uint8_t tank_pressure_low; // (in cbar)
 | 
					
						
							|  |  |  | 	uint8_t tank_pressure_high; | 
					
						
							|  |  |  | 	uint8_t consumption_low; // (units unclear)
 | 
					
						
							|  |  |  | 	uint8_t consumption_high; | 
					
						
							|  |  |  | 	uint8_t rgt; // (remaining gas time in minutes)
 | 
					
						
							|  |  |  | 	uint8_t cns; | 
					
						
							|  |  |  | 	uint8_t flags[8]; | 
					
						
							| 
									
										
										
										
											2011-10-03 12:27:14 -07:00
										 |  |  | } __attribute((packed)) uemis_sample_t; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-05 12:11:46 -07:00
										 |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-11 19:14:46 +01:00
										 |  |  | #endif // UEMIS_H
 |