3.0.0 (21-01-2014) MapMatchedPosition = This interface offers functions to retrieve the map matched position and to simulate positioning If NavigationCore is not in Simulation Mode (Simulation Status is SIMULATION_STATUS_NO_SIMULATION), it is using the EnhancedPosition from the Positioning component. In Simulation Mode it is not using this position, instead it uses FixedPosition or FollowActiveRoute to determine the position. With FixedPosition (Simulation Status is SIMULATION_STATUS_FIXED_POSITION), the position is fixed, unless it is changed by a call to setPosition(). This supports use cases like: setting the current car position in a demo mode, or replay a position log file (where setPosition() is called for each logged location). In Follow Active Route mode, NavigationCore is generating positions itself. These positions follow the current active route. When the end of the route is reached, the position jumps back to the starting point of the route. There are two sub states: Running (Simulation Status is SIMULATION_STATUS_RUNNING) and Paused (Simulation Status is SIMULATION_STATUS_PAUSED). By default the ‘driving speed’ will be equal to the free flow speed of each road segment. However a speed factor can be set via the method SetSimulationSpeed. GetVersion = This method returns the API version implemented by the server application version = struct(major,minor,micro,date) major = when the major changes, then backward compatibility with previous releases is not granted minor = when the minor changes, then backward compatibility with previous releases is granted, but something changed in the implementation of the API (e.g. new methods may have been added) micro = when the micro changes, then backward compatibility with previous releases is granted (bug fixes or documentation modifications) date = release date (e.g. 21-06-2011) SetSimulationMode = This method activates or deactivates the simulation mode sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value activate = flag. TRUE means that the simulation mode is activated. The simulation status will be SIMULATION_STATUS_FIXED_POSITION, with the position being the last known position in the NavigationCore. FALSE means that the simulation mode is de-activated. The simulation status will be SIMULATION_STATUS_NO_SIMULATION GetSimulationStatus = This method retrieves the simulation status simulationStatus = enum(SIMULATION_STATUS_NO_SIMULATION, SIMULATION_STATUS_RUNNING, SIMULATION_STATUS_PAUSED, SIMULATION_STATUS_FIXED_POSITION) SIMULATION_STATUS_NO_SIMULATION means that NavigationCore is using the EnhancedPosition SIMULATION_STATUS_RUNNING means that positions are generated along the active route SIMULATION_STATUS_PAUSED means that the generation of positions along the active route is paused SIMULATION_STATUS_FIXED_POSITION means that the position is fixed. SimulationStatusChanged = This signal is emitted when the Simulation Status has changed simulationStatus = enum(SIMULATION_STATUS_NO_SIMULATION, SIMULATION_STATUS_RUNNING, SIMULATION_STATUS_PAUSED, SIMULATION_STATUS_FIXED_POSITION) SIMULATION_STATUS_NO_SIMULATION means that NavigationCore is using the EnhancedPosition SIMULATION_STATUS_RUNNING means that positions are generated along the active route SIMULATION_STATUS_PAUSED means that the generation of positions along the active route is paused SIMULATION_STATUS_FIXED_POSITION means that the position is fixed. SetSimulationSpeed = This method sets the speed factor for the simulation mode sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value speedFactor = speed factor unit is x0.25. Normal speed x1 is 4 GetSimulationSpeed = returns the speed factor for the simulation mode speedFactor = speed factor unit is x0.25. Normal speed x1 is 4 SimulationSpeedChanged = This signal is emitted when the simulation speed factor has changed NavigationCore will only send out a SimulationSpeedChanged signal if there is at least one node listening to these changes speedFactor = speed factor unit is x0.25. Normal speed x1 is 4 StartSimulation = This method starts, or resumes, a Follow Active Route simulation If the current Simulation Status is SIMULATION_STATUS_PAUSED, the simulation is resumed from the current location. Otherwise the simulation is started from the starting point of the route. In both cases the new status will be SIMULATION_STATUS_RUNNING sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value PauseSimulation = This method freezes the current location The new status will be SIMULATION_STATUS_PAUSED sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value GetPosition = This method returns the current position valuesToReturn= array[key] key = enum(INVALID,TIMESTAMP,LATITUDE,LONGITUDE,ALTITUDE,HEADING,SPEED,CLIMB,GNSS_FIX_STATUS,DR_STATUS,MM_STATUS,SIMULATION_MODE, ... ,ALL) position = dictionary[key,value] dictionary = array of tuples (key,value) key = enum(INVALID,TIMESTAMP,LATITUDE,LONGITUDE,ALTITUDE,HEADING,SPEED,CLIMB,GNSS_FIX_STATUS,DR_STATUS,MM_STATUS,SIMULATION_MODE, ... ) key = TIMESTAMP, value = value of type 't', that represents a timestamp in ms key = LATITUDE, value = value of type 'd', that expresses the latitude of the current position in format %3.6f. Range [-90,+90]. Example: 48.053250 key = LONGITUDE, value = value of type 'd', that expresses the longitude of the current position in format %3.6f. Range [-180,+180]. Example: 8.324500 key = ALTITUDE, value = value of type 'i', that expresses the altitude above the sea level of the current position in meters key = HEADING, value = value of type 'u', that expresses the course angle in degree (0 = north, 90 = east, 180 = south, 270 = west, no negative values) key = SPEED, value = value of type 'd', that expresses speed measured in m/s. A negative value indicates that the vehicle is moving backwards key = CLIMB, value = value of type 'i', that expresses the inclination measured in degrees key = GNSS_FIX_STATUS, value = value of type 'q', that represents an enum(INVALID,NO_FIX,TIME_FIX,2D_FIX,3D_FIX, ... ) key = DR_STATUS, value = value of type 'b', where TRUE means that a dead-reckoning algorithm has been used to calculate the current position key = MM_STATUS, value = value of type 'b', where TRUE means that a map-matching algorithm has been used to calculate the current position key = SIMULATION_MODE, value = value of type 'b', where TRUE means that the current position is simulated This error is generated if no position is available SetPosition = This method sets the position to a specific location Independent of the current Simulation Status, the new status will be SIMULATION_STATUS_FIXED_POSITION. This method can be used to replay a position log file (with positions obtained via calls to GetPosition()) by calling this method for each position in the log file. It is of course also possible to call this method just once with e.g. a 'current location' entered by the user (via the HMI). sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value position = dictionary[key,value] dictionary = array of tuples (key,value) key = enum(INVALID,TIMESTAMP,LATITUDE,LONGITUDE,ALTITUDE,HEADING,SPEED,CLIMB,GNSS_FIX_STATUS,DR_STATUS,MM_STATUS, ... ) key = TIMESTAMP, value = value of type 't', that represents a timestamp in ms key = LATITUDE, value = value of type 'd', that expresses the latitude of the current position in format %3.6f. Range [-90,+90]. Example: 48.053250 key = LONGITUDE, value = value of type 'd', that expresses the longitude of the current position in format %3.6f. Range [-180,+180]. Example: 8.324500 key = ALTITUDE, value = value of type 'i', that expresses the altitude above the sea level of the current position in meters key = HEADING, value = value of type 'u', that expresses the course angle in degree (0 = north, 90 = east, 180 = south, 270 = west, no negative values) key = SPEED, value = value of type 'd', that expresses speed measured in m/s. A negative value indicates that the vehicle is moving backwards key = CLIMB, value = value of type 'i', that expresses the inclination measured in degrees key = GNSS_FIX_STATUS, value = value of type 'q', that represents an enum(INVALID,NO_FIX,TIME_FIX,2D_FIX,3D_FIX, ... ) key = DR_STATUS, value = value of type 'b', where TRUE means that a dead-reckoning algorithm has been used to calculate the current position key = MM_STATUS, value = value of type 'b', where TRUE means that a map-matching algorithm has been used to calculate the current position Note that the key SIMULATION_MODE is not allowed here, as it will be true by definition. PositionUpdate = This signal is called to notify a client application of a position change. The update frequency is implementation specific. The maximal allowed frequency is 10Hz changedValues = array[value] value = enum(INVALID,TIMESTAMP,LATITUDE,LONGITUDE,ALTITUDE,HEADING,SPEED,CLIMB,GNSS_FIX_STATUS,DR_STATUS,MM_STATUS,SIMULATION_MODE, ... ) GetCurrentAddress = This method returns the current address valuesToReturn= array[fieldType] key = enum(INVALID,TIMESTAMP,COUNTRY,COUNTRYCODE,CITY,STREET,ROAD_NUMBER,HOUSENUMBER,HOUSENAME,CROSSING,DISTRICT,TIMEZONE_OFFSET,DAYLIGHT_OFFSET,MATCH_TYPE, ... ,ALL) address = dictionary[key,value] dictionary = array of tuples (key,value) key = enum(INVALID,TIMESTAMP,COUNTRY,COUNTRYCODE,CITY,STREET,ROAD_NUMBER,HOUSENUMBER,HOUSENAME,CROSSING,DISTRICT,TIMEZONE_OFFSET,DAYLIGHT_OFFSET,MATCH_TYPE,ROADSHIELDS, ... ) key = TIMESTAMP, value = value of type 't', that represents a timestamp in ms key = COUNTRY, value = value of type 's', that identifies the country name key = COUNTRYCODE, value = value of type 's', ISO 3166‐1 alpha 3 country code (upper case) key = CITY, value = value of type 's', that identifies the city name key = STREET, value = value of type 's', that identifies the street name key = ROAD_NUMBER, value = value of type ´s´, that identifies the road number key = HOUSENUMBER, value = value of type 's', that identifies the house number key = HOUSENAME, value = value of type ´s´, that identifies the house name key = CROSSING, value = value of type 's', that identifies the crossing key = DISTRICT, value = value of type 's', that identifies the district name key = TIMEZONE_OFFSET, value = value of type 'n', that identifies the timezone offset at the current address key = DAYLIGHT_OFFSET, value = value of type 'n', that identifies the daylight offset at the current address key = MATCH_TYPE, value = value of type 'q', that identifies an enum(INVALID,ON_ROAD,OFF_ROAD,ON_FERRY,IN_TUNNEL,ON_CARPARK, ... ) key = ROADSHIELDS, value = value of type ´a(sa(is)s)´, that identifies a roadshield This error is generated if no map is available This error is generated if the vehicle is located in a position outside of the known map AddressUpdate = This signal is called to notify a client application that the current address changed changedValues = array[value] value = enum(INVALID,TIMESTAMP,COUNTRY,COUNTRYCODE,CITY,STREET,ROAD_NUMBER,HOUSENUMBER,HOUSENAME,CROSSING,DISTRICT,TIMEZONE_OFFSET,DAYLIGHT_OFFSET,MATCH_TYPE, ... ) positionOnSegment = This method returns the vehicle position on a route segment valuesToReturn= array[fieldType] key = enum(INVALID,TIMESTAMP,SEGMENT_ID,DIRECTION_ON_SEGMENT,DISTANCE_ON_SEGMENT, ... ,ALL) positionOnSegment = dictionary[key,value] dictionary = array of tuples (key,value) key = enum(INVALID,TIMESTAMP,SEGMENT_ID,DIRECTION_ON_SEGMENT,DISTANCE_ON_SEGMENT, ... ) key = TIMESTAMP, value = value of type 't', that represents a timestamp in ms key = SEGMENT_ID, value = value = value of type 'ay', that represents a link-ID in a format whose interpretation is left to the navigationcore key = DIRECTION_ON_SEGMENT, value = value of type 'b', where TRUE means forward and FALSE means backward key = DISTANCE_ON_SEGMENT, value = value of type 'd', that indicates the distance in meter on the segment PositionOnSegmentUpdate = This signal is called to notify the client that the vehicle position on the route segment changed changedValues = array[value] value = enum(INVALID,TIMESTAMP,SEGMENT_ID,DIRECTION_ON_SEGMENT,DISTANCE_ON_SEGMENT, ... ) GetStatus = This method returns the current status valuesToReturn = array[fieldType] key = enum(INVALID,TIMESTAMP,GNSS_FIX_STATUS,DR_STATUS,MM_STATUS,SIMULATION_MODE, ... ,ALL) status = dictionary[key,value] dictionary = array of tuples (key,value) key = enum(INVALID,TIMESTAMP,GNSS_FIX_STATUS,DR_STATUS,MM_STATUS,SIMULATION_MODE, ... ) key = TIMESTAMP, value = value of type 't', that represents a timestamp in ms key = GNSS_FIX_STATUS, value = value of type 'q', that represents an enum(INVALID,NO_FIX,TIME_FIX,2D_FIX,3D_FIX, ... ) key = DR_STATUS, value = value of type 'b', where TRUE means that a dead-reckoning algorithm has been used to calculate the current position key = MM_STATUS, value = value of type 'b', where TRUE means that a map-matching algorithm has been used to calculate the current position key = SIMULATION_MODE, value = value of type 'b', where TRUE means that the current position is simulated StatusUpdate = This signal is emitted to notifiy a client application that the current status changed changedValues = array[value] value = enum(INVALID,TIMESTAMP,GNSS_FIX_STATUS,DR_STATUS,MM_STATUS,SIMULATION_MODE, ... ) OffroadPositionChanged = This signal is emitted when the heading and the distance to the closest point on the road network changes distance = distance in meters to the closest point on the road network direction = direction in degrees relatively to the closest point on the road network. Range [0:360]