0.1.0 • Published 1 year ago

@ebelong-lib/manager v0.1.0

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

DeviceManager

DeviceManager 是一个用于管理设备信息和属性的类。它提供了多种方法来获取和操作设备的属性和物模型。

安装

npm install @ebelong-lib/manager

使用示例

import { DeviceManager } from '@ebelong-lib/manager';
import { SchemaCore, SchemaThings } from '@ebelong-lib/lianxi-openapi';

const deviceInfo: SchemaCore.components['schemas']['DeviceInfo'] = {
  // 设备信息
  withProperties: {
    switch1: { value: '1', timestamp: 1633024800 },
    load1: { value: '0', timestamp: 1633024800 },
  },
  schemaAlias: {
    switch1: '开关1',
    load1: '负载1',
  },
};

const schema: SchemaThings.components['schemas']['DeviceSchema'][] = [
  {
    identifier: 'switch1',
    name: '开关1',
    affordance: '{"define": {"type": "boolean"}}',
  },
  {
    identifier: 'load1',
    name: '负载1',
    affordance: '{"define": {"type": "boolean"}}',
  },
];

const deviceManager = new DeviceManager(deviceInfo, schema);

// 获取设备其他属性
console.log(deviceManager.deviceOtherProperty);

// 获取设备load属性
console.log(deviceManager.deviceLoadProperty);

// 获取设备switch属性
console.log(deviceManager.deviceSwitchProperty);

// 判断是否是多路开关设备
console.log(deviceManager.isMultiSwitchDevice);

// 获取设备属性值
console.log(deviceManager.getDevicePropertyValue('switch1'));

类属性和方法

属性

  • deviceInfo: 设备信息。
  • withProperties: 设备属性。
  • schema: 设备物模型。
  • deviceOtherProperty: 设备其他属性,除了loadswitch
  • deviceOtherPropertyKeys: 设备其他属性的key。
  • deviceLoadProperty: 设备load属性。
  • deviceLoadPropertyKeys: 设备load属性对应的key。
  • deviceSwitchProperty: 设备switch属性。
  • deviceSwitchPropertyKeys: 设备switch属性对应的key。
  • isDisableCtrlOrtherProperty: 是否可以控制其他属性。
  • isMultiSwitchDevice: 是否是多路开关设备。

方法

  • isSwitchWithoutLoad(identifier: string): 判断给定的标识符是否是没有load的switch。
  • loadKey2switchKey(loadKey: string): load Key转switchKey。
  • switchKey2loadKey(switchKey: string): switch Key转loadKey。
  • getSchemaPropertyName(identifier?: string): 获取设备物模型属性名。
  • getDevicePropertyValue(identifier: string): 获取设备对应属性值。

WebSocketManager

WebSocketManager 是一个用于管理 WebSocket 连接的类。它提供了多种方法来连接、发送和接收 WebSocket 消息,并处理心跳检测和自动重连。

安装

npm install @ebelong-lib/manager

使用示例

import WebSocketManager from '@ebelong-lib/manager';
import { AuthHeader } from "@ebelong-lib/lianxi-openapi/dist/types.core";

// 初始化 WebSocketManager 实例
const baseUrl = "wss://example.com/websocket";
const headers: AuthHeader = {
  Authorization: "Bearer your_token_here",
};

WebSocketManager.init(baseUrl, headers);

// 获取 WebSocketManager 单例实例
const wsManager = WebSocketManager.instance;

// 连接 WebSocket
wsManager?.connect().then(() => {
  console.log("WebSocket 已连接");

  // 订阅消息
  wsManager.subscribe({
    code: "devicePropertyReport",
    params: {
      productID: "your_product_id",
      deviceName: "your_device_name",
    },
  }, (data) => {
    console.log("收到订阅消息:", data);
  });

  // 监听消息
  wsManager.onMessage((message) => {
    console.log("收到消息:", message);
  });
}).catch((error) => {
  console.error("WebSocket 连接失败:", error);
});

// 关闭 WebSocket 连接
wsManager?.close();

类属性和方法

属性

  • instance: 单例实例。

方法

  • init(baseUrl: string, headers?: AuthHeader): 初始化 WebSocketManager 实例。
  • connect(): 连接 WebSocket。
  • subscribe(params: WebSocketSendData["body"], deviceSubcallback?: (data: WebSocketCallBackData) => void): 订阅消息。
  • unsubscribe(params: WebSocketSendData["body"]): 取消订阅消息。
  • onMessage(callback: (message: WebSocketCallBackData) => void): 处理接收到的消息。
  • close(): 关闭 WebSocket 连接并清除实例。
0.1.0

1 year ago

0.0.9

1 year ago

0.0.8

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago