mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Move all core-functionality to subsurface-core
And adapt a new CMakeLists.txt file for it. On the way I've also found out that we where double-compilling a few files. I've also set the subsurface-core as a include_path but that was just to reduce the noise on this commit, since I plan to remove it from the include path to make it obligatory to specify something like include "subsurface-core/dive.h" for the header files. Since the app is growing quite a bit we ended up having a few different files with almost same name that did similar things, I want to kill that (for instance Dive.h, dive.h, PrintDive.h and such). Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
a079821423
commit
4c0156e3d5
105 changed files with 102 additions and 78 deletions
109
subsurface-core/profile.h
Normal file
109
subsurface-core/profile.h
Normal file
|
@ -0,0 +1,109 @@
|
|||
#ifndef PROFILE_H
|
||||
#define PROFILE_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
STABLE,
|
||||
SLOW,
|
||||
MODERATE,
|
||||
FAST,
|
||||
CRAZY
|
||||
} velocity_t;
|
||||
|
||||
struct membuffer;
|
||||
struct divecomputer;
|
||||
struct plot_info;
|
||||
struct plot_data {
|
||||
unsigned int in_deco : 1;
|
||||
int cylinderindex;
|
||||
int sec;
|
||||
/* pressure[0] is sensor cylinder pressure [when CCR, the pressure of the diluent cylinder]
|
||||
* pressure[1] is interpolated cylinder pressure */
|
||||
int pressure[2];
|
||||
/* o2pressure[0] is o2 cylinder pressure [CCR]
|
||||
* o2pressure[1] is interpolated o2 cylinder pressure [CCR] */
|
||||
int o2cylinderpressure[2];
|
||||
int temperature;
|
||||
/* Depth info */
|
||||
int depth;
|
||||
int ceiling;
|
||||
int ceilings[16];
|
||||
int percentages[16];
|
||||
int ndl;
|
||||
int tts;
|
||||
int rbt;
|
||||
int stoptime;
|
||||
int stopdepth;
|
||||
int cns;
|
||||
int smoothed;
|
||||
int sac;
|
||||
int running_sum;
|
||||
struct gas_pressures pressures;
|
||||
pressure_t o2pressure; // for rebreathers, this is consensus measured po2, or setpoint otherwise. 0 for OC.
|
||||
pressure_t o2sensor[3]; //for rebreathers with up to 3 PO2 sensors
|
||||
pressure_t o2setpoint;
|
||||
double mod, ead, end, eadd;
|
||||
velocity_t velocity;
|
||||
int speed;
|
||||
struct plot_data *min[3];
|
||||
struct plot_data *max[3];
|
||||
int avg[3];
|
||||
/* values calculated by us */
|
||||
unsigned int in_deco_calc : 1;
|
||||
int ndl_calc;
|
||||
int tts_calc;
|
||||
int stoptime_calc;
|
||||
int stopdepth_calc;
|
||||
int pressure_time;
|
||||
int heartbeat;
|
||||
int bearing;
|
||||
double ambpressure;
|
||||
double gfline;
|
||||
};
|
||||
|
||||
struct ev_select {
|
||||
char *ev_name;
|
||||
bool plot_ev;
|
||||
};
|
||||
|
||||
struct plot_info calculate_max_limits_new(struct dive *dive, struct divecomputer *given_dc);
|
||||
void compare_samples(struct plot_data *e1, struct plot_data *e2, char *buf, int bufsize, int sum);
|
||||
struct plot_data *populate_plot_entries(struct dive *dive, struct divecomputer *dc, struct plot_info *pi);
|
||||
struct plot_info *analyze_plot_info(struct plot_info *pi);
|
||||
void create_plot_info_new(struct dive *dive, struct divecomputer *dc, struct plot_info *pi, bool fast);
|
||||
void calculate_deco_information(struct dive *dive, struct divecomputer *dc, struct plot_info *pi, bool print_mode);
|
||||
struct plot_data *get_plot_details_new(struct plot_info *pi, int time, struct membuffer *);
|
||||
|
||||
/*
|
||||
* When showing dive profiles, we scale things to the
|
||||
* current dive. However, we don't scale past less than
|
||||
* 30 minutes or 90 ft, just so that small dives show
|
||||
* up as such unless zoom is enabled.
|
||||
* We also need to add 180 seconds at the end so the min/max
|
||||
* plots correctly
|
||||
*/
|
||||
int get_maxtime(struct plot_info *pi);
|
||||
|
||||
/* get the maximum depth to which we want to plot
|
||||
* take into account the additional verical space needed to plot
|
||||
* partial pressure graphs */
|
||||
int get_maxdepth(struct plot_info *pi);
|
||||
|
||||
#define SENSOR_PR 0
|
||||
#define INTERPOLATED_PR 1
|
||||
#define SENSOR_PRESSURE(_entry) (_entry)->pressure[SENSOR_PR]
|
||||
#define O2CYLINDER_PRESSURE(_entry) (_entry)->o2cylinderpressure[SENSOR_PR]
|
||||
#define CYLINDER_PRESSURE(_o2, _entry) (_o2 ? O2CYLINDER_PRESSURE(_entry) : SENSOR_PRESSURE(_entry))
|
||||
#define INTERPOLATED_PRESSURE(_entry) (_entry)->pressure[INTERPOLATED_PR]
|
||||
#define INTERPOLATED_O2CYLINDER_PRESSURE(_entry) (_entry)->o2cylinderpressure[INTERPOLATED_PR]
|
||||
#define GET_PRESSURE(_entry) (SENSOR_PRESSURE(_entry) ? SENSOR_PRESSURE(_entry) : INTERPOLATED_PRESSURE(_entry))
|
||||
#define GET_O2CYLINDER_PRESSURE(_entry) (O2CYLINDER_PRESSURE(_entry) ? O2CYLINDER_PRESSURE(_entry) : INTERPOLATED_O2CYLINDER_PRESSURE(_entry))
|
||||
#define SAC_WINDOW 45 /* sliding window in seconds for current SAC calculation */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif // PROFILE_H
|
Loading…
Add table
Add a link
Reference in a new issue