More example module work
This commit is contained in:
@@ -2,7 +2,7 @@ import type { Express } from "express";
|
||||
import express from "express";
|
||||
import { jsonization, types } from "@aas-core-works/aas-core3.0rc02-typescript";
|
||||
import AASInterfaceServer from "../server";
|
||||
import type { OnRequestCallback } from "../server";
|
||||
import type { OnRequestCallback, Request } from "types/requests";
|
||||
import AASStore from "../aasStore";
|
||||
|
||||
type Config = {
|
||||
@@ -11,7 +11,8 @@ type Config = {
|
||||
}
|
||||
|
||||
export default class HTTPInterfaceServer extends AASInterfaceServer<Config> {
|
||||
public name: string = "HTTPInterfaceServer";
|
||||
protected name: string = "HTTPInterfaceServer";
|
||||
protected supportsSubscriptions: boolean = false; // TODO, longpolling?
|
||||
|
||||
private app: Express = express();
|
||||
private server: any = null;
|
||||
@@ -22,10 +23,9 @@ export default class HTTPInterfaceServer extends AASInterfaceServer<Config> {
|
||||
}
|
||||
|
||||
public prepare(): void {
|
||||
const aas = AASStore.getInstance().getAll()[0];
|
||||
this.app.use(express.json());
|
||||
this.app.get("/aas", (_, res) => {
|
||||
res.json(jsonization.toJsonable(aas));
|
||||
res.json(jsonization.toJsonable(this.aas));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -40,10 +40,13 @@ export default class HTTPInterfaceServer extends AASInterfaceServer<Config> {
|
||||
}
|
||||
|
||||
public notify(event: any): void {
|
||||
this.observers.forEach(observer => {
|
||||
// TODO
|
||||
// Notify long pollers
|
||||
});
|
||||
}
|
||||
|
||||
protected findElementByRequest(request: string): any | null {
|
||||
throw new Error("Method not implemented.");
|
||||
|
||||
protected findElementByRequest(request: Request) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
import * as mqtt from "mqtt";
|
||||
import { Property, Operation, OperationVariable, BasicEventElement } from "@aas-core-works/aas-core3.0rc02-typescript/dist/types/types";
|
||||
import InterfaceConnectionObject from "interfaceConnectionObject";
|
||||
|
||||
class MQTTConnector extends InterfaceConnectionObject<mqtt.IClientOptions> {
|
||||
protected name: string = "MQTT Connector";
|
||||
protected uriProtocol: string[] = ["mqtt", "mqtts"];
|
||||
protected connectionType: "ON_DEMAND" | "PERMANENT" = "PERMANENT";
|
||||
protected supportsSubscriptions: boolean = true;
|
||||
|
||||
private client: mqtt.MqttClient|null = null;
|
||||
|
||||
public connect(): boolean {
|
||||
if (!this.client) this.client = mqtt.connect(this.config);
|
||||
return this.client.connected;
|
||||
}
|
||||
|
||||
public disconnect(): void {
|
||||
if (this.client) this.client.end();
|
||||
this.client = null;
|
||||
}
|
||||
|
||||
public readProperty(prop: Property): void {
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
|
||||
public writeProperty(prop: Property, value: any): void {
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
|
||||
public observeProperty(prop: Property, callback: (value: any) => void): boolean {
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
|
||||
public callActionSync(action: Operation, args: OperationVariable[]) {
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
|
||||
public callActionAsync(action: Operation, args: OperationVariable[]): Promise<boolean> {
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
|
||||
public readAsyncActionResponse(action: Operation): Promise<any> {
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
|
||||
public subscribeEvent(callback: (event: BasicEventElement) => void): boolean {
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
|
||||
public unsubscribeEvent(): void {
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user