Hardware driver events enabled by default

Is it possible to create a MIP driver which declares its own custom device events that are added and enabled by default?

The interconnect driver does this at the hardware and device level where there are events that are added and enabled by default and they cannot be removed.

MIP drivers built for sensors may potentially have dozens of custom events which always make sense to enable by default as those events are the primary purpose of the device. But I can’t find anything in the driver framework docs to suggest it is possible to make these events enabled by default. As a result, it becomes a job for the customer to manually add each event one at a time.

It’s possible to use the Set-VmsDeviceEvent cmdlet from the MilestonePSTools powershell module to enable events in bulk, but that’s an added step and potentially new unfamiliar territory.

Another option is to develop a “configuration tool” using MIP SDK to help automate those configuration steps (optionally including adding the hardware). But that would require additional development effort on top of the MIP driver, and for the customer to use an additional application to handle onboarding devices.

I have had some discussions with development teams here at Milestone, and I appreciate that you have been patient awaiting my feedback here. It is by design that the Driver Framework drivers do not have the capability to automatically enable events. The reasoning is that when the administrator has to actively and consciously enable the events then the risk of having too many events that are not used enabled. So the consideration was to minimize the number of events that might be enabled but not used.

Thanks for the update @Bo Ellegård Andersen (Milestone Systems)​, and fair point. Maybe as an alternative we can find a way to improve the UX in a future release so that an administrator can enable the same set of events on a large number of devices at once - on the order of thousands.

For those interested in managing device events in bulk, one option is to use the Get-VmsDeviceEvent and Set-VmsDeviceEvent cmdlets in MilestonePSTools. For example, to enable all “Rising” events on all enabled cameras, you can run…

Get-VmsCamera | Get-VmsDeviceEvent -Name *Rising | Set-VmsDeviceEvent -Enabled $true -Used $true -PassThru