Should StartGetSequences(...) override in a TimelineSequenceSource be called when connecting to XProtect Essential+. It works fine when connecting to an XProtect Corporate server but not when connecting to Essential+ server.

I have written a plug-in for the Smart Client that retrieves metadata from the recording server and processes it as needed. I update the timeline to show where metadata is available (followed the MIPSDK example: Smart Client Timeline Population). But the StartGetSequences() override method does not get called when I connect to an instance of XProtect Essential+ (2020 R2). The method does get called connected to an instance of XProtect Corporate (2020 R1).

Should it work? Anything I can look at to determine what’s wrong?

Does the same Smart Client fail when connected to one system and works on the other?

If you enable logging in the Smart Client, do you see any errors logged?

https://developer.milestonesys.com/s/article/debugging-techniques-for-Smart-Client-plugins

Hello Bo.

Thanks for the speedy reply. I’m still working on collecting logs. I tried the SCLogCollector and it failed. When I click Start, nothing happens. When I exited the app it said there was an error and to look at the log. The last message in its log file is: “Value Error: ‘-’ is not allowed in a comment node”. The initial exception is in “Tkinter callback”

So, the logs will be forthcoming.

To answer your question: yes. The same client works with one server but not the other.

Attached you can see the timeline from each connection. When connected to the 2020 R2 Essential+ server, nothing appears on the timeline. I know data is there as my plug-in reacts. In my own logs, I see that my StartGetSequences() is never called when connected to the Essential+ server.

Ty

I guess I’m back to my “should it work” question. From the logs, I would guess not.

Ty

From the Smart Client Connection to Essential 2020 R2:

2020-08-28 09:35:04.762-04:00 [ 1] DEBUG - Debug: LicenseManager ():Licenses: Length=14, XML=
2020-08-28 09:35:04.765-04:00 [ 1] DEBUG - Debug: LicenseManager ():Registrations: Name=SC Concurrent License, Type=MIPSDK-SCConcurrentLicense, Counter=0
2020-08-28 09:35:04.765-04:00 [ 1] DEBUG - Debug: LicenseManager ():Registrations: Name=Server Connection License Sample, Type=MIPSDK-ServerConnectionLicense, Counter=0
2020-08-28 09:35:04.765-04:00 [ 1] DEBUG - Debug: LicenseManager ():Registrations: Name=Site License Sample, Type=MIPSDK-SiteLicense, Counter=1
2020-08-28 09:35:04.972-04:00 [ 5] DEBUG - Debug: MetadataSearchLoginPlugin ():Metadata search feature not licensed
2020-08-28 09:40:08.460-04:00 [ 1] DEBUG - Debug: UnRegisterReceiver ():Unable to find object to UnRegister
2020-08-28 09:40:08.462-04:00 [ 1] DEBUG - Error: UnRegisterCommunicationFilter ():Invalid or null parameter : communicationFilterObject

From the Smart Client connection to Corporate 2020 R1:

2020-08-28 09:41:08.482-04:00 [ 1] DEBUG - Debug: LicenseManager ():Licenses: Length=14, XML=
2020-08-28 09:41:08.485-04:00 [ 1] DEBUG - Debug: LicenseManager ():Registrations: Name=SC Concurrent License, Type=MIPSDK-SCConcurrentLicense, Counter=0
2020-08-28 09:41:08.486-04:00 [ 1] DEBUG - Debug: LicenseManager ():Registrations: Name=Server Connection License Sample, Type=MIPSDK-ServerConnectionLicense, Counter=0
2020-08-28 09:41:08.486-04:00 [ 1] DEBUG - Debug: LicenseManager ():Registrations: Name=Site License Sample, Type=MIPSDK-SiteLicense, Counter=1
2020-08-28 09:41:08.486-04:00 [ 1] DEBUG - Debug: LicenseManager ():Registrations: Name=Milestone Smart Client View Layout Builder, Type=Milestone.CustDev.ViewLayoutBuilderLicenseId, Counter=1
2020-08-28 09:41:08.616-04:00 [ 18] DEBUG - Error: MetadataSearchLoginPlugin ():There was error fetching configuration: System.NotSupportedException: Specified method is not supported.
at VideoOS.Management.VmoClient.VmoObject.ThrowIfCheckVersionFail(ServerVersion requiredVersion)
at VideoOS.MetadataSearch.Plugin.LoginPlugin.ConfigurationManager.Load(VmoClient vmoClient)
at VideoOS.MetadataSearch.Plugin.LoginPlugin.MetadataSearchLoginPlugin.LoginFlowExecute()
2020-08-28 09:41:15.993-04:00 [ 35] DEBUG - Debug: ServerStaus ():Connected to the event server.

I realize that I am not sure what you are doing. From your initial question I had an idea it was like the Smart Client Timeline Population Plug-in sample. (https://doc.developer.milestonesys.com/html/index.html?base=samples/sctimeline.html&tree=tree_1.html)

Please disable all other MIP plugins and tell me whether this sample works for you unmodified.

https://developer.milestonesys.com/s/article/MIP-SDK-remove-plugins-that-you-do-not-use-using-the-tool-in-MIP-SDK-Tray-Manager

https://developer.milestonesys.com/s/article/MIP-SDK-plugins-remove-the-plugins-you-do-not-use

If this plugin sample works but your plugin does not work please elaborate on what your plugin does and methods used in the plugin.

PS. The logging should be clearer when not having plugin samples from the MIP SDK that are not relevant to the debugging running, so this another reason to disable them..

Sorry for the confusion. I used the Smart Client Timeline Population Plug-in sample to enhance my plug-in. It was my plug-in that I reporting the problem with.

But, I have learned a lot today. The problem that I reported is no longer a problem. We can close this question out.

The root of my problem was that when I connected to the Essential+ server, my Smart Client settings were changed such that “display additional data” was no longer set to show (even though follow server was unchecked).

I also learned that two SC plug-ins had been installed by a 3rd party app. One of them was named MetadataSearchLoginPlugin. That error was not related to my plug-in at all.

I have uploaded a video that lets you see what I saw. This is using the sample plug-in only. Included just for the sake of completeness.

localhost is the Corporate server (DESKTOP-LL6RFPL)

192.168.10.226 is the Essentials+ server (DESKTOP-R2ABB8P)

First login, is to Corporate. Next two logins are to the Essentials+ server.

Thank you for sharing your observations.

There is no sample named MetadataSearchLoginPlugin, if the plugin is not your own you should tell the developer who made the plugin (if you know who) about your experience. Ideally this should be debugged.

About settings to follow server: The server setting is set in the Management Client in a Smart Client Profile.

When using XProtect Essential+ the case is that Smart Client Profiles are not supported. You could explain how it works by saying that a profile exist but it contains default setting that you’re unable to change.

In your case it means that if you have a customer using XProtect Corporate, Expert or Professional+ you can tell the customer how to set and use a Smart Client Profile, if you have a customer using XProtect Express+ or Essentials+ every Smart Client user has to make the settings the way you do in the video.

Ref. https://doc.milestonesys.com/2020r2/en-US/standard_features/sf_mc/sf_systemoverview/mc_productcomparisonchar.htm