Draw the rest of the f-ing owl 🦉

This commit is contained in:
Daniel Kluge
2023-12-06 16:15:54 +01:00
parent 64279a6efa
commit 76ec6e4c9d
13 changed files with 1981 additions and 132 deletions
+17 -9
View File
@@ -4,8 +4,8 @@ import type { Request } from "./types/requests";
import type AbstractConnectionObject from "./abstractConnectionObject";
import AIMCMapper from "./AIMCMapper";
import AIDParser from "./parser/AIDParser";
import type { EndpointMetadata, InterfaceActionForm, InterfaceEventForm, InterfacePropertyForm } from "./types/aidConf";
import type { ConnectionConfiguration } from "./types/aimcConf";
import type { EndpointMetadata, InterfaceActionForm, InterfaceEventForm, InterfaceForm, InterfacePropertyForm } from "./types/aidConf";
import type { ConnectionConfiguration } from "./types/requests";
type AASRegistration = {
aas: types.Environment,
@@ -192,16 +192,24 @@ export default class MultiMessageBroker {
}
else {
const mapping = getMapping(request.target);
mapping.forms = mapping.forms.filter((form: InterfaceForm) => form.op.toLocaleLowerCase() === request.type.toLocaleLowerCase());
if (mapping.forms.length === 0) throw new ReferenceError(`No form found for ${(request.target as any).idShort} with operation ${request.type}`);
const connector = getConnector(mapping);
switch (request.type) {
case "readProperty": return connector.readProperty(mapping);
case "writeProperty": return connector.writeProperty(mapping, request.extraData.value);
case "observeProperty": return connector.observeProperty(mapping, request.extraData.callback);
case "unobserveProperty": return connector.unobserveProperty(mapping);
case "subscribeEvent": return connector.subscribeEvent(mapping, request.extraData.callback);
case "unsubscribeEvent": return connector.unsubscribeEvent(mapping);
case "invokeAction": return request.extraData.async ? connector.callActionAsync(mapping, request.extraData.args) : connector.callActionSync(mapping, request.extraData.args);
case "readProperty": return connector.readProperty(request.target, mapping);
case "writeProperty": return connector.writeProperty(request.target, mapping, request.extraData.value);
case "observeProperty": return connector.observeProperty(request.target, mapping, request.extraData.callback);
case "unobserveProperty": return connector.unobserveProperty(request.target, mapping);
case "subscribeEvent": {
return connector.subscribeEvent(request.target, mapping, request.extraData.callback);
}
case "unsubscribeEvent": {
return connector.unsubscribeEvent(request.target, mapping);
}
case "invokeAction": return request.extraData.async ? connector.callActionAsync(request.target, mapping, request.extraData.args) : connector.callActionSync(request.target, mapping, request.extraData.args);
}
}
}