Introduction
Introduction to MIP SDK 2020 R2
MIPSDK General
- Breaking change: In this release the concurrent licensing option, and the associated VideoOS.Platform.License.ConcurrentLicenseManager class has been discontinued.
- Breaking change: In this release support of the following MIP message IDs has been discontinued as they have been deprecated for a long time and alternatives exist:
Server.EventCommand:
Use Server.NewEventCommand insteadServer.NewAlarmAsEventCommand:
Use Server.NewEventCommand insteadServer.NewEventAsAlarmHandlerCommand:
Use Server.NewAlarmCommand insteadServer.NewAlertAsAlarmHandlerCommand:
Use Server.NewAlarmCommand instead
- Breaking change: In this release support of the following classes and interfaces are removed:
Util.Pcm.IOverlappingPcmDataListCorrector
Util.Pcm.OverlappingPcmDataListCorrectorNull
Util.Pcm.OverlappingPcmDataListCorrector
Util.Pcm.OverlappingPcmDataListCorrectorPrevious
Util.Pcm.OverlappingPcmDataListCorrectorNext
Util.Pcm.OverlappingPcmDataListCorrectorCrossfade
Util.Pcm.IOverlappingPcmContentCorrector
Util.Pcm.OverlappingPcmContentCorrector
Util.Pcm.OverlappingPcmContentCorrectorPrevious
Util.Pcm.OverlappingPcmContentCorrectorNext
Util.Pcm.OverlappingPcmContentCorrectorCrossfade
Util.Pcm.OverlappingPcmContentCorrectorNull
Upcoming breaking change: Milestone VMS products today support responding to SiteInfo.xml (e.g. http://localhost/RCServer/SiteInfo.xml). The result contains a list of all sites in the system and includes key information for each site.
The SiteInfo.xml request is today only useful for AD users since basic users are considered site private. This request is planned to be discontinued in the next release, 2020 R3.
The same information can be retrieved using the Configuration API. This will also work with future authorization methods, but be aware that since MFA is not supported for basic users, a basic user will not be able to retrieve the list of child sites. The top path for getting this information is: ‘/SiteFolder’.
Also, please note that SystemInfo.xml will be discontinued next year. It will not work with future authorization methods and is therefore not recommended to use for new development.
- As previously announced, the Milestone DirectShow Filter has reached end-of-life and is thus no longer supported.
- In large systems, it can take a long time to traverse the configuration and locate specific sets of items. The class QueryItems, in namespace VideoOS.ConfigurationApi.ClientService, can be used to request queries from the management server. Searches are carried out server-side. See classes QueryItems, PropertyFilter and ItemFilter in the MIP SDK documentation for details on how to use this.
In addition, the MIP SDK now has support for filling out Children on ConfigurationItems. This can be useful when loading a large part of the configuration without calling GetChildren multiple times in the hierarchy. A method on strongly types classes called FillChildren(itemtypes, itemFilters) will fill children on the Item it is called on, recursively through the hierarchy.
Configuration API
- A first set of features for setting up and managing rules through the Configuration API was released in 2020 R1. Many new features have been added in this release.
- An API wizard has been introduced, allowing rules to be added step-by-step with validation of data in each step.
- Support for all event types used for rule triggering
- Support for time interval and recurring time rules
- Support for all rule conditions
- Support for stop action after time
- Support for most of the start and stop actions. See documentation for details on currently supported actions.
- The Configuration API has been extended with functionality to fully manage product licenses programmatically. It is possible to read all the information available on the License Information tab in the Management Client. It is also possible to perform actions such as activating a license, enabling and disabling automatic activation, and to replace a license with another license. It is now also possible to read and write all information available under the Site Information tab in the Management Client.
XProtect Smart Client
- The EmbeddedCameraFQID key in the ViewItemManager.Properties collection will now also be used to automatically select microphone and speaker associated with the camera in the same way as it is done for build-in camera view items.
- The
SearchResultData.FireDataChangedEvent()
method no longer does anything and has been obsoleted. We suggest to stop using it as it will be removed in a future release. - The line and fill color of bounding boxes in tiles can now be defined by a Search Framework search agent. Each color allows setting an opacity as well. If a color is not specified, the default bounding box color of the will be applied.
MIP Driver Framework
- When adding hardware in either Management Client or using the Configuration API, drivers developed using the MIP Driver Framework will now be included when doing Address range scanning and when selecting the Auto-detect option under Manual add.
Samples
- The Video File Viewer sample has been improved to also utilize the PlaybackUserControl.
- The Sensor Monitor sample has added support for ActionManager in order to demonstrate how to implement rule actions in plug-ins.
Fixed issues
- In the Smart Client the EmbeddedCameraFQID key in the ViewItemManager.Properties collection will now also be used to automatically select microphone and speaker associated with the camera in the same way as it is done for build-in camera view items.
- IAlarmClient.GetSessionEventLines would throw an exception stating "No signature message parts were specified" whenever it was called.
- WindowInformation.IsSentFromMyWindow would in some cases not recognize the main window. This also caused MetadataSupplier not to handle mode changes correctly.
- Two drivers in the Driver Framework with the same ID would cause the Recording Server to fail registering both of them.
- Sending Control.PTZMoveCommand message in Smart Client with dest=NULL would cause digital zoom to happen on selected view item in primary window instead of on the currently active item (if multiple windows were open).
- If an entry was removed from the Properties dictionary of an Item and SaveItemConfiguration was called, the change would not be persisted on the server and the property would thus remain.
- In Smart Client environment, the LoginSettings.UserIdentity was not correctly populated in certain scenarios.