NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
vessels_interface.h
Go to the documentation of this file.
1 
9 #ifndef SDK_ECDISLAYER_VESSELS_INTERFACE_H_
10 #define SDK_ECDISLAYER_VESSELS_INTERFACE_H_
11 #pragma once
12 
13 #include <base/inc/platform.h>
14 #include <base/inc/base_types.h>
15 #include <base/inc/forward_declarations.h>
22 
23 SDK_VESSELS_BEGIN_NAMESPACE
24 
29 
33 {
34 public:
43  virtual SDKResult SDK_CALLTYPE GetVesselDataset(
44  const DatasetID& dsid,
45  IVesselDataset** vessel_dataset) throw() = 0;
46 
55  virtual SDKResult SDK_CALLTYPE GetVessel(
56  const SDKAny& id,
57  const DatasetID& dsid,
58  IVessel** vessel) throw() = 0;
59 
60  SDK_IMPLEMENT_IID(IVesselWorkspace)
61  SDK_END_INTERFACE(IVesselWorkspace)
62 };
63 SDK_DECLARE_IID(IVesselWorkspace)
64 
65 class IVesselDataset : public ISDKComponent
69 {
70 public:
75  virtual SDKResult SDK_CALLTYPE SetOwnShipDeviceConfig(
76  IOwnShipDeviceConfig* config) throw() = 0;
77 
85  virtual SDKResult SDK_CALLTYPE GetVessel(
86  const SDKAny& id,
87  IVessel** vessel) throw() = 0;
88 
89  SDK_IMPLEMENT_IID(IVesselDataset)
90  SDK_END_INTERFACE(IVesselDataset)
91 };
92 SDK_DECLARE_IID(IVesselDataset)
93 
94 class IVessel : public ISDKComponent
97 {
98 public:
103  virtual SDKResult SDK_CALLTYPE SetAttributeValue(SDKUInt32 id,
104  const SDKAny& value) throw() = 0;
105 
111  virtual SDKResult SDK_CALLTYPE GetAttributeValue(SDKUInt32 id,
112  SDKAny& value) throw() = 0;
113 
114  template< typename T >
115  SDKResult GetAttributeValueT(AttributeClassCode class_code, T& out) throw() {
116  sdk::ScopedAny value;
117  SDKResult res = GetAttributeValue(class_code, value);
118  if (SDK_FAILED(res))
119  return res;
120  return value.GetAs< T >(out) ? sdk::Ok : sdk::Err_InvalidArg;
121  }
122 
123  SDK_IMPLEMENT_IID(IVessel)
124  SDK_END_INTERFACE(IVessel)
125 };
126 SDK_DECLARE_IID(IVessel)
127 
128 typedef enum PosFixTechnique
132 {
139 
142 typedef enum FixAdvice
143 {
148 } FixAdvice;
149 
153 {
154 public:
159  virtual SDKResult SDK_CALLTYPE GetAvailableTechnique(
160  PosFixTechnique& technique) const throw() = 0;
161 
170  virtual SDKResult SDK_CALLTYPE CalculateFixedPosition(const SDKTime& time,
171  const SDKGeoPoint& dr_pos, SDKGeoPoint& fixed_pos,
172  FixAdvice& advice, PosFixTechnique& technique) throw() = 0;
173 
176  virtual SDKResult SDK_CALLTYPE AcceptFixedPosition() throw() = 0;
177 
184  virtual SDKResult SDK_CALLTYPE GetConfidenceEllipse(
185  double& a, double& b, double& alpha) throw() = 0;
186 
191  virtual SDKResult SDK_CALLTYPE GetConfidenceCircle(double& r) throw() = 0;
192 
201  virtual SDKResult SDK_CALLTYPE AddBearing(const SDKTime& time,
202  const SDKGeoPoint& pos_from, double bearing, const SDKGeoPoint& curr_pos,
203  double bearing_error, SDKUInt16& ref_point_id) throw() = 0;
204 
212  virtual SDKResult SDK_CALLTYPE AddRunningBearing(
213  SDKUInt16 ref_point_id, const SDKTime& time, double bearing,
214  const SDKGeoPoint& curr_pos, double bearing_error) throw() = 0;
215 
224  virtual SDKResult SDK_CALLTYPE AddDistance(const SDKTime& time,
225  const SDKGeoPoint& pos_from, double distance, const SDKGeoPoint& curr_pos,
226  double distance_error, SDKUInt16& ref_point_id) throw() = 0;
227 
235  virtual SDKResult SDK_CALLTYPE AddRunningDistance(
236  SDKUInt16 ref_point_id, const SDKTime& time, double distance,
237  const SDKGeoPoint& curr_pos, double distance_error) throw() = 0;
238 
249  virtual SDKResult SDK_CALLTYPE AddBearingDistance(
250  const SDKTime& time, const SDKGeoPoint& pos_from,
251  double bearing, double distance, const SDKGeoPoint& curr_pos,
252  double bearing_error, double distance_error, SDKUInt16& ref_point_id) throw() = 0;
253 
255  virtual SDKResult SDK_CALLTYPE Clear() throw() = 0;
256 
261  virtual SDKResult SDK_CALLTYPE GetPositionFixingWks(IWorkspace** wks) throw() = 0;
262 
263  SDK_IMPLEMENT_IID(IPositionFixing)
264  SDK_END_INTERFACE(IPositionFixing)
265 };
266 SDK_DECLARE_IID(IPositionFixing)
267 
268 SDK_VESSELS_END_NAMESPACE
269 
270 #endif // SDK_ECDISLAYER_VESSELS_INTERFACE_H_
IVessel::SetAttributeValue
virtual SDKResult SDK_CALLTYPE SetAttributeValue(SDKUInt32 id, const SDKAny &value)=0
Sets the value of the specified vessel attribute.
kFixAdvice_DontAccept
@ kFixAdvice_DontAccept
Do not accept observed position.
Definition: vessels_interface.h:145
IPositionFixing::Clear
virtual SDKResult SDK_CALLTYPE Clear()=0
Clears stored LOPs.
IWorkspace
A Workspace is a container of spatial and non-spatial datasets. Workspace is a non-creatable object....
Definition: gdb_workspace.h:525
IVesselDataset::SetOwnShipDeviceConfig
virtual SDKResult SDK_CALLTYPE SetOwnShipDeviceConfig(IOwnShipDeviceConfig *config)=0
Sets the own ship device configuration parameters.
base_types.h
SDK base types.
IVesselWorkspace::GetVessel
virtual SDKResult SDK_CALLTYPE GetVessel(const SDKAny &id, const DatasetID &dsid, IVessel **vessel)=0
Returns the pointer to the IVessel interface associated with the Vessel object specified by object id...
vessels_const.h
Defines Vessels constants.
kPosFixTechnique_RunningFix
@ kPosFixTechnique_RunningFix
Running fix available.
Definition: vessels_interface.h:136
IPositionFixing::GetAvailableTechnique
virtual SDKResult SDK_CALLTYPE GetAvailableTechnique(PosFixTechnique &technique) const =0
Returns the best available fixing technique.
IPositionFixing::AddRunningBearing
virtual SDKResult SDK_CALLTYPE AddRunningBearing(SDKUInt16 ref_point_id, const SDKTime &time, double bearing, const SDKGeoPoint &curr_pos, double bearing_error)=0
Adds bearing data for the later LOP (Running fix).
IPositionFixing::CalculateFixedPosition
virtual SDKResult SDK_CALLTYPE CalculateFixedPosition(const SDKTime &time, const SDKGeoPoint &dr_pos, SDKGeoPoint &fixed_pos, FixAdvice &advice, PosFixTechnique &technique)=0
Calculates the fixed position.
IVesselWorkspace
Provides access to members that manage the vessels workspace.
Definition: vessels_interface.h:32
properties_interface.h
Object generic properties interface.
IVesselDataset
Provides access to members that provide information about a VesselDataset.
Definition: vessels_interface.h:68
IPositionFixing::AddRunningDistance
virtual SDKResult SDK_CALLTYPE AddRunningDistance(SDKUInt16 ref_point_id, const SDKTime &time, double distance, const SDKGeoPoint &curr_pos, double distance_error)=0
Adds distance data for the later LOP (Running fix).
kFixAdvice_Repeat
@ kFixAdvice_Repeat
Repeat observation with other measurements.
Definition: vessels_interface.h:146
FixAdvice
FixAdvice
Position fix advice.
Definition: vessels_interface.h:142
kPosFixTechnique_EP
@ kPosFixTechnique_EP
Estimated position available.
Definition: vessels_interface.h:135
sdk::Ok
@ Ok
Operation completed successfully.
Definition: sdk_results_enum.h:22
kPosFixTechnique_DR
@ kPosFixTechnique_DR
DR position available.
Definition: vessels_interface.h:134
SDKResult
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
IPositionFixing::GetConfidenceEllipse
virtual SDKResult SDK_CALLTYPE GetConfidenceEllipse(double &a, double &b, double &alpha)=0
Returns the confidence ellipse parameters (if available) for the last observation.
IPositionFixing::GetConfidenceCircle
virtual SDKResult SDK_CALLTYPE GetConfidenceCircle(double &r)=0
Returns the radius of confidence circle (if available) for the last observation.
sdk::Err_InvalidArg
@ Err_InvalidArg
Wrong argument passed to function.
Definition: sdk_results_enum.h:27
SDKGeoPoint
Geo point in degree units.
Definition: geometry_base_types.h:1727
IOwnShipDeviceConfig
Manages the own ship configuration properties.
Definition: ownship_device_config_interface.h:96
IPositionFixing::GetPositionFixingWks
virtual SDKResult SDK_CALLTYPE GetPositionFixingWks(IWorkspace **wks)=0
Returns the pointer to the IWorkspace interface.
IPositionFixing::AcceptFixedPosition
virtual SDKResult SDK_CALLTYPE AcceptFixedPosition()=0
Accept previously calculated fixed position.
IVesselDataset::GetVessel
virtual SDKResult SDK_CALLTYPE GetVessel(const SDKAny &id, IVessel **vessel)=0
Returns the pointer to the IVessel interface associated with the Vessel object specified by object id...
sdk_component_interface.h
Common base SDK interfaces.
IVessel
Common interface for all of vessel objects.
Definition: vessels_interface.h:96
IPositionFixing::AddBearing
virtual SDKResult SDK_CALLTYPE AddBearing(const SDKTime &time, const SDKGeoPoint &pos_from, double bearing, const SDKGeoPoint &curr_pos, double bearing_error, SDKUInt16 &ref_point_id)=0
Adds bearing data for one LOP.
SDK_FAILED
#define SDK_FAILED(res)
Checks failed result.
Definition: sdk_results_enum.h:69
IPositionFixing::AddBearingDistance
virtual SDKResult SDK_CALLTYPE AddBearingDistance(const SDKTime &time, const SDKGeoPoint &pos_from, double bearing, double distance, const SDKGeoPoint &curr_pos, double bearing_error, double distance_error, SDKUInt16 &ref_point_id)=0
Adds bearing and distance data for one LOP.
platform.h
Describes the platform constants.
IVesselWorkspace::GetVesselDataset
virtual SDKResult SDK_CALLTYPE GetVesselDataset(const DatasetID &dsid, IVesselDataset **vessel_dataset)=0
Returns the pointer to the IVesselDataset interface associated with the Vessel dataset specified by t...
ownship_device_config_interface.h
Describes the own ship devices configuration.
kPosFixTechnique_None
@ kPosFixTechnique_None
Position fixing impossible.
Definition: vessels_interface.h:133
kPosFixTechnique_Fix
@ kPosFixTechnique_Fix
Fix available.
Definition: vessels_interface.h:137
IPositionFixing
Position fixing.
Definition: vessels_interface.h:152
ISDKComponent
Base interface for all SDK interfaces.
Definition: sdk_component_interface.h:41
sdk::SDKAnyHandler
This class wraps the SDKAny type.
Definition: sdk_any_handler.h:32
IVessel::GetAttributeValue
virtual SDKResult SDK_CALLTYPE GetAttributeValue(SDKUInt32 id, SDKAny &value)=0
Gets the value of the specified vessel attribute.
AttributeClassCode
ClassCode AttributeClassCode
Attribute class code type.
Definition: gdb_const.h:247
SDKTime
SDK_END_NAMESPACE typedef SDKInt64 SDKTime
Milliseconds from Unix epoch.
Definition: base_types.h:56
kFixAdvice_Unknown
@ kFixAdvice_Unknown
not known what to do
Definition: vessels_interface.h:144
sdk_results_enum.h
SDK return values synonyms in the sdk namespace.
PosFixTechnique
PosFixTechnique
Position fixing technique (sorting for reliability, from worst to best).
Definition: vessels_interface.h:131
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.
IPositionFixing::AddDistance
virtual SDKResult SDK_CALLTYPE AddDistance(const SDKTime &time, const SDKGeoPoint &pos_from, double distance, const SDKGeoPoint &curr_pos, double distance_error, SDKUInt16 &ref_point_id)=0
Adds distance data for one LOP.
sdk_any_handler.h
Wrappers for work with SDKAny instance.
kFixAdvice_Accept
@ kFixAdvice_Accept
Accept observed position.
Definition: vessels_interface.h:147