Skip to content

describe Services #47

@JakobVogelsang

Description

@JakobVogelsang

As a user of scl-diff I would like to have the SCL element Server description.

TBD not ready yet

** Requirements **

  • return a Services
type CommProt = {
  /** attribute ipv6 defaulting to false */
  ipv6: boolean;
};

type RedProt = {
  /** attribute hsr defaulting to false */
  hsr: boolean;
  /** attribute prp defaulting to false */
  prp: boolean;
  /** attribute rstp defaulting to false */
  rstp: boolean;
};

type ValueHandling = {
  /** attribute setToRO defaulting to true */
  setToRO: boolean;
};

type SupSubscription = {
  /** attribute maxGo */
  maxGo: number;
  /** attribute maxSv */
  maxSv: number;
};

type TimeSyncProt = {
  /** attribute sntp defaulting to true */
  sntp: boolean;
  /** attribute iec61850_9_3 defaulting to false */
  iec61850_9_3: boolean;
  /** attribute c37_238 defaulting to false */
  c37_238: boolean;
  /** attribute other defaulting to false */
  other: boolean;
};

type ClientServices = {
  /** attribute goose defaulting to false */
  goose: boolean;
  /** attribute gsse defaulting to false */
  gsse: boolean;
  /** attribute bufReport defaulting to false */
  bufReport: boolean;
  /** attribute unbufReport defaulting to false */
  unbufReport: boolean;
  /** attribute readLog defaulting to false */
  readLog: boolean;
  /** attribute sv defaulting to false */
  sv: boolean;
  /** attribute supportsLdName defaulting to false */
  supportsLdName: boolean;
  /** attribute maxAttributes */
  maxAttributes?: number;
  /** attribute maxReports */
  maxReports?: number;
  /** attribute maxGOOSE */
  maxGOOSE?: number;
  /** attribute maxSMV */
  maxSMV?: number;
  /** attribute rGOOSE defaulting to false */
  rGOOSE: boolean;
  /** attribute rSV defaulting to false */
  rSV: boolean;
  /** attribute noIctBinding defaulting to false */
  noIctBinding: boolean;
  /** child  McSecurity */
  mcSecurity?: McSecurity;
  /** child  TimeSyncProt */
  timeSyncProt?: TimeSyncProt;
};

type ConfLNs = {
  /** attribute fixPrefix defaulting to false */
  fixPrefix: boolean;
  /** attribute fixLnInst defaulting to false */
  fixLnInst: boolean;
};

type FileHandling = {
  /** attribute mms defaulting to true */
  mms: boolean;
  /** attribute ftp defaulting to false */
  ftp: boolean;
  /** attribute ftps defaulting to false */
  ftps: boolean;
};

type ServiceWithMax = {
  /** ServicesWithMax attributes max */
  max: number;
};

interface SMVsc extends ServiceWithMax {
  /** attribute delivery defaulting to "multicast" */
  delivery: string;
  /** attribute deliveryConf defaulting to false */
  deliveryConf: boolean;
  /** attribute sv defaulting to false */
  sv: boolean;
  /** attribute rSV defaulting to false */
  rSV: boolean;
}

interface GOOSEcapabilities extends ServiceWithMax {
  /** attribute fixedOffs defaulting to false */
  fixedOffs: boolean;
  /** attribute goose defaulting to true */
  goose: boolean;
  /** attribute rGOOSE defaulting to false */
  rGOOSE: boolean;
}

type McSecurity = {
  /** attribute signature defaulting false */
  signature: boolean;
  /** attribute encryption defaulting false */
  encryption: boolean;
};

type ServiceSettings = {
  /** attribute cbName defaulting to "Fix" */
  cbName: string;
  /** attribute datSet defaulting to "Fix" */
  datSet: string;
};

interface SMVSettings extends ServiceSettings {
  /** attribute svID defaulting to "Fix" */
  svID: string;
  /** attribute optFields defaulting to "Fix" */
  optFields: string;
  /** attribute smpRate defaulting to "Fix" */
  smpRate: string;
  /** attribute samplesPerSec defaulting to false */
  samplesPerSec: boolean;
  /** attribute pdcTimeStamp defaulting to false */
  pdcTimeStamp: boolean;
  /** attribute synchSrcId defaulting to false */
  synchSrcId: boolean;
  /** attribute nofASDU defaulting to "Fix" */
  nofASDU: string;
  /** attribute kdaParticipant defaulting to false */
  kdaParticipant: boolean;
  /** children  SmpRate */
  SmpRate: number[];
  /** children SamplesPerSec */
  SamplesPerSec: number[];
  /** children SecPerSamples*/
  SecPerSamples: number[];
  /** child element McSecurity */
  mcSecurity?: McSecurity;
}

