Nx Meta4.0: can channel name be added to DeviceInfo of Engine::obtainDeviceAgent?
AnsweredWhen a plugin is launched, DeviceInfo is delivered at Engine::obtainDeviceAgent. DeviceInfo structure is the following:
struct DeviceInfo
{
DeviceInfo()
{
vendor[0] = 0;
model[0] = 0;
firmware[0] = 0;
uid[0] = 0;
sharedId[0] = 0;
url[0] = 0;
login[0] = 0;
password[0] = 0;
}
static const int kStringParameterMaxLength = 256;
static const int kTextParameterMaxLength = 1024;
char vendor[kStringParameterMaxLength];
char model[kStringParameterMaxLength];
char firmware[kStringParameterMaxLength];
char uid[kStringParameterMaxLength];
char sharedId[kStringParameterMaxLength];
char url[kTextParameterMaxLength];
char login[kStringParameterMaxLength];
char password[kStringParameterMaxLength];
int channel = 0;
int logicalId = 0;
};
The content delivered is the following: (Some bits are intentionally forged)
ch:0
model:IPCAM-1234
uid:{016e68ad-170f-2bad-664c-583d31d323cb}
url:http://192.168.211.247:80/onvif/device_service
lch:0
shairdid:00-13-23-09-D3-F7
vendor:IPCAM
firmware:1.12.0.999
login:root
password:103987648
By the way, could you deliver also the channel name, which is human readable? Though the information could uniquely identifies the channel, it is hard to distinguish between many channels from the plugin. If a channel name can be given, one can match using the channel name?
-
Hi Jason,
What is the scenario when you need a camera name?
This request totally makes sense and we are considering doing this, but more context will help us evaluate the importance.
0 -
Aside a settings pop-up menu provided by Nx, we try to make an independant settings application which directly communicates and manages launched plugins. There are things that a passive plugin alone cannot perform. One of them are license activation.
The setting application will show the launched channels list which should look like the following picture.
I am afraid that there is no human readable and identifiable name. We could use Nx API to query channel names set by a user. Since the setting application would be used mostly at client machine, it became a bit tricky to call the API which would also require authentication and network address and port settting, which we have to pop up a dialog box asking a user to type in.
If applicable, when something such as a name is changed by a user, I appreciate if it calls back with updated information.
Please correct me if my understanding is not correct.
0 -
Will it help if you implement plugin settings for the channel using web page? This way the user will see relevant information inside a specific camera dialog.
0 -
In order to avoid confustion, the channel name I meant is the name a user would set on Nx application, e.g., 'Rear gate of the house'.
Do you mean that we pop up a dialog showing channel information from the plugin? I think I need more explanation.
0 -
The plugin can define settings for a specific channel in two ways: in form of a list of parameters which will be shown as a form inside the desktop client or using URL, which will be opened inside the embedded browser.
Using the second way it is possible to implement a more complicated custom interface. The user will see this interface when he opens camera settings dialog
0 -
Thanks for the explanation. We prefer the second way. Our analytics plugin requires complicated GUI type dialog. By the way, if a plugin is implemented providing web pages, how is it served and who is serving HTML and Javascript code?
0 -
We designed this scenario for two cases:
- Video Analytics works as a separate service and plugin only establishes communication with that service
- There is a separate configuration service
In both cases, the pages should be served by some service outside the Nx system.
Also, we can provide node.js examples which can work as such a separate service.
Can you please describe in more details, how does your solution work? What is the architecture and what are those advanced functions you need except license activation?
Probably we can figure out some better way to solve it.
0 -
The plugin we are implementing contains the video analytics engine and does not communicate outside for data processing. Everything is processed internally and returns metadata to Nx System though plugin API. This is because the image data is huge.
There is a separate service which monitors the creation and deletion of plugins. Every time the plugin starts something, it asks the service for additional information such as configuration of zones and rules. Frankly setting up zones and rules are the most complex part which requires decent UX.
This service is also responsible to lauch configuration setup window and stores settings for a certain plugin. When a plugin is created, the plugin asks for what configuration it has to apply.
Practically, the plugin does not have anything to show. Instead it asks the service to launch some windows to do things for the plugin.
If you send me your email address, I can send you our manual for configuraiton.
0 -
Sure, please send to meta@networkoptix.com
In this scenario, the thing we recommend short term is to ask for some account credentials using the plugin settings and use it to make API requests for additional information.
We are going to expose all API requests to plugins in a more convenient way, but we don't know yet if we will be able to support it in the upcoming release.
0 -
I have sent the manual.
OK, we will make an API request call to get the information until you provide more convenient way.
0
Please sign in to leave a comment.
Comments
10 comments