node-red-contrib-uos-nats 0.1.47 → 0.1.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/payloads.js +10 -0
- package/nodes/datahub-input.js +2 -2
- package/package.json +1 -1
package/lib/payloads.js
CHANGED
|
@@ -63,6 +63,16 @@ export function buildReadVariablesQuery(ids) {
|
|
|
63
63
|
builder.finish(offset);
|
|
64
64
|
return builder.asUint8Array();
|
|
65
65
|
}
|
|
66
|
+
// Helper to build definition query
|
|
67
|
+
import { ReadProviderDefinitionQueryRequest } from './fbs/weidmueller/ucontrol/hub/read-provider-definition-query-request.js';
|
|
68
|
+
|
|
69
|
+
export function buildReadProviderDefinitionQuery() {
|
|
70
|
+
const builder = new flatbuffers.Builder(32);
|
|
71
|
+
ReadProviderDefinitionQueryRequest.startReadProviderDefinitionQueryRequest(builder);
|
|
72
|
+
const offset = ReadProviderDefinitionQueryRequest.endReadProviderDefinitionQueryRequest(builder);
|
|
73
|
+
builder.finish(offset);
|
|
74
|
+
return builder.asUint8Array();
|
|
75
|
+
}
|
|
66
76
|
export function decodeVariableList(list) {
|
|
67
77
|
if (!list)
|
|
68
78
|
return [];
|
package/nodes/datahub-input.js
CHANGED
|
@@ -142,7 +142,7 @@ module.exports = function (RED) {
|
|
|
142
142
|
try {
|
|
143
143
|
// Strategy 1: Direct Provider Query (Standard for many providers)
|
|
144
144
|
this.warn(`Attempting NATS Discovery (Direct) for ${this.providerId}...`);
|
|
145
|
-
const defMsg = await nc.request(subjects.readProviderDefinitionQuery(this.providerId),
|
|
145
|
+
const defMsg = await nc.request(subjects.readProviderDefinitionQuery(this.providerId), payloads.buildReadProviderDefinitionQuery(), { timeout: 1000 });
|
|
146
146
|
const defs = payloads.decodeProviderDefinition(defMsg.data);
|
|
147
147
|
this.warn(`NATS Direct Discovery: Loaded ${defs.length} variables.`);
|
|
148
148
|
defs.forEach((def) => defMap.set(def.id, def));
|
|
@@ -151,7 +151,7 @@ module.exports = function (RED) {
|
|
|
151
151
|
try {
|
|
152
152
|
this.warn(`NATS Direct failed (${firstErr.message}), trying Registry Discovery...`);
|
|
153
153
|
// Note: 'registryProviderQuery' accesses the central registry which might proxy the definition
|
|
154
|
-
const regMsg = await nc.request(subjects.registryProviderQuery(this.providerId),
|
|
154
|
+
const regMsg = await nc.request(subjects.registryProviderQuery(this.providerId), payloads.buildReadProviderDefinitionQuery(), { timeout: 2000 });
|
|
155
155
|
const defs = payloads.decodeProviderDefinition(regMsg.data);
|
|
156
156
|
this.warn(`NATS Registry Discovery: Loaded ${defs.length} variables.`);
|
|
157
157
|
defs.forEach((def) => defMap.set(def.id, def));
|