deviceModel.ts 2.8 KB
import { StructJSON } from './modelOfMatterModel';
import { BasicPageParams } from '/@/api/model/baseModel';
import { AlarmStatus } from '/@/views/alarm/log/config/detail.config';
export enum DeviceState {
  INACTIVE = 'INACTIVE',
  ONLINE = 'ONLINE',
  OFFLINE = 'OFFLINE',
}
export enum DeviceTypeEnum {
  GATEWAY = 'GATEWAY',
  DIRECT_CONNECTION = 'DIRECT_CONNECTION',
  SENSOR = 'SENSOR',
}
export type DeviceProfileQueryParam = BasicPageParams & DeviceProfileParam & DeviceId;
export type DeviceQueryParam = BasicPageParams & DeviceParam;
export type DeviceParam = {
  name?: string;
  deviceProfileId?: string;
};
export type DeviceProfileParam = {
  name?: string;
  status?: AlarmStatus;
};
export type DeviceId = {
  id?: string;
};

export interface DeviceModel {
  id: string;
  name: string;
  deviceInfo: any;
  activeTime: string;
  deviceState: DeviceState;
  alarmStatus: number;
  profileId: string;
  label: string;
  lastConnectTime: string;
  deviceType: DeviceTypeEnum;
}

export interface DeviceProfileModel {
  id: string;
  name: string;
  transportType: string;
  createTime: string;
  description: string;
}

export type ChildDeviceParams = BasicPageParams & {
  formId: string;
};

export interface Configuration {
  type: string;
}

export interface TransportPayloadTypeConfiguration {
  transportPayloadType: string;
  deviceTelemetryProtoSchema: string;
  deviceAttributesProtoSchema: string;
  deviceRpcRequestProtoSchema: string;
  deviceRpcResponseProtoSchema: string;
  enableCompatibilityWithJsonPayloadFormat: boolean;
  useJsonPayloadFormatForDefaultDownlinkTopics: boolean;
}

export interface ClientSettings {
  edrxCycle: string;
  pagingTransmissionWindow: string;
  powerMode: string;
  psmActivityTimer: number;
}

export interface TransportConfiguration {
  type: string;
  deviceTelemetryTopic: string;
  deviceAttributesTopic: string;
  transportPayloadTypeConfiguration: TransportPayloadTypeConfiguration;
  clientSettings: ClientSettings;
  coapDeviceTypeConfiguration: {
    coapDeviceType: string;
    transportPayloadTypeConfiguration: TransportPayloadTypeConfiguration;
  };
}

export interface ProvisionConfiguration {
  type: string;
  provisionDeviceSecret?: any;
}

export interface ProfileData {
  configuration: Configuration;
  transportConfiguration: TransportConfiguration;
  provisionConfiguration: ProvisionConfiguration;
  alarms?: any;
}

export interface DeviceRecord {
  id: string;
  creator: string;
  createTime: string;
  name: string;
  tenantId: string;
  transportType: string;
  provisionType: string;
  deviceType: string;
  tbProfileId: string;
  profileData: ProfileData;
  defaultQueueName: string;
  image: string;
  type: string;
  default: boolean;
  defaultRuleChainId: string;
}

export interface DeviceModelOfMatterAttrs {
  name: string;
  identifier: string;
  detail: StructJSON;
}