Introduction
Introduction to MIP SDK 2018 R1
Discontinuation
2018 releases will be the last MIP SDK releases to include the following components: ImageViewer, AudioPlayer, EngineManager ActiveXs and the "UseActiveX" environment option.
Existing applications using these components should not be affected during 2018 since maintenance work on these components will continue until 2019 R1, but with no new functionality added.
With MIP SDK 2019 R1 these components will be officially discontinued and will no longer be included in the MIP SDK. For Web and C++ development, we strongly recommend developers to already now start using the Mobile Server interface instead. As for Windows based applications, we recommend using the ImageViewerControl or ImageViewerWpfControl .NET controls.
MIPSDK General
- The new (2018 R1) privacy protection masks can be lifted and set in standalone integrations via the UserContext.SetPrivacyMaskLifted() method (if user is allowed to) and the PrivacyMaskLifted property on the same class can be used to check current privacy mask state. In Smart Client the SDK classes will follow the privacy mask state of the client. Furthermore privacy masks can also be configured, enabled and disabled through the Configuration API (VideoOS.Platform.ConfigurationItems.PrivacyProtection class).
- Localization assemblies for the major assemblies (VideoOS.Platform.dll, VideoOS.Platform.SDK.Export.dll, VideoOS.Platform.SDK.dll, VideoOS.Platform.SDK.UI.dll, VideoOS.UI.Common.WPF.dll) have been added to the SDK.
- The GPS position for cameras configured in the Management Client or on the Smart Map is now available through the corresponding MIP items.
- MetadataInvalidatedEvent has been added to the MetadataSupplier class, indicating when a particular piece of metadata has existed beyond its configured valid time. This makes it possible to know when to clear metadata that has been received and drawn.
- VideoOS.Platform.ClientControl.Print now takes camera name as a parameter and thus supports using the camera name in the toolbar print function.
Configuration API
In addition to the privacy protection mask support mentioned above the following has been added to the Configuration API:
- It is now possible to create and modify times profiles via the class VideoOS.Platform.ConfigurationItems.TimeProfile.
- View layouts can be created and modified through the existing classes LayoutFolder and Layout.
- It is now possible to configure a camera’s related devices via the class VideoOS.Platform.ConfigurationItems.ClientSettings under each device (e.g. VideoOS.Platform.ConfigurationItems.Camera).
- It is also now possible to add and manage user-defined events, analytics events and generic events (via the UserDefinedEvent, AnalyticsEvent, GenericEvent, and GenericEventDataSource classes).
In addition to the support in the strongly typed classes the above support has of course also been added to the raw configuration API.
XProtect Smart Client
- It is now possible to programmatically control Smart Maps in the Smart Client using the VideoOS.Platform.Messaging.MessageId.SmartClient class. Smart Map locations can be retrieved, created, updated and deleted via the Util.GisMap.GisMapLocationItemWrapper class in the ConfigurationAPI.
- SmartClient.SelectedViewItemChangedIndication message is now sent by the Smart Client when the operator selects any ViewItem. The RelatedFQID identifies the selected ViewItem, and can be used to match up with the ViewAndLayoutItem (and children) sent out by the SelectedViewChangedIndication.
XProtect Management Client
- The command enabling sending commands to a camera and retrieve a response introduced in the last release has now also been implemented in the Management Client.
Samples
- SmartMapController added, demonstrating how to go to specific coordinates and zoom levels, how to retrieve map locations and go to a specific location, how to get notified if the user changes the map position and how to get the current coordinates of the map shown in the Smart Client.
- ConfigAddCameras added, demonstrating how to add cameras using the strongly typed Configuration API.
- PTZandPresets has been updated to also work with C-code. The methods used are different for E-code and C-code. For C-code, the strongly typed Configuration API is used.
Fixed issues
- A change in the implementation of VideoOS.Platform.Live.LiveContentEventArgs in the 2017 R3 release unfortunately broke backwards incompatibility for older plug-ins using this class.
- SelectedViewChangedIndication now also correctly identifies changes to floating windows and secondary monitors.
- SelectedCameraChangedIndication were missing when changing between windows.
- Calling Configuration.Instance.GetItem() with a null GUID returned something else than null.
- VideoOS.Platform.Data.DataSource.GetTypes() returned the wrong list of sequence types, when working with exported recordings (motion and recording sequences got misaligned).
- In a standalone application using the audio playback component AudioPlayerControl, audio and video could end up unsynchronized during playback.
- On C-code products, VideoOS.Platform.Login.LoginSettings.GroupMemberShip did not return the proper Active Directory group IDs.
- ImageViewerControl incorrectly set a reconnection timer, even when an external program had called Disconnect(). This could lead to a NullReferenceException on a subsequent Dispose().
- VideoOS.Platform.Configuration.RefreshConfiguration() could fail and throw an exception on certain E-code products.