STFishFinder API  API version 0.0.0, Documentation version 3 -PRELIMINARY-
STFF-Types.h
Go to the documentation of this file.
1 ///
2 /// @file STFF-Types.h
3 ///
4 /// Header file containing enumerations and simple struct types used in the
5 /// %STFishFinder API.
6 /// The type definitions defined in this file reside in the global namespace.
7 ///
8 /// @copyright
9 /// Copyright (c) 2012-2015 Sifferman Technology, LLC. All rights reserved.
10 ///
11 
12 #ifndef STFF_Types_h_
13 #define STFF_Types_h_
14 
15 #ifdef __APPLE__
16 #include <stdint.h>
17 #else
18 #include <cstdint>
19 #endif
20 
21  ////////////////////////////////////////////////////////////////////////////////
22  /// @defgroup global_namespace Global Namespace
23  ///
24  /// Certain parts of the STFishFinder API reside in the global namespace.
25  /// This includes certain enumerations and simple structs, all of which
26  /// are defined as typedefs.
27  ///
28  ////////////////////////////////////////////////////////////////////////////////
29 
30  ////////////////////////////////////////////////////////////////////////////////
31  /// @defgroup global_enums Global Enumerations
32  ///
33  /// These are type definitions for enumerations in the global namespace.
34  ///
35  /// @remarks These have been placed in the global namespace to simplify linking
36  /// with application code written in languages that do not support namespaces.
37  ///
38  /// @ingroup global_namespace
39  ///
40  ////////////////////////////////////////////////////////////////////////////////
41 
42  /// Error codes.
43  ///
44  /// This is a type definition for an enumeration specifying an Error Code
45  /// returned by a STFF::STFishFinder class member function.
46  /// This enumeration resides in the global namespace.
47  ///
48  /// @ingroup global_enums
49  ///
50  typedef enum {
51  FF_ERR_UNKNOWN_ERROR = -999,
52  FF_ERR_INVALID_FREQUENCY, ///< Frequency argument provided was not valid.
53  FF_ERR_INVALID_POINTER, ///< A provided pointer argument was not valid.
54  FF_ERR_ARGUMENT_OUT_OF_RANGE, ///< The value of an argument was not within the allowed range.
55  FF_ERR_BAD_DATABASE, ///< The API encountered an internal error.
56  FF_ERR_API_NOT_INITIALIZED, ///< The requested method may not be called before initializing the API.
57  FF_ERR_API_ALREADY_INITIALIZED, ///< The Hello() function was already called for the present connection.
58  FF_ERR_EXCEPTION_OCCURRED, ///< An exception was thrown and caught within the API.
59  FF_ERR_CANT_CHANGE_CALLBACKS, ///< Function STFF::STFishFinder::SetCallbacks() may not be called if any STFishFinder objects exist.
60  FF_ERR_FEATURE_NOT_AVAILABLE,
61 
62  FF_ERR_NO_ERROR = 0 ///< Successful completion of the method.
63  } FF_Error_t;
64 
65 
66  /// Sonar Frequency options.
67  ///
68  /// This is a type definition for an enumeration specifying a
69  /// sonar frequency context. Two frequencies
70  /// are supported: 50 kHz and 200 kHz.
71  /// This enumeration resides in the global namespace.
72  ///
73  /// @see STFF::valid(FF_Frequency_t)
74  ///
75  /// @ingroup global_enums
76  ///
77  typedef enum {
78  FF_INVALID_FREQUENCY = -1, ///< Invalid frequency or frequency not specified
79  FF_FREQUENCY_200_KHZ, ///< Specifies a 200 kilohertz sonar context.
80  FF_FREQUENCY_50_KHZ, ///< Specifies a 50 kilohertz sonar context.
81  FF_TOTAL_FREQUENCIES
83 
84 
85  /// Depth Units selection.
86  ///
87  /// This is a type definition for an enumeration specifying distance units
88  /// (feet, meters, or fathoms) used with an associated depth value.
89  /// This enumeration resides in the global namespace.
90  ///
91  /// @see STFF::ConvertDepth()
92  /// @see STFF::valid(FF_DepthUnits_t)
93  ///
94  /// @ingroup global_enums
95  ///
96  typedef enum {
97  FF_INVALID_DEPTH_UNITS = -1,
98  FF_DEPTH_UNITS_FEET, ///< Depth units are Feet
99  FF_DEPTH_UNITS_METERS, ///< Depth units are Meters
100  FF_DEPTH_UNITS_FATHOMS, ///< Depth units are Fathoms
101  FF_TOTAL_DEPTH_UNITS
102  } FF_DepthUnits_t;
103 
104 
105  /// Speed Units selection.
106  ///
107  /// This is a type definition for an enumeration specifying speed units
108  /// (knots, miles per hour, or kilometers per hour) used with an
109  /// associated speed-through-water value.
110  /// This enumeration resides in the global namespace.
111  ///
112  /// @see STFF::ConvertSpeed()
113  /// @see STFF::valid(FF_SpeedUnits_t)
114  ///
115  /// @ingroup global_enums
116  ///
117  typedef enum {
118  FF_INVALID_SPEED_UNITS = -1,
119  FF_SPEED_UNITS_KNOTS, ///< Speed units are knots (nautical miles per hour)
120  FF_SPEED_UNITS_MPH, ///< Speed units are statute miles per hour
121  FF_SPEED_UNITS_KPH, ///< Speed units are kilometers per hour
122  FF_TOTAL_SPEED_UNITS
123  } FF_SpeedUnits_t;
124 
125 
126  /// Temperature Units selection.
127  ///
128  /// This is a type definition for an enumeration specifying temperature units
129  /// (degrees Celsius or degrees Fahrenheit) used with an associated
130  /// temperature value.
131  /// This enumeration resides in the global namespace.
132  ///
133  /// @see STFF::ConvertTemperature()
134  /// @see STFF::valid(FF_TemperatureUnits_t)
135  ///
136  /// @ingroup global_enums
137  ///
138  typedef enum {
139  FF_INVALID_TEMPERATURE_UNITS = -1,
140  FF_TEMPERATURE_UNITS_CELSIUS, ///< Temperature units are degrees Celsius
141  FF_TEMPERATURE_UNITS_FAHRENHEIT, ///< Temperature units are degrees Fahrenheit
142  FF_TOTAL_TEMPERATURE_UNITS
144 
145 
146  /// Setting Type options.
147  ///
148  /// This is a type definition for an enumeration specifying a Setting type
149  /// or a Master Setting type.
150  /// This enumeration resides in the global namespace.
151  ///
152  /// @see STFF::valid(FF_SettingType_t)
153  /// @see STFF::STFishFinder::Hello()
154  /// @see @ref setters
155  ///
156  /// @ingroup global_enums
157  ///
158  typedef enum {
159  FF_INVALID_SETTING_TYPE = -1,
160  FF_SETTING_TYPE_API_READY, ///< Not a setting type per se, but is provided to the onSettingChanged callback when the API is ready to service calls to setter and getter functions
161  FF_SETTING_TYPE_CONTROL, ///< Specifies the setting type for Control messages. @see STFF::STFishFinder::Control()
162  FF_SETTING_TYPE_BIT_DEPTH, ///< Specifies the setting type for Bit Depth. @see STFF::STFishFinder::SetBitDepth()
163  FF_SETTING_TYPE_NUM_INPUT_SAMPLES, ///< Specifies the setting type for Number of Input Samples. @see STFF::STFishFinder::SetNumInputSamples()
164  FF_SETTING_TYPE_FREQUENCY_MODE, ///< Specifies the setting type for Frequency Mode. @see STFF::STFishFinder::SetFrequencyMode()
165  FF_SETTING_TYPE_DEPTH_UNITS, ///< Specifies the setting type for Depth Units. @see STFF::STFishFinder::SetDepthUnits()
166  FF_SETTING_TYPE_AUTO_GAIN_SETTING, ///< Specifies the setting type for Auto Gain. @see STFF::STFishFinder::SetAutoGainSetting()
167  FF_SETTING_TYPE_WATER_FILTER_SETTING, ///< Specifies the setting type for Water Filter. @see STFF::STFishFinder::SetWaterFilterSetting()
168  FF_SETTING_TYPE_AUTO_RANGE_SETTING, ///< Specifies the setting type for Auto Range. @see STFF::STFishFinder::SetAutoRangeSetting()
169  FF_SETTING_TYPE_RANGE, ///< Specifies the setting type for Range. @see STFF::STFishFinder::SetRange()
170  FF_SETTING_TYPE_GAIN, ///< Specifies the setting type for Gain. @see STFF::STFishFinder::SetGain()
171  FF_SETTING_TYPE_GAIN_OFFSET, ///< Specifies the setting type for Gain Offset. @see STFF::STFishFinder::SetGainOffset()
172  FF_SETTING_TYPE_GAIN_COLOR_OFFSETS, ///< Specifies the setting type for Gain Color Offsets. @see STFF::STFishFinder::SetGainColorOffsets()
173  FF_SETTING_TYPE_FSTC, ///< Specifies the setting type for FSTC (Fishfinder Sensitivity Time Constant). @see STFF::STFishFinder::SetFstc()
174  FF_SETTING_TYPE_FISH_ID_SETTING, ///< Specifies the setting type for Fish ID. @see STFF::STFishFinder::SetFishIdSetting()
175  FF_SETTING_TYPE_FISH_ALARM_SETTING, ///< Specifies the setting type for Fish Alarm. @see STFF::STFishFinder::SetFishAlarmSetting()
176  FF_SETTING_TYPE_MASTER_DEPTH_ALARM_SETTING, ///< Specifies the master setting type for Depth Alarm. @see STFF::STFishFinder::SetDepthAlarmSetting()
177  FF_SETTING_TYPE_MASTER_SPEED_PPNM, ///< Specifies the master setting type for Speed Pulses Per Nautical Mile. @see STFF::STFishFinder::SetSpeedPpnm()
178  FF_SETTING_TYPE_MASTER_TEMPERATURE_OFFSET, ///< Specifies the master setting type for Temperature Offset. @see STFF::STFishFinder::SetTemperatureOffset()
179  FF_SETTING_TYPE_MASTER_DSTC, ///< Specifies the master setting type for DSTC (Depth Sensitivity Time Constant). @see STFF::STFishFinder::SetDstc()
180  FF_SETTING_TYPE_MASTER_WATER_TYPE, ///< Specifies the master setting type for Water Type (for establishing speed of sound constant). @see STFF::STFishFinder::SetWaterType()
181  FF_TOTAL_SETTING_TYPES
183 
184 
185  /// Setting Status options.
186  ///
187  /// This is a type definition for an enumeration specifying the status of
188  /// a setting item reported by an API setting getter member function.
189  /// This enumeration resides in the global namespace.
190  ///
191  /// @ingroup global_enums
192  ///
193  typedef enum {
194  FF_SETTING_STATUS_INVALID = 0, ///< The associated setting is not valid, and should not be used.
195  FF_SETTING_STATUS_PENDING, ///< The associated setting has been sent to the black box, but a confirmation has not yet been received.
196  FF_SETTING_STATUS_VALID, ///< The associated setting is valid.
198 
199 
200  /// Data Type options.
201  ///
202  /// This is a type definition for an enumeration specifying a Data Type,
203  /// in reference to data messages transmitted from a black box fish finder.
204  /// This enumeration resides in the global namespace.
205  ///
206  /// @see STFF::valid(FF_DataType_t)
207  ///
208  /// @ingroup global_enums
209  ///
210  typedef enum {
211  FF_INVALID_DATA_TYPE = -1,
212  FF_DATA_TYPE_DEPTH, ///< Specifies the Depth data type
213  FF_DATA_TYPE_SPEED, ///< Specifies the Speed data type
214  FF_DATA_TYPE_TEMPERATURE, ///< Specifies the Temperature data type
215  FF_DATA_TYPE_BATTERY_VOLTAGE, ///< Specifies the Battery Voltage data type
216  FF_DATA_TYPE_IMAGE, ///< Specifies the Fish Finder Image data type
217  FF_DATA_TYPE_FISH, ///< Specifies the Fish data type
218  FF_DATA_TYPE_DEPTH_ALARM, ///< Specifies the Depth Alarm data type
219  FF_TOTAL_DATA_TYPES
220  } FF_DataType_t;
221 
222 
223  /// Data Status options.
224  ///
225  /// This is a type definition for an enumeration specifying the status of
226  /// a data item reported by an API data getter member function.
227  /// This enumeration resides in the global namespace.
228  ///
229  /// @ingroup global_enums
230  ///
231  typedef enum {
232  FF_DATA_STATUS_INVALID = 0, ///< The associated data item is not valid, and should not be relied upon.
233  FF_DATA_STATUS_VALID, ///< The associated data item is valid and usable.
234  FF_DATA_STATUS_SIMULATED, ///< The associated data item is simulated. If displayed to the user, it must be identified as being a simulation.
235  FF_DATA_STATUS_PLAYBACK_VALID ///< The associated data item was generated during a replay of a previously recorded session, and when originally recorded, was valid data. It does not represent current data.
236  } FF_DataStatus_t;
237 
238 
239  /// Control Command options.
240  ///
241  /// This is a type definition for an enumeration specifying valid commands
242  /// for use with the API member function STFF::STFishFinder::Control().
243  /// This enumeration resides in the global namespace.
244  ///
245  /// @note
246  /// -# The values in this enumeration apply to the first parameter (@p command)
247  /// in the call to STFF::STFishFinder::Control().
248  /// -# At present only one value is supported:
249  /// ::FF_CONTROL_COMMAND_ENABLE_BLACK_BOX_MESSAGES.
250  ///
251  /// @see STFF::STFishFinder::Control()
252  /// @see STFF::valid(FF_ControlCommand_t)
253  /// @see FF_ControlEnableBlackBoxMsg_t
254  ///
255  /// @ingroup global_enums
256  ///
257  typedef enum {
258  FF_INVALID_CONTROL_COMMAND = -1,
259  FF_CONTROL_COMMAND_ENABLE_BLACK_BOX_MESSAGES, ///< Command to instruct the black box to enable or disable transmission of certain data messages
260  FF_TOTAL_CONTROL_COMMANDS
262 
263 
264  /// Control command parameter options for use with the
265  /// ::FF_CONTROL_COMMAND_ENABLE_BLACK_BOX_MESSAGES option when
266  /// calling STFF::STFishFinder::Control().
267  ///
268  /// This is a type definition for an enumeration specifying valid
269  /// mask values that are each used to enable periodic transmission
270  /// by the black box of a specific data message. These apply only
271  /// when calling STFF::STFishFinder::Control() with the
272  /// ::FF_CONTROL_COMMAND_ENABLE_BLACK_BOX_MESSAGES value in the
273  /// first parameter. The selected values in this enumeration
274  /// are to be logically ORed together and provided in the second
275  /// parameter (pParam) in the call to STFF::STFishFinder::Control().
276  /// Mask values that are omitted will result in the corresponding data
277  /// message becoming disabled.
278  ///
279  /// @remarks
280  /// In many systems, it is anticipated that all messages will be enabled.
281  /// In this case, the ::FF_ENABLE_ALL_MESSAGES value may be used.
282  ///
283  /// @see STFF::STFishFinder::Control()
284  /// @see FF_ControlCommand_t
285  ///
286  /// @ingroup global_enums
287  ///
288  typedef enum {
289  FF_ENABLE_MESSAGE_DEPTH = 1, ///< Enable periodic transmission of Depth data message
290  FF_ENABLE_MESSAGE_SPEED = 2, ///< Enable periodic transmission of Speed data message
291  FF_ENABLE_MESSAGE_TEMPERATURE = 4, ///< Enable periodic transmission of Temperature data message
292  FF_ENABLE_MESSAGE_BATTERY_VOLTAGE = 8, ///< Enable periodic transmission of Battery Voltage data message
293  FF_ENABLE_MESSAGE_IMAGE = 16, ///< Enable periodic transmission of Image data message
294  FF_ENABLE_MESSAGE_FISH = 32, ///< Enable transmission of Fish data message on detection of possible fish target
295  FF_ENABLE_MESSAGE_DEPTH_ALARM = 64, ///< Enable transmission of Depth Alarm state message on every state change
296  FF_ENABLE_ALL_MESSAGES = 127 ///< Enable transmission of all messages
298 
299 
300  /// Sonar Frequency Mode options.
301  ///
302  /// This is a type definition for an enumeration specifying sonar
303  /// frequency(ies) to be used for the image data provided by the
304  /// sounder electronics. Three options are provided: 200 kHz, 50 kHz,
305  /// and Dual mode.
306  /// This enumeration resides in the global namespace.
307  ///
308  /// @see STFF::STFishFinder::SetFrequencyMode()
309  /// @see STFF::STFishFinder::GetFrequencyMode()
310  /// @see STFF::valid(FF_FrequencyMode_t)
311  ///
312  /// @ingroup global_enums
313  ///
314  typedef enum {
315  FF_INVALID_FREQUENCY_MODE = -1,
316  FF_FREQUENCY_MODE_200_KHZ, ///< Specifies that the provided sonar image data is to be at the 200 kHz frequency.
317  FF_FREQUENCY_MODE_50_KHZ, ///< Specifies that the provided sonar image data is to be at the 50 kHz frequency.
318  FF_FREQUENCY_MODE_DUAL, ///< Specifies that the provided sonar image data is to alternate between the 200 kHz and 50 kHz frequencies.
319  FF_TOTAL_FREQUENCY_MODES
321 
322 
323  /// @cond
324  /// ^^^^^ Do not include documentation for this typedef
325  ///
326  /// Sampling Bit Depth options.
327  ///
328  /// This is a type definition for an enumeration specifying a
329  /// sampling bit depth used for image data. Presently, only a bit depth
330  /// of 4 bits (16 intensity levels) is supported.
331  /// This enumeration resides in the global namespace.
332  ///
333  /// @see STFF::STFishFinder::SetBitDepth()
334  /// @see STFF::STFishFinder::GetBitDepth()
335  ///
336  /// @ingroup global_enums
337  ///
338  typedef enum {
339  FF_INVALID_BIT_DEPTH = -1,
340  FF_BIT_DEPTH_4, ///< Bit depth of 4 bits (16 intensity levels)
341  FF_TOTAL_BIT_DEPTHS
342  } FF_BitDepth_t;
343  /// @endcond
344 
345 
346  /// Auto Range setting options.
347  ///
348  /// This is a type definition for an enumeration specifying an
349  /// Auto Range setting. Three settings are provided: Manual Range,
350  /// Auto Range, and Auto Shift.
351  /// This enumeration resides in the global namespace.
352  ///
353  /// @see STFF::STFishFinder::SetAutoRangeSetting()
354  /// @see STFF::STFishFinder::GetAutoRangeSetting()
355  /// @see STFF::valid(FF_AutoRangeSetting_t)
356  ///
357  /// @ingroup global_enums
358  ///
359  typedef enum {
360  FF_INVALID_AUTO_RANGE_SETTING = -1,
361  FF_AUTO_RANGE_SETTING_MANUAL, ///< The shallow and deep range limits are set manually, using function STFishFinder::SetRange().
362  FF_AUTO_RANGE_SETTING_AUTO_RANGE, ///< The shallow range limit is fixed at 0, and the deep range limit is adjusted automatically to keep the seabed visible.
363  FF_AUTO_RANGE_SETTING_AUTO_SHIFT, ///< The delta between the shallow and deep range limits is fixed, and they are adjusted automatically in tandem to keep the seabed visible.
364  FF_TOTAL_AUTO_RANGE_SETTINGS
366 
367 
368  /// Auto Gain setting options.
369  ///
370  /// This is a type definition for an enumeration specifying an
371  /// Auto Gain setting. Two settings are provided: Manual Gain and Auto Gain.
372  /// This enumeration resides in the global namespace.
373  ///
374  /// @see STFF::STFishFinder::SetAutoGainSetting()
375  /// @see STFF::STFishFinder::GetAutoGainSetting()
376  /// @see STFF::valid(FF_AutoGainSetting_t)
377  ///
378  /// @ingroup global_enums
379  ///
380  typedef enum {
381  FF_INVALID_AUTO_GAIN_SETTING = -1,
382  FF_AUTO_GAIN_SETTING_MANUAL, ///< Gain setting is fixed and specified by calling SetGain
383  FF_AUTO_GAIN_SETTING_AUTO, ///< Gain setting is adjusted automatically to maximize the visible target-to-clutter ratio
384  FF_TOTAL_AUTO_GAIN_SETTINGS
386 
387 
388  ////////////////////////////////////////////////////////////////////////
389  /// @cond
390  /// ^^^^^ Do not include documentation for this function
391  ///
392  /// Water Type selection.
393  ///
394  /// This is a type definition for an enumeration specifying a water type
395  /// for the purpose of selecting an appropriate constant for
396  /// speed of sound through water.
397  /// This enumeration resides in the global namespace.
398  ///
399  /// @ingroup global_enums
400  ///
401  typedef enum {
402  FF_INVALID_WATER_TYPE = -1,
403  FF_WATER_TYPE_FRESHWATER, ///< Speed of sound constant set to nominal value for freshwater
404  FF_WATER_TYPE_SALTWATER, ///< Speed of sound constant set to nominal value for saltwater
405  FF_WATER_TYPE_CUSTOM,
406  FF_TOTAL_WATER_TYPES
407  } FF_WaterType_t;
408  /// @endcond
409 
410 
411  /// Depth Alarm Type selection.
412  ///
413  /// This is a type definition for an enumeration specifying a Depth Alarm Type
414  /// (shallow alarm or deep alarm).
415  /// This enumeration resides in the global namespace.
416  ///
417  /// @see STFF::STFishFinder::GetDepthAlarmSetting()
418  /// @see STFF::STFishFinder::SetDepthAlarmSetting()
419  /// @see STFF::valid(FF_DepthAlarmType_t)
420  ///
421  /// @ingroup global_enums
422  ///
423  typedef enum {
424  FF_INVALID_DEPTH_ALARM_TYPE = -1,
425  FF_DEPTH_ALARM_TYPE_SHALLOW, ///< Specifies the Shallow depth alarm type
426  FF_DEPTH_ALARM_TYPE_DEEP, ///< Specifies the Deep depth alarm type
427  FF_TOTAL_DEPTH_ALARM_TYPES
429 
430 
431  /// Depth Alarm State options.
432  ///
433  /// This is a type definition for an enumeration specifying a Depth Alarm State
434  /// (disabled, normal, active, or silenced).
435  /// This enumeration resides in the global namespace.
436  ///
437  /// @see STFF::STFishFinder::GetDepthAlarmState()
438  /// @see STFF::STFishFinder::SilenceDepthAlarm()
439  /// @see STFF::valid(FF_DepthAlarmState_t)
440  /// @see STFF::STFishFinder::Callback_DepthAlarmStateChange_t
441  ///
442  /// @ingroup global_enums
443  ///
444  typedef enum {
445  FF_INVALID_DEPTH_ALARM_STATE = -1,
446  FF_DEPTH_ALARM_STATE_DISABLED, ///< Specifies a depth alarm state of Disabled (depth alarm is disabled)
447  FF_DEPTH_ALARM_STATE_NORMAL, ///< Specifies a depth alarm state of Normal (depth alarm is enabled, but an alarm condition is not present)
448  FF_DEPTH_ALARM_STATE_ACTIVE, ///< Specifies a depth alarm state of Active (depth alarm is enabled, an alarm condition is present, and alarm is sounding)
449  FF_DEPTH_ALARM_STATE_SILENCED, ///< Specifies a depth alarm state of Silenced (depth alarm is enabled, an alarm condition is present, but alarm has been temporarily silenced)
450  FF_TOTAL_DEPTH_ALARM_STATES
452 
453 
454  ////////////////////////////////////////////////////////////////////////
455  /// @cond
456  /// ^^^^^ Do not include documentation for this yet
457  ///
458  /// Fish Alarm Setting selection.
459  ///
460  /// @see STFF::valid(FF_FishAlarmSetting_t)
461  ///
462  /// @ingroup global_enums
463  ///
464  typedef enum {
465  FF_INVALID_FISH_ALARM_SETTING = -1,
466  FF_FISH_ALARM_SETTING_DISABLED, ///< tbd
467  FF_FISH_ALARM_SETTING_ENABLED, ///< tbd
468  FF_TOTAL_FISH_ALARM_SETTINGS
469  } FF_FishAlarmSetting_t;
470  /// @endcond
471 
472 
473  /// API Status selection.
474  ///
475  /// This is a type definition for an enumeration specifying the status of
476  /// the STFishFinder API.
477  /// This enumeration resides in the global namespace.
478  ///
479  /// @see STFF::STFishFinder::GetApiStatus()
480  /// @see STFF::valid(FF_ApiStatus_t)
481  ///
482  /// @ingroup global_enums
483  ///
484  typedef enum {
485  FF_INVALID_API_STATUS = -1,
486  FF_API_STATUS_READY, ///< Initialization has completed; OK to call getters/setters
487  FF_API_STATUS_NOT_INITIALIZED, ///< Initialization not started; please call the Hello() function
488  FF_API_STATUS_INITIALIZING_PLEASE_WAIT, ///< Hello() has been called; now waiting for initialization to complete
489  FF_TOTAL_API_STATUSES
490  } FF_ApiStatus_t;
491 
492 
493  ////////////////////////////////////////////////////////////////////////////////
494  /// @defgroup global_structs Global Structures
495  ///
496  /// These are type definitions for simple structs in the global namespace.
497  ///
498  /// @remarks These have been placed in the global namespace to simplify linking
499  /// with application code written in languages that do not support namespaces.
500  ///
501  /// @ingroup global_namespace
502  ///
503  ////////////////////////////////////////////////////////////////////////////////
504 
505 
506  /// @struct FF_TemperatureData_t
507  ///
508  /// Temperature Data structure.
509  ///
510  /// This is a type definition for a simple struct containing a
511  /// water temperature reading.
512  /// This struct resides in the global namespace.
513  ///
514  /// The temperature member of the struct is in hundredths of a degree
515  /// (Celsius or Fahrenheit, depending on the value of the units member).
516  /// For example, a value of 2510 would represent 25.10 degrees.
517  ///
518  /// @see STFF::STFishFinder::GetTemperature()
519  ///
520  /// @ingroup global_structs
521  ///
522  typedef struct {
523  FF_TemperatureUnits_t units; ///< Units (degrees Celsius or degrees Fahrenheit) for the provided temperature value
524  int16_t temperature; ///< Temperature value, in hundredths of the specified units
525  FF_DataStatus_t status; ///< Status of the provided temperature value (valid/invalid, simulated, or log playback)
527 
528 
529  /// @struct FF_SpeedData_t
530  ///
531  /// Speed Data structure.
532  ///
533  /// This is a type definition for a simple struct containing a
534  /// speed-through-water reading.
535  /// This struct resides in the global namespace.
536  ///
537  /// The speed member of the struct is in hundredths of a unit
538  /// (knots, mph, or kph, depending on the value of the units member).
539  /// For example, a value of 1020 would represent 10.20 knots (or mph, or kph).
540  ///
541  /// @see STFF::STFishFinder::GetSpeed()
542  ///
543  /// @ingroup global_structs
544  ///
545  typedef struct {
546  FF_SpeedUnits_t units; ///< Units (knots, mph, or kph) for the provided speed value
547  uint16_t speed; ///< Speed value, in hundredths of the specified units
548  FF_DataStatus_t status; ///< Status of the provided speed value (valid/invalid, simulated, or log playback)
549  } FF_SpeedData_t;
550 
551 
552  /// Depth Data structure.
553  ///
554  /// This is a type definition for a simple struct containing a depth reading.
555  /// This struct resides in the global namespace.
556  ///
557  /// The depth member of the struct is in hundredths of a unit
558  /// (feet, meters, or fathoms, depending on the value of the units member).
559  /// For example, a value of 730 would represent 7.30 feet (or meters, or
560  /// fathoms).
561  ///
562  /// @see STFF::STFishFinder::GetDepth()
563  ///
564  /// @ingroup global_structs
565  ///
566  typedef struct {
567  FF_DepthUnits_t units; ///< Units (feet, meters, or fathoms) for the provided depth value
568  uint32_t depth; ///< Depth value, in hundredths of the specified units
569  FF_DataStatus_t status; ///< Status of the provided depth value (valid/invalid, simulated, or log playback)
570  } FF_DepthData_t;
571 
572 
573  /// Battery Voltage Data structure.
574  ///
575  /// This is a type definition for a simple struct containing a battery voltage
576  /// reading.
577  /// This struct resides in the global namespace.
578  ///
579  /// The voltage member of the struct is in hundredths of a volt.
580  /// For example, a value of 1250 would represent 12.50 volts.
581  ///
582  /// @see STFF::STFishFinder::GetBatteryVoltage()
583  ///
584  /// @ingroup global_structs
585  ///
586  typedef struct {
587  uint16_t voltage; ///< Voltage of the battery used to power the black box fish finder, in hundredths of a volt
588  FF_DataStatus_t status; ///< Status of the provided battery voltage value (valid/invalid, simulated, or log playback)
590 
591 
592  /// Fish Data structure.
593  ///
594  /// This is a type definition for a simple struct containing details
595  /// regarding a detected "possible fish."
596  /// This struct resides in the global namespace.
597  ///
598  /// When the Fish ID feature is enabled, the black box will perform
599  /// heuristics to attempt to detect fish targets in the received signal.
600  /// When the black box decides that a given monitored structure meets
601  /// the qualifications required to be declared a possible fish target,
602  /// it sends the detailed data regarding the possible fish target to the
603  /// display device using this struct.
604  ///
605  /// @todo The present contents of the ::FF_FishData_t struct
606  /// are only tentative; these need to be firmed up.
607  ///
608  /// @see STFF::STFishFinder::SetFishIdSetting()
609  /// @see STFF::STFishFinder::GetFishIdSetting()
610  /// @see FF_FishIdSetting_t
611  ///
612  /// @ingroup global_structs
613  ///
614  typedef struct {
615  FF_DepthUnits_t units; ///< Units (feet, meters, or fathoms) for the provided depth of the target
616  uint32_t depth; ///< Depth of target, in hundredths of the specified units
617  FF_Frequency_t frequency; ///< Frequency context in which the target was detected
618  uint16_t size; ///< Relative size of target
619  uint16_t intensity; ///< Relative intensity of target
620  FF_DataStatus_t status; ///< Status of the data in this struct (valid/invalid, simulated, or log playback)
621  } FF_FishData_t;
622 
623 
624  /// Range Setting structure.
625  ///
626  /// This is a type definition for a simple struct containing a fish finder
627  /// range setting.
628  /// This struct resides in the global namespace.
629  ///
630  /// The rangeShallow and rangeDeep members of the struct are in hundredths
631  /// of a unit (feet, meters, or fathoms, depending on the value of the
632  /// units member). For example, a value of 2000 would represent
633  /// 20.00 feet (or meters, or fathoms).
634  ///
635  /// @see STFF::STFishFinder::SetRange()
636  /// @see STFF::STFishFinder::GetRange()
637  ///
638  /// @ingroup global_structs
639  ///
640  typedef struct {
641  FF_DepthUnits_t units; ///< Units (feet, meters, or fathoms) for the provided rangeShallow and rangeDeep values
642  uint32_t rangeShallow; ///< Depth corresponding to the first sample in the image buffer, in hundredths of the specified units
643  uint32_t rangeDeep; ///< Depth corresponding to the last sample in the image buffer, in hundredths of the specified units
645 
646 
647  /// FSTC Setting structure.
648  ///
649  /// This is a type definition for a simple struct containing a FSTC
650  /// (Fishfinder Sensitivity Time Constant) setting.
651  /// This struct resides in the global namespace.
652  ///
653  /// @see STFF::STFishFinder::SetFSTC()
654  /// @see STFF::STFishFinder::GetFstc()
655  ///
656  /// @ingroup global_structs
657  ///
658  typedef struct {
659  uint16_t fsts; ///< Magnitude of gain attenuation at the start of the FSTC ramp at the surface of the transducer
660  uint16_t fstd; ///< Depth, in tenths of a meter, at the end of the FSTC ramp
662 
663 
664  /// DSTC Setting structure.
665  ///
666  /// This is a type definition for a simple struct containing a DSTC
667  /// (Depth Sensitivity Time Constant) setting.
668  /// This struct resides in the global namespace.
669  ///
670  /// @see STFF::STFishFinder::SetDSTC()
671  /// @see STFF::STFishFinder::GetDstc()
672  ///
673  /// @ingroup global_structs
674  ///
675  typedef struct {
676  uint16_t dsts; ///< Magnitude of gain attenuation at the start of the DSTC ramp at the surface of the transducer
677  uint16_t dstd; ///< Depth, in tenths of a meter, at the end of the DSTC ramp
679 
680 
681  /// Fish ID Setting structure.
682  ///
683  /// This is a type definition for a simple struct containing a Fish ID setting.
684  /// This struct resides in the global namespace.
685  ///
686  /// @todo The present contents of the ::FF_FishIdSetting_t struct
687  /// are only tentative; these need to be firmed up.
688  ///
689  /// @see STFF::STFishFinder::SetFishIdSetting()
690  /// @see STFF::STFishFinder::GetFishIdSetting()
691  /// @see FF_FishData_t
692  ///
693  /// @ingroup global_structs
694  ///
695  typedef struct {
696  bool enabled;
697  uint16_t threshold;
699 
700 
701  ////////////////////////////////////////////////////////////////////////
702  /// @cond
703  /// ^^^^^ Do not include documentation for this struct
704  ///
705  /// Water Filter Setting structure.
706  ///
707  /// This is a type definition for a simple struct containing a
708  /// Water Filter setting.
709  /// This struct resides in the global namespace.
710  ///
711  /// @see STFF::STFishFinder::SetWaterFilterSetting()
712  /// @see STFF::STFishFinder::GetWaterFilterSetting()
713  ///
714  /// @ingroup global_structs
715  ///
716  typedef struct {
717  bool enabled;
718  } FF_WaterFilterSetting_t;
719  /// @endcond
720 
721 
722  ////////////////////////////////////////////////////////////////////////
723  /// @cond
724  /// ^^^^^ Do not include documentation for this struct
725  ///
726  /// POST Result structure.
727  ///
728  /// This is a type definition for a simple struct containing results of a
729  /// Power-On Self Test operation.
730  /// This struct resides in the global namespace.
731  ///
732  /// @ingroup global_structs
733  ///
734  typedef struct {
735  // tbd
736  int dummy;
737  } FF_PostResult_t;
738  /// @endcond
739 
740 
741 #endif // defined(STFF_Types_h_)
742 
743 
FF_DepthUnits_t
Depth Units selection.
Definition: STFF-Types.h:96
Specifies the setting type for Water Filter.
Definition: STFF-Types.h:167
Specifies the master setting type for Depth Alarm.
Definition: STFF-Types.h:176
uint16_t fstd
Depth, in tenths of a meter, at the end of the FSTC ramp.
Definition: STFF-Types.h:660
Specifies the master setting type for Water Type (for establishing speed of sound constant)...
Definition: STFF-Types.h:180
uint32_t rangeDeep
Depth corresponding to the last sample in the image buffer, in hundredths of the specified units...
Definition: STFF-Types.h:643
uint16_t speed
Speed value, in hundredths of the specified units.
Definition: STFF-Types.h:547
The shallow range limit is fixed at 0, and the deep range limit is adjusted automatically to keep the...
Definition: STFF-Types.h:362
Frequency argument provided was not valid.
Definition: STFF-Types.h:52
Specifies the Deep depth alarm type.
Definition: STFF-Types.h:426
Specifies the setting type for Gain Color Offsets.
Definition: STFF-Types.h:172
The associated data item was generated during a replay of a previously recorded session, and when originally recorded, was valid data. It does not represent current data.
Definition: STFF-Types.h:235
FF_DepthUnits_t units
Units (feet, meters, or fathoms) for the provided rangeShallow and rangeDeep values.
Definition: STFF-Types.h:641
Battery Voltage Data structure.
Definition: STFF-Types.h:586
Specifies the master setting type for Temperature Offset.
Definition: STFF-Types.h:178
Specifies a 200 kilohertz sonar context.
Definition: STFF-Types.h:79
The requested method may not be called before initializing the API.
Definition: STFF-Types.h:56
DSTC Setting structure.
Definition: STFF-Types.h:675
Specifies the setting type for Number of Input Samples.
Definition: STFF-Types.h:163
Specifies the Depth Alarm data type.
Definition: STFF-Types.h:218
Specifies the setting type for Control messages.
Definition: STFF-Types.h:161
FF_Frequency_t frequency
Frequency context in which the target was detected.
Definition: STFF-Types.h:617
FF_DepthAlarmState_t
Depth Alarm State options.
Definition: STFF-Types.h:444
FF_SpeedUnits_t
Speed Units selection.
Definition: STFF-Types.h:117
FF_SettingStatus_t
Setting Status options.
Definition: STFF-Types.h:193
Speed units are kilometers per hour.
Definition: STFF-Types.h:121
Gain setting is adjusted automatically to maximize the visible target-to-clutter ratio.
Definition: STFF-Types.h:383
FF_DataStatus_t status
Status of the provided temperature value (valid/invalid, simulated, or log playback) ...
Definition: STFF-Types.h:525
FF_DataStatus_t status
Status of the provided battery voltage value (valid/invalid, simulated, or log playback) ...
Definition: STFF-Types.h:588
The associated setting has been sent to the black box, but a confirmation has not yet been received...
Definition: STFF-Types.h:195
uint16_t voltage
Voltage of the battery used to power the black box fish finder, in hundredths of a volt...
Definition: STFF-Types.h:587
Gain setting is fixed and specified by calling SetGain.
Definition: STFF-Types.h:382
uint16_t intensity
Relative intensity of target.
Definition: STFF-Types.h:619
The value of an argument was not within the allowed range.
Definition: STFF-Types.h:54
Specifies the setting type for Gain Offset.
Definition: STFF-Types.h:171
uint32_t rangeShallow
Depth corresponding to the first sample in the image buffer, in hundredths of the specified units...
Definition: STFF-Types.h:642
Depth units are Meters.
Definition: STFF-Types.h:99
FF_DataStatus_t status
Status of the data in this struct (valid/invalid, simulated, or log playback)
Definition: STFF-Types.h:620
Enable periodic transmission of Temperature data message.
Definition: STFF-Types.h:291
Specifies the setting type for Gain.
Definition: STFF-Types.h:170
Depth units are Fathoms.
Definition: STFF-Types.h:100
Specifies the setting type for FSTC (Fishfinder Sensitivity Time Constant).
Definition: STFF-Types.h:173
uint16_t fsts
Magnitude of gain attenuation at the start of the FSTC ramp at the surface of the transducer...
Definition: STFF-Types.h:659
Enable periodic transmission of Speed data message.
Definition: STFF-Types.h:290
Specifies the setting type for Depth Units.
Definition: STFF-Types.h:165
Speed units are statute miles per hour.
Definition: STFF-Types.h:120
An exception was thrown and caught within the API.
Definition: STFF-Types.h:58
Specifies the setting type for Frequency Mode.
Definition: STFF-Types.h:164
FF_ApiStatus_t
API Status selection.
Definition: STFF-Types.h:484
FF_DepthUnits_t units
Units (feet, meters, or fathoms) for the provided depth value.
Definition: STFF-Types.h:567
Specifies the Fish Finder Image data type.
Definition: STFF-Types.h:216
Specifies the setting type for Fish ID.
Definition: STFF-Types.h:174
uint16_t dstd
Depth, in tenths of a meter, at the end of the DSTC ramp.
Definition: STFF-Types.h:677
Specifies a depth alarm state of Normal (depth alarm is enabled, but an alarm condition is not presen...
Definition: STFF-Types.h:447
Specifies the Shallow depth alarm type.
Definition: STFF-Types.h:425
FF_DataStatus_t
Data Status options.
Definition: STFF-Types.h:231
FF_DepthAlarmType_t
Depth Alarm Type selection.
Definition: STFF-Types.h:423
FF_Error_t
Error codes.
Definition: STFF-Types.h:50
Specifies a depth alarm state of Silenced (depth alarm is enabled, an alarm condition is present...
Definition: STFF-Types.h:449
FF_TemperatureUnits_t
Temperature Units selection.
Definition: STFF-Types.h:138
Specifies the Depth data type.
Definition: STFF-Types.h:212
Not a setting type per se, but is provided to the onSettingChanged callback when the API is ready to ...
Definition: STFF-Types.h:160
Specifies that the provided sonar image data is to alternate between the 200 kHz and 50 kHz frequenci...
Definition: STFF-Types.h:318
The associated data item is valid and usable.
Definition: STFF-Types.h:233
Specifies that the provided sonar image data is to be at the 200 kHz frequency.
Definition: STFF-Types.h:316
Command to instruct the black box to enable or disable transmission of certain data messages...
Definition: STFF-Types.h:259
The Hello() function was already called for the present connection.
Definition: STFF-Types.h:57
Specifies the Speed data type.
Definition: STFF-Types.h:213
Fish Data structure.
Definition: STFF-Types.h:614
uint16_t dsts
Magnitude of gain attenuation at the start of the DSTC ramp at the surface of the transducer...
Definition: STFF-Types.h:676
Function STFF::STFishFinder::SetCallbacks() may not be called if any STFishFinder objects exist...
Definition: STFF-Types.h:59
Successful completion of the method.
Definition: STFF-Types.h:62
Specifies the setting type for Auto Range.
Definition: STFF-Types.h:168
FF_DataStatus_t status
Status of the provided speed value (valid/invalid, simulated, or log playback)
Definition: STFF-Types.h:548
Enable transmission of all messages.
Definition: STFF-Types.h:296
Enable transmission of Depth Alarm state message on every state change.
Definition: STFF-Types.h:295
Speed units are knots (nautical miles per hour)
Definition: STFF-Types.h:119
Specifies the master setting type for Speed Pulses Per Nautical Mile.
Definition: STFF-Types.h:177
Specifies the Battery Voltage data type.
Definition: STFF-Types.h:215
FF_AutoGainSetting_t
Auto Gain setting options.
Definition: STFF-Types.h:380
Fish ID Setting structure.
Definition: STFF-Types.h:695
FF_SpeedUnits_t units
Units (knots, mph, or kph) for the provided speed value.
Definition: STFF-Types.h:546
Range Setting structure.
Definition: STFF-Types.h:640
The associated data item is not valid, and should not be relied upon.
Definition: STFF-Types.h:232
Specifies the Fish data type.
Definition: STFF-Types.h:217
FF_ControlCommand_t
Control Command options.
Definition: STFF-Types.h:257
Specifies the setting type for Range.
Definition: STFF-Types.h:169
FF_FrequencyMode_t
Sonar Frequency Mode options.
Definition: STFF-Types.h:314
FF_DataType_t
Data Type options.
Definition: STFF-Types.h:210
Specifies that the provided sonar image data is to be at the 50 kHz frequency.
Definition: STFF-Types.h:317
Specifies the setting type for Bit Depth.
Definition: STFF-Types.h:162
Specifies the master setting type for DSTC (Depth Sensitivity Time Constant).
Definition: STFF-Types.h:179
The associated setting is valid.
Definition: STFF-Types.h:196
FF_SettingType_t
Setting Type options.
Definition: STFF-Types.h:158
FF_DataStatus_t status
Status of the provided depth value (valid/invalid, simulated, or log playback)
Definition: STFF-Types.h:569
The associated setting is not valid, and should not be used.
Definition: STFF-Types.h:194
Enable periodic transmission of Image data message.
Definition: STFF-Types.h:293
Initialization not started; please call the Hello() function.
Definition: STFF-Types.h:487
Hello() has been called; now waiting for initialization to complete.
Definition: STFF-Types.h:488
Specifies the Temperature data type.
Definition: STFF-Types.h:214
FF_ControlEnableBlackBoxMsg_t
Control command parameter options for use with the FF_CONTROL_COMMAND_ENABLE_BLACK_BOX_MESSAGES optio...
Definition: STFF-Types.h:288
Specifies the setting type for Fish Alarm.
Definition: STFF-Types.h:175
int16_t temperature
Temperature value, in hundredths of the specified units.
Definition: STFF-Types.h:524
Specifies a depth alarm state of Active (depth alarm is enabled, an alarm condition is present...
Definition: STFF-Types.h:448
FF_DepthUnits_t units
Units (feet, meters, or fathoms) for the provided depth of the target.
Definition: STFF-Types.h:615
A provided pointer argument was not valid.
Definition: STFF-Types.h:53
Initialization has completed; OK to call getters/setters.
Definition: STFF-Types.h:486
Specifies a 50 kilohertz sonar context.
Definition: STFF-Types.h:80
Temperature Data structure.
Definition: STFF-Types.h:522
uint16_t size
Relative size of target.
Definition: STFF-Types.h:618
The API encountered an internal error.
Definition: STFF-Types.h:55
Invalid frequency or frequency not specified.
Definition: STFF-Types.h:78
uint32_t depth
Depth value, in hundredths of the specified units.
Definition: STFF-Types.h:568
Speed Data structure.
Definition: STFF-Types.h:545
Specifies the setting type for Auto Gain.
Definition: STFF-Types.h:166
Enable transmission of Fish data message on detection of possible fish target.
Definition: STFF-Types.h:294
Depth Data structure.
Definition: STFF-Types.h:566
FF_TemperatureUnits_t units
Units (degrees Celsius or degrees Fahrenheit) for the provided temperature value. ...
Definition: STFF-Types.h:523
uint32_t depth
Depth of target, in hundredths of the specified units.
Definition: STFF-Types.h:616
Temperature units are degrees Celsius.
Definition: STFF-Types.h:140
The associated data item is simulated. If displayed to the user, it must be identified as being a sim...
Definition: STFF-Types.h:234
Enable periodic transmission of Depth data message.
Definition: STFF-Types.h:289
FF_Frequency_t
Sonar Frequency options.
Definition: STFF-Types.h:77
Enable periodic transmission of Battery Voltage data message.
Definition: STFF-Types.h:292
FSTC Setting structure.
Definition: STFF-Types.h:658
Temperature units are degrees Fahrenheit.
Definition: STFF-Types.h:141
The shallow and deep range limits are set manually, using function STFishFinder::SetRange().
Definition: STFF-Types.h:361
Specifies a depth alarm state of Disabled (depth alarm is disabled)
Definition: STFF-Types.h:446
FF_AutoRangeSetting_t
Auto Range setting options.
Definition: STFF-Types.h:359
Depth units are Feet.
Definition: STFF-Types.h:98
The delta between the shallow and deep range limits is fixed, and they are adjusted automatically in ...
Definition: STFF-Types.h:363