Can I make any user feedback message on the Video stream?
AnsweredHello,
I am developing a Network Optix plugin, and we have restricted the number of activated plugins based on the customer's license. However, I find it difficult to notify users when the plugin doesn't work due to license limitations. Ideally, I would like to overlay a message or image on the video stream, but I guess that is not possible.
Currently, I am using the Plugin Diagnostic Event to provide feedback. But it is not user-friendly because customers have to set up Event Rules for every stream to see any feedback messages.
Therefore, is there any better way to offer feedback to users? For example:
- Pop-up messages
- Overlays on video
- etc.
P.S. I also wonder if there is any read-only GUI text field available to show feedback to users. (I need to notify them about the remaining time for some analytics features.)
-
The read-only GUI I mentioned at last, is the thing like in the screen capture.
If there is a feature to describe such a read only feedback (ex. Time Remains), it will make big difference in plugin service. Currently, we have to modify something on the text field and click "Apply button" to update and see Feedback (Time Remains). Therefore, it is not a real time information also.
0 -
Hi IanKwon,
Thanks for your question, you can use "Hyperlink, ""Banner", "Placeholder" to achieve your goal if required.

The Banner would show the static text so you would be able to utilize that for your notice in general. In fact, Nx plugin may use the same setting models within in our plugin.
There are more models you could find in the SDK - src/nx/sdk/settings_model.md
Thanks.
0 -


Like an capture images above, I think we can't deliever feedback through this "Banner". Because it dose not have any "value" to modify from the code. Or, do you mean I can use some variable (ex. std::string) within the json which is consisting GUI component?
I have no idea what is your idea to utlize the "banner" to show changable string. ( = user feedback = "4hour 4min 12sec" on the second capture image )0 -
Of course we can show that timer user feedback using the Banner. But we should split json script, right before the changable string, and right after it also.
//example code of Using Banner for the User Feedback
// engine.cpp
std::string toJsonLiteral(const std::string& input) {
return R"json(" + input + R"json(")";
}
std::string timeRemain = std::to_string(m_timeRemain);
kSettingModel = heatMaePage_split1 + toJsonLiteral(timeRemain) + heatMapPage_split2This is not desirable thing to do, because this static Json string is used within Engine class, so we maybe can't set feedback for each streamings. (If we change the "text" of the banner to express Feedback in stream A, this is going to be applied for every stream, since we put this directly into the json String)
So, there are two things we can think about.
1. I just wondered if there is any desirable GUI feature for the User Feedback. (But I guess the Banner is the best, for now. I am afraid that there is no feature which is designed to show user-feedback.)
2. Even when I show feedback with a text field, still I can't update its "feedback value (Remain Time)" automatically. User must have to click "Apply" button to see updated feedback value.
0 -
Hi IanKwon,
Thanks for your question and please check the comment below. I assume you were asking the dynamically updated function if I understand correctly.
There could have a few options:
1. At the moment, yes, there is no auto-refresh feature on the settings page of a plugin, so if you are using the the banner/text field for static text, then your user will need click refresh if they want to see the dialog always opened.
However, I don't think there will be many cases the plugin will be opened and activated all the time.
The information would be refreshed if the page was switched to other tab as well as the dialog was closed then opened. So this should be fine in most of the time.2. As you may know, the plugin can also trigger events, or create the event.
You may create an event called "license notice", you may send out the event, then the user can define what actions they want.
https://support.networkoptix.com/hc/en-us/articles/360026164374-Rules-Engine-EventsThat being said you can offload the behavior to the user, they might see that every X hours if they want.
Hope this helps.
Thanks.0 -
Thank you for your adivce. It is helpful to make it clear that we don't have auto-refresh feature on the setting page, and I understand what is the recommended way to notify the "real-time" information to the users.
That is, instead of using Setting page of plugin, it would be better to utilize the "Event call" to notify the real-time information. I needed to think in more flexible way. It was helpful, thank you Mr. Ichiro.0 -
Hi, Ichiro. I have resumed to this issue again.
You have mentioned an event called "license notice".
And I guess the "license notice" is example name of the "Analytics Event".
But we have another type of the event like "Diagnostic Event" like below:
Diagnostic Event Example Code:pushPluginDiagnosticEvent(
IPluginDiagnosticEvent::Level::error,
"Plugin Licnese Limit",
"This is a explanation for the Diagnostic Event");This "Plugin Diagnostic Event" type is able to be called even without the "Analytics Plugin Selection" on the Event Rules Page, but adding Single "Diagnostic Event" rule is enough to activate that.
But I still need to force customer to assign "Diagnostic Event" for every Streaming
on the Event Rules page. So,
Is there any Event type that is activated all the time, without any User-Setting?0
Please sign in to leave a comment.
Comments
7 comments