interface GSESettings extends ServiceSettings {
  /** attribute appID defaulting to "Fix" */
  appID: string;
  /** attribute dataLabel defaulting to "Fix" */
  dataLabel: string;
  /** attribute kdaParticipant defaulting to false */
  kdaParticipant: boolean;
  /** child element McSecurity */
  mcSecurity?: McSecurity;
}

interface LogSettings extends ServiceSettings {
  /** attribute logEna defaulting to "Fix" */
  logEna: string;
  /** attribute trgOps defaulting to "Fix" */
  trgOps: string;
  /** attribute intgPd defaulting to "Fix" */
  intgPd: string;
}

interface ReportSettings extends ServiceSettings {
  /** attribute rptID defaulting to "Fix" */
  rptID: string;
  /** attribute optFields defaulting to "Fix" */
  optFields: string;
  /** attribute bufTime defaulting to "Fix" */
  bufTime: string;
  /** attribute trgOps defaulting to "Fix" */
  trgOps: string;
  /** attribute intgPd defaulting to "Fix" */
  intgPd: string;
  /** attribute resvTms defaulting to false */
  resvTms: boolean;
  /** attribute owner defaulting to false */
  owner: boolean;
}

interface ServiceConfReportControl extends ServiceWithMax {
  /** bufMode attribute defaulting to both */
  bufMode: string;
  /** bufConf attribute defaulting to false */
  bufConf: boolean;
  /** maxBuf attribute defaulting to max */
  maxBuf: number;
}

interface ServiceWithMaxAndMaxAttributes extends ServiceWithMax {
  maxAttributes?: number;
}

interface ServiceForConfDataSet extends ServiceWithMaxAndMaxAttributes {
  /** ServiceForConfDataSet attributes defaulting to true */
  modify: boolean;
}

type ResvTms = {
  /** resvTms attribute defaulting false */
  resvTms: boolean;
};

type SettingGroups = {
  /** SettingGroups child SGEdit */
  sGEdit?: ResvTms;
  /** SettingGroups child ConfSG */
  confSG?: ResvTms;
};

type ServiceWithOptionalMax = {
  max?: number;
};

export type ServicesDescription = {
  /** Services attribute nameLength defaulting to 32 */
  nameLength: number;
  /** Services child DynAssociation */
  dynAssociation?: ServiceWithOptionalMax;
  /** Services child SettingGroups */
  settingGroups?: SettingGroups;
  /** Services child GetDirectory */
  getDirectory: boolean;
  /** Services child GetDataObjectDefinition */
  getDataObjectDefinition: boolean;
  /** Services child DataObjectDirectory */
  dataObjectDirectory: boolean;
  /** Services child GetDataSetValue */
  getDataSetValue: boolean;
  /** Services child SetDataSetValue */
  setDataSetValue: boolean;
  /** Services child DataSetDirectory */
  dataSetDirectory: boolean;
  /** Services child ConfDataSet */
  confDataSet?: ServiceForConfDataSet;
  /** Services child DynDataSet */
  dynDataSet?: ServiceWithMaxAndMaxAttributes;
  /** Services child ReadWrite */
  readWrite: boolean;
  /** Services child TimerActivatedControl */
  timerActivatedControl: boolean;
  /** Services child ConfReportControl */
  confReportControl?: ServiceConfReportControl;
  /** Services child GetCBValues */
  getCBValues: boolean;
  /** Services child ConfLogControl */
  confLogControl?: ServiceWithMax;
  /** Services child ReportSettings */
  reportSettings?: ReportSettings;
  /** Services child LogSettings */
  logSettings?: LogSettings;
  /** Services child GSESettings */
  gSESettings?: GSESettings;
  /** Services child SMVSettings */
  sMVSettings?: SMVSettings;
  /** Services child GSEDir */
  gSEDir: boolean;
  /** Services child GOOSE */
  gOOSE?: GOOSEcapabilities;
  /** Services child SMVsc */
  sMVsc?: SMVsc;
  /** Services child FileHandling */
  fileHandling?: FileHandling;
  /** Services child ConfLNs */
  confLNs?: ConfLNs;
  /** Services child ClientServices */
  clientServices?: ClientServices;
  /** Services child ConfLdName */
  confLdName: boolean;
  /** Services child SupSubscription */
  supSubscription?: SupSubscription;
  /** Services child ConfSigRef */
  confSigRef?: ServiceWithMax;
  /** Services child ValueHandling */
  valueHandling?: ValueHandling;
  /** Services child RedProt */
  redProt?: RedProt;
  /** Services child TimeSyncProt */
  timeSyncProt?: TimeSyncProt;
  /** Services child CommProt */
  commProt?: CommProt;
};

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions