RCube
Rcube Rest Server calculates sail routes based on Grib files and sailing boat polar files
Loading...
Searching...
No Matches
r3types.h
Go to the documentation of this file.
1
/* this file includes in other file provides
2
. Constant definition with #define and enum
3
. Type definitions with typedef
4
*/
5
6
#define STAMINA_SHIP 0
// Virtual Regatta shop index
7
#define STAMINA_SAIL 2
// Virtual Regatta index for sail change
8
#define STAMINA_TACK 0
// Virtual Regatta intex for tack or Gybe
9
#define STAMINA_FULL_PACK 1
// Virtual regatta full pack
10
#define N_MAX_NMEA_PORTS 3
11
#define CSV_SEP_POLAR ";\t"
// for polar no comma because decimal separator may be comma
12
#define WORKING_DIR ""
//ATT // Default Working Dir if nothing specified in routing.par file
13
//#define WORKING_DIR "/home/rr/routing/"
14
#define PARAMETERS_FILE WORKING_DIR"par/routing.par"
// default parameter file
15
#define TEMP_FILE_NAME "routing.tmp"
// temporary file
16
#define MIN_LAT (-80.0)
// Minimum latitude for getCoord
17
#define MAX_LAT 80.0
// Maximum latitude for getCoord
18
#define MIN_LON (-180.0)
// Minimum longitude for getCoord
19
#define MAX_LON 360.0
// Maximum longitude for getCoord
20
#define MIN_SPEED_FOR_TARGET 5
// knots. Difficult to explain. See engine.c, optimize()..
21
#define MISSING (0.001)
// for grib file missing values
22
//#define MISSING (-999999) // for grib file missing values
23
#define MS_TO_KN (3600.0/1852.0)
// conversion meter/second to knots
24
#define KN_TO_MS (1852.0/3600.0)
// conversion knots to meter/second
25
#define NM_TO_M 1852.0
// convert Nautical Mile to meter
26
#define EARTH_RADIUS 3440.065
// Earth's radius in nautical miles
27
#define RAD_TO_DEG (180.0/G_PI)
// conversion radius to degree
28
#define DEG_TO_RAD (G_PI/180.0)
// conversion degree to radius
29
#define SIZE_T_IS_SEA (3601 * 1801)
// size of size is sea
30
#define MAX_N_WAY_POINT 10
// Max number of Way Points
31
#define PROG_NAME "RCube"
32
#define PROG_VERSION "0.1"
33
#define PROG_AUTHOR "René Rigault"
34
#define DESCRIPTION "Routing calculates best route from pOr (Origin) to pDest (Destination) \
35
taking into account grib files and boat polars"
36
37
#define MILLION 1000000
// Million !
38
#define NIL (-100000)
// for routing return when unreacheable
39
#define MAX_SIZE_ISOC 100000
// Max number of point in an isochrone
40
#define MAX_N_ISOC (384 + 1) * 4
// Max Hours in 16 days * 4 times per hours Max (tSep = 15 mn) required for STATIC way
41
#define MAX_N_POL_MAT_COLS 128
// Max number of column in polar
42
#define MAX_N_POL_MAT_LINES 128
// Max number of lines in polar
43
#define MAX_SIZE_JSON_HEADER 10000
// Max size json header when reading polar json
44
45
#define MAX_SIZE_LINE 256
// Max size of pLine in text files
46
#define MAX_SIZE_STD 1024
// Max size of lines standard
47
#define MAX_SIZE_LINE_BASE64 1024
// Max size of line in base64 mail file
48
#define MAX_SIZE_TEXT 2048
// Max size of text
49
#define MAX_SIZE_TEXT_FILE 50000
// Max size of text file
50
#define MAX_SIZE_MESSAGE 2048
// Max size of a mail message
51
#define MAX_SIZE_URL 1024
// Max size of a URL
52
#define MAX_SIZE_DATE 32
// Max size of a string with date inside
53
#define MAX_SIZE_BUFFER 1000000
// big buffer for malloc
54
#define MAX_N_TIME_STAMPS 512
// Max number of time stamps in Grib file
55
#define MAX_N_DATA_DATE 4
// Max number of date in grib file. 1 in practise
56
#define MAX_N_DATA_TIME 4
// Max number of time date in egrib file. 1 in practise
57
#define MAX_N_SHORT_NAME 64
// Max number of short name in grib file
58
#define MAX_N_GRIB_LAT 1024
// Max umber of latitudes in grib file
59
#define MAX_N_GRIB_LON 2048
// Max number of longitudes in grib file
60
#define MAX_SIZE_SHORT_NAME 16
// Max size of string representing very short name
61
#define MAX_SIZE_NAME 64
// Max size of string representing a name
62
#define MAX_SIZE_NUMBER 64
// Max size of string representing a number
63
#define MAX_SIZE_FILE_NAME 128
// Max size of pLine in text files
64
#define MAX_SIZE_DIR_NAME 192
// Max size of directory name
65
#define MAX_N_SHP_FILES 4
// Max number of shape file
66
#define SMALL_SIZE 5
// for short string
67
#define MAX_SIZE_FORBID_ZONE 100
// Max size per forbidden zone
68
#define MAX_N_FORBID_ZONE 32
// Max number of forbidden zones
69
#define N_METEO_ADMIN 4
// administration: Weather Service US, DWD, etc
70
71
#define MAX_N_COMPETITORS 10
// Number Max of competitors
72
#define MAX_N_SAIL 32
// Max number of sails in PolMat object
73
#define MAX_N_SECTORS 3600
// Max number of sectors for optimization of sectors
74
#define LIMIT_SOG 100
// for SOG error detection
75
#define MAX_SIZE_INFO 512
// for checkArrival
76
77
enum
{
WIND
,
CURRENT
};
// for grib information, either WIND or CURRENT
78
enum
{
WIND_POLAR
,
WAVE_POLAR
,
SAIL_POLAR
};
// for polar information, either WIND or WAVE or SAIL
79
enum
{
BASIC
,
DD
,
DM
,
DMS
};
// degre, degre decimal, degre minutes, degre minutes seconds
80
enum
{
TRIBORD
,
BABORD
};
// amure TRIBORD = STARBOARD, BABORD = PORT
81
enum
{
RUNNING
,
STOPPED
,
NO_SOLUTION
,
EXIST_SOLUTION
};
// for chooseDeparture.ret values and allCompetitors check
82
enum
{
ROUTING_STOPPED
= -2,
ROUTING_ERROR
= -1,
ROUTING_RUNNING
= 0};
// for routingLaunch
83
struct
MeteoElmt
{
84
int
id
;
85
char
name
[
MAX_SIZE_NAME
];
86
};
88
typedef
struct
{
89
double
lat
;
90
double
lon
;
91
}
Point
;
92
94
typedef
struct
{
95
int
n
;
96
Point
*
points
;
97
}
MyPolygon
;
98
99
/* Structure for best departure time choice */
100
typedef
struct
{
101
int
ret
;
102
int
count
;
103
int
bestCount
;
104
int
tBegin
;
105
int
tEnd
;
106
double
tInterval
;
// time interval in decimal hours betwen tries
107
int
tStop
;
108
double
t [
MAX_N_TIME_STAMPS
];
109
double
minDuration
;
110
double
maxDuration
;
111
double
bestTime
;
// best time in decimal hours after grib time
112
}
ChooseDeparture
;
113
115
typedef
struct
{
116
int
uMissing
;
117
int
vMissing
;
118
int
gMissing
;
119
int
wMissing
;
120
int
uStrange
;
121
int
vStrange
;
122
int
gStrange
;
123
int
wStrange
;
124
int
outZone
;
125
}
CheckGrib
;
126
128
typedef
struct
{
129
float
lat
;
// latitude
130
float
lon
;
// longitude
131
float
u
;
// east west component of wind or current in meter/s
132
float
v
;
// north south component of wind or current in meter/s
133
float
w
;
// waves height WW3 model
134
float
g
;
// wind speed gust un meter/s
135
//float msl; // mean sea level pressure
136
//float prate; // precipitation rate
137
}
FlowP
;
// either wind or current
138
140
typedef
struct
{
141
bool
anteMeridian
;
// set at true if zone crosses meridian 180
142
bool
allTimeStepOK
;
143
bool
wellDefined
;
144
long
centreId
;
145
int
nMessage
;
146
long
editionNumber
;
147
long
numberOfValues
;
148
long
stepUnits
;
149
double
latMin
;
150
double
latMax
;
151
double
lonLeft
;
152
double
lonRight
;
153
double
latStep
;
154
double
lonStep
;
155
long
nbLat
;
156
long
nbLon
;
157
size_t
nTimeStamp
;
158
size_t
nDataDate
;
159
size_t
nDataTime
;
160
//double time0Grib; // time of the first forecast in grib in hours
161
size_t
nShortName
;
162
char
shortName [
MAX_N_SHORT_NAME
][
MAX_SIZE_SHORT_NAME
];
163
long
timeStamp [
MAX_N_TIME_STAMPS
];
164
long
dataDate [
MAX_N_DATA_DATE
];
165
long
dataTime [
MAX_N_DATA_TIME
];
166
long
intervalBegin
;
167
long
intervalEnd
;
168
size_t
intervalLimit
;
169
}
Zone
;
170
172
typedef
struct
{
173
int
id
;
// unique point Id
174
int
father
;
// the id of the father of this poiint
175
int
amure
;
// amure (TRIBORD, BABORD)
176
int
sail
;
// sail used
177
bool
motor
;
// true if used motor
178
//int sector;
179
int
toIndexWp
;
// index of Targeted Waypoint (-1 if par.pOr.pDest)
180
double
lat
;
// latitude in decimal degrees
181
double
lon
;
// longitude ...
182
double
dd
;
// distance to pDest
183
double
vmc
;
// velocity made on course
184
double
orthoVmc
;
// distance to the middle direction
185
}
Pp
;
186
188
typedef
struct
{
189
int
toIndexWp
;
// index of waypoint targetted
190
// double distance; // best distance from Isoc to pDest
191
double
bestVmc
;
// best VMC (distance)
192
double
biggestOrthoVmc
;
// biggest distance to middle direction
193
int
closest
;
// index in Iso of closest point to pDest
194
int
first
;
// index of first point, useful for drawAllIsochrones
195
int
size
;
// size of isochrone
196
double
focalLat
;
// focal point Lat
197
double
focalLon
;
// focal point Lon
198
}
IsoDesc
;
199
201
typedef
struct
{
202
char
jsonHeader [
MAX_SIZE_JSON_HEADER
];
// json header if polr info read from json file
203
double
t [
MAX_N_POL_MAT_LINES
][
MAX_N_POL_MAT_COLS
];
// the table
204
double
maxAll
;
// max speed in all polar
205
int
nLine
;
// number of raws includine line 0 (tws)
206
int
nCol
;
// number of colmumn includoing col 0 (twa)
207
bool
fromJson
;
// true id polar information collected from json file
208
size_t
nSail
;
// number of sail in polar. 0 is no information
209
struct
{
210
int
id
;
// sail ID
211
char
name
[
MAX_SIZE_NAME
];
// sail Name
212
double
max
;
// max speed with this sail
213
} tSail [
MAX_N_SAIL
];
// table of sails
214
}
PolMat
;
215
217
typedef
struct
{
218
double
lat
;
// latitude
219
double
lon
;
// longitude
220
double
od
;
// orthodomic distance
221
double
oCap
;
// orthodomic cap
222
double
ld
;
// loxodromic distance
223
double
lCap
;
// loxodromic cap
224
}
WayPoint
;
225
227
typedef
struct
{
228
double
stamina
;
// for virtual Regatta stamina management
229
double
lat
;
230
double
lon
;
231
int
id
;
232
int
father
;
233
int
amure
;
234
int
toIndexWp
;
235
int
sail
;
236
bool
motor
;
237
double
time
;
// time in hours after start
238
double
oCap
;
// orthodromic cap
239
double
od
;
// orthodromic distance
240
double
lCap
;
// loxodromic cap
241
double
ld
;
// loxodromic distance
242
double
sog
;
// speed over ground
243
double
u
;
// east west wind or current in meter/s
244
double
v
;
// north south component of wind or current in meter/s
245
double
w
;
// waves height WW3 model
246
double
g
;
// wind speed gust
247
double
twd
;
// wind direction
248
double
tws
;
// wind speed in Knots
249
}
SailPoint
;
250
251
/* Way point route description */
252
typedef
struct
{
253
int
n
;
254
double
totOrthoDist
;
255
double
totLoxoDist
;
256
WayPoint
t [
MAX_N_WAY_POINT
];
257
}
WayPointList
;
258
260
typedef
struct
{
261
int
colorIndex
;
// index used to select color
262
double
lat
;
263
double
lon
;
264
double
dist
;
// Orthodromic distance to destination
265
double
duration
;
// in hours, duration of the trip.
266
char
strETA [
MAX_SIZE_DATE
];
// estimated Time of Arrival
267
char
name
[
MAX_SIZE_NAME
];
268
}
Competitor
;
269
270
/* list of competitors */
271
typedef
struct
{
272
int
n
;
// number of competitors
273
int
runIndex
;
// index of last competitor running. -1 if all run !
274
int
ret
;
// return of allCompetitors running function
275
Competitor
t [
MAX_N_COMPETITORS
];
276
}
CompetitorsList
;
277
279
typedef
struct
{
280
char
polarFileName [
MAX_SIZE_FILE_NAME
];
// save the polar name
281
long
dataDate
;
// save Grib date
282
long
dataTime
;
// save Grib time
283
int
nIsoc
;
// number of Isochrones
284
double
isocTimeStep
;
// isoc time step for this route in hours
285
int
n
;
// number of steps
286
double
calculationTime
;
// compute time to calculate the route
287
double
lastStepDuration
;
// in hours, last step (to destination)
288
double
lastStepWpDuration [
MAX_N_WAY_POINT
];
// in hours, to waypoints
289
int
nWayPoints
;
// number of WayPoints (0 if only destination)
290
double
duration
;
// total time in hours of the route
291
double
totDist
;
// total distance in NM
292
double
motorDist
;
// distance using motor in NM
293
double
tribordDist
;
// distance sail tribord in NM
294
double
babordDist
;
// distance sail babord in NM
295
int
ret
;
// return value of routing
296
bool
destinationReached
;
// true if destination reaches
297
double
avrTws
;
// average wind speed of the route
298
double
avrGust
;
// average gust of the route
299
double
avrWave
;
// average wave of the route
300
double
avrSog
;
// average Speed Over Ground
301
double
maxTws
;
// max wind speed of the route
302
double
maxGust
;
// max gust of the route
303
double
maxWave
;
// max wave of the route
304
int
competitorIndex
;
// index of competitor. See CompetitorsList.
305
int
nSailChange
;
// stat: number of sail chage
306
int
nAmureChange
;
// stat: number of amure change
307
char
lastPointInfo [
MAX_SIZE_INFO
];
// for checkArrival
308
SailPoint
*
t
;
// array of points (maxNIsoc + 0), dynamic allocation
309
}
SailRoute
;
310
312
typedef
struct
{
313
int
n
;
314
SailRoute
*
r
;
315
}
HistoryRouteList
;
316
318
typedef
struct
{
319
int
authent
;
// 1 if Authentication is enabled
320
int
allwaysSea
;
// if 1 (true) then isSea is allways true. No earth avoidance !
321
int
dashboardUTC
;
// true if VR Dashboard provide time in UTC. false if local time.
322
int
maxPoiVisible
;
// poi visible if <= maxPoiVisible
323
int
opt
;
// 0 if no optimization, else number of opt algorithm
324
double
tStep
;
// hours, for isochrones
325
int
cogStep
;
// step of cog in degrees
326
int
rangeCog
;
// range of cog from x - RANGE_GOG, x + RAGE_COG+1
327
int
special
;
// special purpose
328
double
constWindTws
;
// if not equal 0, constant wind used in place of grib file
329
double
constWindTwd
;
// the direction of constant wind if used
330
double
constWave
;
// constant wave height if used
331
double
constCurrentS
;
// if not equal 0, contant current speed Knots
332
double
constCurrentD
;
// the direction of constant current if used
333
int
jFactor
;
// factor for target point distance used in sectorOptimize
334
int
kFactor
;
// factor for target point distance used in sectorOptimize
335
int
nSectors
;
// number of sector for optimization by sector
336
char
workingDir [
MAX_SIZE_FILE_NAME
];
// working directory
337
char
gribFileName [
MAX_SIZE_FILE_NAME
];
// name of grib file
338
int
mostRecentGrib
;
// true if most recent grib in grib directory to be selected
339
double
gribResolution
;
// grib lat step for mail request
340
int
gribTimeStep
;
// grib time step for mail request
341
int
gribTimeMax
;
// grib time max fir mail request
342
char
web [
MAX_SIZE_DIR_NAME
];
// name of web directory
343
char
currentGribFileName [
MAX_SIZE_FILE_NAME
];
// name of current grib file
344
char
polarFileName [
MAX_SIZE_FILE_NAME
];
// name of polar file
345
char
wavePolFileName [
MAX_SIZE_FILE_NAME
];
// name of Wave polar file
346
char
dumpIFileName [
MAX_SIZE_FILE_NAME
];
// name of file where to dump isochrones
347
char
dumpRFileName [
MAX_SIZE_FILE_NAME
];
// name of file where to dump isochrones
348
char
helpFileName [
MAX_SIZE_FILE_NAME
];
// name of html help file
349
char
shpFileName [
MAX_N_SHP_FILES
][
MAX_SIZE_FILE_NAME
];
// name of SHP file for geo map
350
char
isSeaFileName [
MAX_SIZE_FILE_NAME
];
// name of file defining sea on earth
351
char
cliHelpFileName [
MAX_SIZE_FILE_NAME
];
// text help for cli mode
352
char
poiFileName [
MAX_SIZE_FILE_NAME
];
// list of point of interest
353
char
portFileName [
MAX_SIZE_FILE_NAME
];
// list of ports
354
char
parInfoFileName [
MAX_SIZE_FILE_NAME
];
// parameter info
355
char
traceFileName [
MAX_SIZE_FILE_NAME
];
// trace is a list of point/time
356
char
midFileName [
MAX_SIZE_FILE_NAME
];
// list of mid country related to mmsi and AIS
357
char
tidesFileName [
MAX_SIZE_FILE_NAME
];
// list of ports witht lat, lon fo tides
358
char
feedbackFileName [
MAX_SIZE_FILE_NAME
];
//for user feedback
359
char
logFileName [
MAX_SIZE_FILE_NAME
];
// log the runs
360
char
wpGpxFileName [
MAX_SIZE_FILE_NAME
];
// To tpre Way Points in GPX format
361
char
dashboardVR [
MAX_SIZE_FILE_NAME
];
// Virtual Regatta dashboard thanks to plugin
362
char
marksFileName [
MAX_SIZE_FILE_NAME
];
// Virtual Regatta marks
363
double
staminaVR
;
// Init stamina
364
int
nShpFiles
;
// number of Shp files
365
double
startTimeInHours
;
// time of beginning of routing after time0Grib
366
Pp
pOr
;
// point of origine
367
Pp
pDest
;
// point of destination
368
char
pOrName [
MAX_SIZE_NAME
];
// Name of pOr if exist
369
char
pDestName [
MAX_SIZE_NAME
];
// Name of pDest if exist
370
int
style
;
// style of isochrones
371
int
showColors
;
// colors for wind speed
372
char
description [
MAX_SIZE_LINE
];
// script used to send request for grib files
373
char
smtpScript [
MAX_SIZE_LINE
];
// script used to send request for grib files
374
char
imapToSeen [
MAX_SIZE_LINE
];
// script used to flag all messages to seen
375
char
imapScript [
MAX_SIZE_LINE
];
// script used to receive grib files
376
int
dispDms
;
// display degre, degre minutes, degre minutes sec
377
int
windDisp
;
// display wind nothing or barbule or arrow
378
int
currentDisp
;
// display current
379
int
waveDisp
;
// display wave height
380
int
indicatorDisp
;
// indicator to display : wind, gist, waves, rain, pressure
381
int
gridDisp
;
// display meridian and parallels
382
int
closestDisp
;
// display closest point to pDest in isochrones
383
int
focalDisp
;
// display focal point
384
int
infoDisp
;
// display digest information
385
int
speedDisp
;
// Speed of Display
386
int
aisDisp
;
// AIS display
387
int
shpPointsDisp
;
// display points only for SHP files
388
int
stepIsocDisp
;
// display one isochrone over stepIsocDisp
389
int
penalty0
;
// penalty in seconds for tack
390
int
penalty1
;
// penalty in seconds fot Gybe
391
int
penalty2
;
// penalty in seconds for sail change
392
double
motorSpeed
;
// motor speed if used
393
double
threshold
;
// threshold for motor use
394
double
nightEfficiency
;
// efficiency of team at night
395
double
dayEfficiency
;
// efficiency of team at day
396
double
xWind
;
// multiply factor for wind
397
double
maxWind
;
// max Wind supported
398
char
webkit [
MAX_SIZE_NAME
];
// name of webkit application
399
char
windyApiKey [
MAX_SIZE_TEXT
];
// windy API Key (web)
400
char
googleApiKey [
MAX_SIZE_TEXT
];
// google API Key for google map (web)
401
int
curlSys
;
// true if curl wuth system
402
int
python
;
// true if python script used for mail grib request
403
char
smtpServer [
MAX_SIZE_NAME
];
// SMTP server name
404
char
smtpUserName [
MAX_SIZE_NAME
];
// SMTP user name
405
char
smtpTo [
MAX_SIZE_NAME
];
// SMTP destination for r3server
406
char
imapServer [
MAX_SIZE_NAME
];
// IMAP server name
407
char
imapUserName [
MAX_SIZE_NAME
];
// IMAP user name
408
char
imapMailBox [
MAX_SIZE_NAME
];
// IMAP mail box
409
char
mailPw [
MAX_SIZE_NAME
];
// password for smtp and imap
410
bool
storeMailPw
;
// store Mail PW
411
int
nForbidZone
;
// number of forbidden zones
412
//char forbidZone [MAX_N_FORBID_ZONE][MAX_SIZE_LINE]; // array of forbid zones
413
int
techno
;
// additionnal info display for tech experts
414
struct
{
// list of NEMEA ports with for each item, portName and speed
415
char
portName [
MAX_SIZE_NAME
];
416
int
speed
;
417
bool
open
;
418
} nmea [
N_MAX_NMEA_PORTS
];
419
int
nNmea
;
// number of ports activated
420
int
withWaves
;
// true if waves are considered
421
int
withCurrent
;
// true if current is considered
422
}
Par
;
MAX_N_COMPETITORS
#define MAX_N_COMPETITORS
Definition
r3types.h:71
RUNNING
@ RUNNING
Definition
r3types.h:81
NO_SOLUTION
@ NO_SOLUTION
Definition
r3types.h:81
STOPPED
@ STOPPED
Definition
r3types.h:81
EXIST_SOLUTION
@ EXIST_SOLUTION
Definition
r3types.h:81
MAX_N_SAIL
#define MAX_N_SAIL
Definition
r3types.h:72
N_MAX_NMEA_PORTS
#define N_MAX_NMEA_PORTS
Definition
r3types.h:10
MAX_N_TIME_STAMPS
#define MAX_N_TIME_STAMPS
Definition
r3types.h:54
MAX_N_WAY_POINT
#define MAX_N_WAY_POINT
Definition
r3types.h:30
MAX_N_DATA_DATE
#define MAX_N_DATA_DATE
Definition
r3types.h:55
BASIC
@ BASIC
Definition
r3types.h:79
DM
@ DM
Definition
r3types.h:79
DMS
@ DMS
Definition
r3types.h:79
DD
@ DD
Definition
r3types.h:79
MAX_SIZE_DIR_NAME
#define MAX_SIZE_DIR_NAME
Definition
r3types.h:64
MAX_N_DATA_TIME
#define MAX_N_DATA_TIME
Definition
r3types.h:56
TRIBORD
@ TRIBORD
Definition
r3types.h:80
BABORD
@ BABORD
Definition
r3types.h:80
MAX_SIZE_SHORT_NAME
#define MAX_SIZE_SHORT_NAME
Definition
r3types.h:60
MAX_N_SHORT_NAME
#define MAX_N_SHORT_NAME
Definition
r3types.h:57
MAX_N_POL_MAT_COLS
#define MAX_N_POL_MAT_COLS
Definition
r3types.h:41
MAX_SIZE_NAME
#define MAX_SIZE_NAME
Definition
r3types.h:61
MAX_N_POL_MAT_LINES
#define MAX_N_POL_MAT_LINES
Definition
r3types.h:42
MAX_SIZE_FILE_NAME
#define MAX_SIZE_FILE_NAME
Definition
r3types.h:63
MAX_N_SHP_FILES
#define MAX_N_SHP_FILES
Definition
r3types.h:65
MAX_SIZE_DATE
#define MAX_SIZE_DATE
Definition
r3types.h:52
MAX_SIZE_LINE
#define MAX_SIZE_LINE
Definition
r3types.h:45
MAX_SIZE_INFO
#define MAX_SIZE_INFO
Definition
r3types.h:75
WIND
@ WIND
Definition
r3types.h:77
CURRENT
@ CURRENT
Definition
r3types.h:77
MAX_SIZE_JSON_HEADER
#define MAX_SIZE_JSON_HEADER
Definition
r3types.h:43
ROUTING_STOPPED
@ ROUTING_STOPPED
Definition
r3types.h:82
ROUTING_ERROR
@ ROUTING_ERROR
Definition
r3types.h:82
ROUTING_RUNNING
@ ROUTING_RUNNING
Definition
r3types.h:82
WAVE_POLAR
@ WAVE_POLAR
Definition
r3types.h:78
WIND_POLAR
@ WIND_POLAR
Definition
r3types.h:78
SAIL_POLAR
@ SAIL_POLAR
Definition
r3types.h:78
MAX_SIZE_TEXT
#define MAX_SIZE_TEXT
Definition
r3types.h:48
name
char name[MAX_SIZE_NAME]
Definition
r3util.c:22
CheckGrib
Check grib structure.
Definition
r3types.h:115
CheckGrib::wStrange
int wStrange
Definition
r3types.h:123
CheckGrib::uMissing
int uMissing
Definition
r3types.h:116
CheckGrib::wMissing
int wMissing
Definition
r3types.h:119
CheckGrib::vMissing
int vMissing
Definition
r3types.h:117
CheckGrib::uStrange
int uStrange
Definition
r3types.h:120
CheckGrib::gMissing
int gMissing
Definition
r3types.h:118
CheckGrib::gStrange
int gStrange
Definition
r3types.h:122
CheckGrib::vStrange
int vStrange
Definition
r3types.h:121
CheckGrib::outZone
int outZone
Definition
r3types.h:124
ChooseDeparture
Definition
r3types.h:100
ChooseDeparture::tEnd
int tEnd
Definition
r3types.h:105
ChooseDeparture::tStop
int tStop
Definition
r3types.h:107
ChooseDeparture::minDuration
double minDuration
Definition
r3types.h:109
ChooseDeparture::tInterval
double tInterval
Definition
r3types.h:106
ChooseDeparture::count
int count
Definition
r3types.h:102
ChooseDeparture::bestTime
double bestTime
Definition
r3types.h:111
ChooseDeparture::bestCount
int bestCount
Definition
r3types.h:103
ChooseDeparture::tBegin
int tBegin
Definition
r3types.h:104
ChooseDeparture::ret
int ret
Definition
r3types.h:101
ChooseDeparture::maxDuration
double maxDuration
Definition
r3types.h:110
Competitor
Point for competitor.
Definition
r3types.h:260
Competitor::duration
double duration
Definition
r3types.h:265
Competitor::colorIndex
int colorIndex
Definition
r3types.h:261
Competitor::lon
double lon
Definition
r3types.h:263
Competitor::lat
double lat
Definition
r3types.h:262
Competitor::dist
double dist
Definition
r3types.h:264
CompetitorsList
Definition
r3types.h:271
CompetitorsList::runIndex
int runIndex
Definition
r3types.h:273
CompetitorsList::n
int n
Definition
r3types.h:272
CompetitorsList::ret
int ret
Definition
r3types.h:274
FlowP
Wind point.
Definition
r3types.h:128
FlowP::u
float u
Definition
r3types.h:131
FlowP::g
float g
Definition
r3types.h:134
FlowP::lat
float lat
Definition
r3types.h:129
FlowP::w
float w
Definition
r3types.h:133
FlowP::v
float v
Definition
r3types.h:132
FlowP::lon
float lon
Definition
r3types.h:130
HistoryRouteList
History Route description
Definition
r3types.h:312
HistoryRouteList::n
int n
Definition
r3types.h:313
HistoryRouteList::r
SailRoute * r
Definition
r3types.h:314
IsoDesc
isochrone meta data
Definition
r3types.h:188
IsoDesc::size
int size
Definition
r3types.h:195
IsoDesc::closest
int closest
Definition
r3types.h:193
IsoDesc::biggestOrthoVmc
double biggestOrthoVmc
Definition
r3types.h:192
IsoDesc::focalLon
double focalLon
Definition
r3types.h:197
IsoDesc::toIndexWp
int toIndexWp
Definition
r3types.h:189
IsoDesc::focalLat
double focalLat
Definition
r3types.h:196
IsoDesc::first
int first
Definition
r3types.h:194
IsoDesc::bestVmc
double bestVmc
Definition
r3types.h:191
MeteoElmt
Definition
r3types.h:83
MeteoElmt::id
int id
Definition
r3types.h:84
MeteoElmt::name
char name[MAX_SIZE_NAME]
Definition
r3types.h:85
MyPolygon
Structure for polygon.
Definition
r3types.h:94
MyPolygon::n
int n
Definition
r3types.h:95
MyPolygon::points
Point * points
Definition
r3types.h:96
Par
Parameters.
Definition
r3types.h:318
Par::nightEfficiency
double nightEfficiency
Definition
r3types.h:394
Par::nForbidZone
int nForbidZone
Definition
r3types.h:411
Par::nNmea
int nNmea
Definition
r3types.h:419
Par::speedDisp
int speedDisp
Definition
r3types.h:385
Par::jFactor
int jFactor
Definition
r3types.h:333
Par::gribResolution
double gribResolution
Definition
r3types.h:339
Par::penalty1
int penalty1
Definition
r3types.h:390
Par::withCurrent
int withCurrent
Definition
r3types.h:421
Par::special
int special
Definition
r3types.h:327
Par::penalty0
int penalty0
Definition
r3types.h:389
Par::showColors
int showColors
Definition
r3types.h:371
Par::pDest
Pp pDest
Definition
r3types.h:367
Par::maxWind
double maxWind
Definition
r3types.h:397
Par::gridDisp
int gridDisp
Definition
r3types.h:381
Par::focalDisp
int focalDisp
Definition
r3types.h:383
Par::kFactor
int kFactor
Definition
r3types.h:334
Par::constWindTws
double constWindTws
Definition
r3types.h:328
Par::withWaves
int withWaves
Definition
r3types.h:420
Par::indicatorDisp
int indicatorDisp
Definition
r3types.h:380
Par::maxPoiVisible
int maxPoiVisible
Definition
r3types.h:322
Par::techno
int techno
Definition
r3types.h:413
Par::authent
int authent
Definition
r3types.h:319
Par::storeMailPw
bool storeMailPw
Definition
r3types.h:410
Par::closestDisp
int closestDisp
Definition
r3types.h:382
Par::curlSys
int curlSys
Definition
r3types.h:401
Par::nShpFiles
int nShpFiles
Definition
r3types.h:364
Par::constCurrentD
double constCurrentD
Definition
r3types.h:332
Par::tStep
double tStep
Definition
r3types.h:324
Par::constWindTwd
double constWindTwd
Definition
r3types.h:329
Par::style
int style
Definition
r3types.h:370
Par::waveDisp
int waveDisp
Definition
r3types.h:379
Par::dayEfficiency
double dayEfficiency
Definition
r3types.h:395
Par::threshold
double threshold
Definition
r3types.h:393
Par::motorSpeed
double motorSpeed
Definition
r3types.h:392
Par::nSectors
int nSectors
Definition
r3types.h:335
Par::constWave
double constWave
Definition
r3types.h:330
Par::dashboardUTC
int dashboardUTC
Definition
r3types.h:321
Par::allwaysSea
int allwaysSea
Definition
r3types.h:320
Par::opt
int opt
Definition
r3types.h:323
Par::penalty2
int penalty2
Definition
r3types.h:391
Par::pOr
Pp pOr
Definition
r3types.h:366
Par::speed
int speed
Definition
r3types.h:416
Par::stepIsocDisp
int stepIsocDisp
Definition
r3types.h:388
Par::python
int python
Definition
r3types.h:402
Par::aisDisp
int aisDisp
Definition
r3types.h:386
Par::xWind
double xWind
Definition
r3types.h:396
Par::gribTimeMax
int gribTimeMax
Definition
r3types.h:341
Par::gribTimeStep
int gribTimeStep
Definition
r3types.h:340
Par::staminaVR
double staminaVR
Definition
r3types.h:363
Par::rangeCog
int rangeCog
Definition
r3types.h:326
Par::constCurrentS
double constCurrentS
Definition
r3types.h:331
Par::currentDisp
int currentDisp
Definition
r3types.h:378
Par::open
bool open
Definition
r3types.h:417
Par::startTimeInHours
double startTimeInHours
Definition
r3types.h:365
Par::mostRecentGrib
int mostRecentGrib
Definition
r3types.h:338
Par::dispDms
int dispDms
Definition
r3types.h:376
Par::shpPointsDisp
int shpPointsDisp
Definition
r3types.h:387
Par::windDisp
int windDisp
Definition
r3types.h:377
Par::infoDisp
int infoDisp
Definition
r3types.h:384
Par::cogStep
int cogStep
Definition
r3types.h:325
Point
Structure for SHP and forbid zones.
Definition
r3types.h:88
Point::lat
double lat
Definition
r3types.h:89
Point::lon
double lon
Definition
r3types.h:90
PolMat
polar Matrix description
Definition
r3types.h:201
PolMat::fromJson
bool fromJson
Definition
r3types.h:207
PolMat::maxAll
double maxAll
Definition
r3types.h:204
PolMat::max
double max
Definition
r3types.h:212
PolMat::nLine
int nLine
Definition
r3types.h:205
PolMat::nSail
size_t nSail
Definition
r3types.h:208
PolMat::id
int id
Definition
r3types.h:210
PolMat::nCol
int nCol
Definition
r3types.h:206
Pp
Point in isochrone.
Definition
r3types.h:172
Pp::motor
bool motor
Definition
r3types.h:177
Pp::id
int id
Definition
r3types.h:173
Pp::toIndexWp
int toIndexWp
Definition
r3types.h:179
Pp::vmc
double vmc
Definition
r3types.h:183
Pp::father
int father
Definition
r3types.h:174
Pp::sail
int sail
Definition
r3types.h:176
Pp::dd
double dd
Definition
r3types.h:182
Pp::lat
double lat
Definition
r3types.h:180
Pp::lon
double lon
Definition
r3types.h:181
Pp::amure
int amure
Definition
r3types.h:175
Pp::orthoVmc
double orthoVmc
Definition
r3types.h:184
SailPoint
Point for Sail Route
Definition
r3types.h:227
SailPoint::sail
int sail
Definition
r3types.h:235
SailPoint::w
double w
Definition
r3types.h:245
SailPoint::twd
double twd
Definition
r3types.h:247
SailPoint::amure
int amure
Definition
r3types.h:233
SailPoint::toIndexWp
int toIndexWp
Definition
r3types.h:234
SailPoint::father
int father
Definition
r3types.h:232
SailPoint::tws
double tws
Definition
r3types.h:248
SailPoint::oCap
double oCap
Definition
r3types.h:238
SailPoint::id
int id
Definition
r3types.h:231
SailPoint::v
double v
Definition
r3types.h:244
SailPoint::time
double time
Definition
r3types.h:237
SailPoint::ld
double ld
Definition
r3types.h:241
SailPoint::g
double g
Definition
r3types.h:246
SailPoint::od
double od
Definition
r3types.h:239
SailPoint::stamina
double stamina
Definition
r3types.h:228
SailPoint::sog
double sog
Definition
r3types.h:242
SailPoint::lon
double lon
Definition
r3types.h:230
SailPoint::lat
double lat
Definition
r3types.h:229
SailPoint::lCap
double lCap
Definition
r3types.h:240
SailPoint::motor
bool motor
Definition
r3types.h:236
SailPoint::u
double u
Definition
r3types.h:243
SailRoute
Route description
Definition
r3types.h:279
SailRoute::babordDist
double babordDist
Definition
r3types.h:294
SailRoute::nWayPoints
int nWayPoints
Definition
r3types.h:289
SailRoute::avrGust
double avrGust
Definition
r3types.h:298
SailRoute::maxWave
double maxWave
Definition
r3types.h:303
SailRoute::avrSog
double avrSog
Definition
r3types.h:300
SailRoute::isocTimeStep
double isocTimeStep
Definition
r3types.h:284
SailRoute::nSailChange
int nSailChange
Definition
r3types.h:305
SailRoute::destinationReached
bool destinationReached
Definition
r3types.h:296
SailRoute::avrWave
double avrWave
Definition
r3types.h:299
SailRoute::totDist
double totDist
Definition
r3types.h:291
SailRoute::lastStepDuration
double lastStepDuration
Definition
r3types.h:287
SailRoute::nAmureChange
int nAmureChange
Definition
r3types.h:306
SailRoute::dataTime
long dataTime
Definition
r3types.h:282
SailRoute::duration
double duration
Definition
r3types.h:290
SailRoute::tribordDist
double tribordDist
Definition
r3types.h:293
SailRoute::avrTws
double avrTws
Definition
r3types.h:297
SailRoute::motorDist
double motorDist
Definition
r3types.h:292
SailRoute::n
int n
Definition
r3types.h:285
SailRoute::calculationTime
double calculationTime
Definition
r3types.h:286
SailRoute::maxGust
double maxGust
Definition
r3types.h:302
SailRoute::dataDate
long dataDate
Definition
r3types.h:281
SailRoute::competitorIndex
int competitorIndex
Definition
r3types.h:304
SailRoute::ret
int ret
Definition
r3types.h:295
SailRoute::t
SailPoint * t
Definition
r3types.h:308
SailRoute::nIsoc
int nIsoc
Definition
r3types.h:283
SailRoute::maxTws
double maxTws
Definition
r3types.h:301
WayPointList
Definition
r3types.h:252
WayPointList::n
int n
Definition
r3types.h:253
WayPointList::totLoxoDist
double totLoxoDist
Definition
r3types.h:255
WayPointList::totOrthoDist
double totOrthoDist
Definition
r3types.h:254
WayPoint
Point for way point route.
Definition
r3types.h:217
WayPoint::od
double od
Definition
r3types.h:220
WayPoint::ld
double ld
Definition
r3types.h:222
WayPoint::lCap
double lCap
Definition
r3types.h:223
WayPoint::lon
double lon
Definition
r3types.h:219
WayPoint::oCap
double oCap
Definition
r3types.h:221
WayPoint::lat
double lat
Definition
r3types.h:218
Zone
zone description
Definition
r3types.h:140
Zone::latMin
double latMin
Definition
r3types.h:149
Zone::lonRight
double lonRight
Definition
r3types.h:152
Zone::anteMeridian
bool anteMeridian
Definition
r3types.h:141
Zone::intervalEnd
long intervalEnd
Definition
r3types.h:167
Zone::wellDefined
bool wellDefined
Definition
r3types.h:143
Zone::centreId
long centreId
Definition
r3types.h:144
Zone::intervalBegin
long intervalBegin
Definition
r3types.h:166
Zone::numberOfValues
long numberOfValues
Definition
r3types.h:147
Zone::nTimeStamp
size_t nTimeStamp
Definition
r3types.h:157
Zone::nbLon
long nbLon
Definition
r3types.h:156
Zone::stepUnits
long stepUnits
Definition
r3types.h:148
Zone::editionNumber
long editionNumber
Definition
r3types.h:146
Zone::nDataDate
size_t nDataDate
Definition
r3types.h:158
Zone::lonStep
double lonStep
Definition
r3types.h:154
Zone::nbLat
long nbLat
Definition
r3types.h:155
Zone::latMax
double latMax
Definition
r3types.h:150
Zone::lonLeft
double lonLeft
Definition
r3types.h:151
Zone::nMessage
int nMessage
Definition
r3types.h:145
Zone::intervalLimit
size_t intervalLimit
Definition
r3types.h:168
Zone::latStep
double latStep
Definition
r3types.h:153
Zone::nShortName
size_t nShortName
Definition
r3types.h:161
Zone::allTimeStepOK
bool allTimeStepOK
Definition
r3types.h:142
Zone::nDataTime
size_t nDataTime
Definition
r3types.h:159
r3types.h
Generated by
1.9.8