UNPKG

ts-onvif

Version:

Client to ONVIF devices

175 lines (174 loc) 7.83 kB
/** * DeviceIO ver10 module * @author Andrew D.Laptev <a.d.laptev@gmail.com> * @see https://www.onvif.org/ver10/deviceio.wsdl */ import { Onvif } from './onvif'; import Service from './service'; import { ReferenceToken } from './interfaces/common'; import { AudioOutputConfiguration, AudioOutputConfigurationOptions, AudioSourceConfiguration, AudioSourceConfigurationOptions, DigitalInput, RelayOutput, VideoOutput, VideoOutputConfiguration, VideoOutputConfigurationOptions, VideoSourceConfiguration, VideoSourceConfigurationOptions } from './interfaces/onvif'; import { SetRelayOutputState } from './interfaces/devicemgmt'; import { Capabilities, DigitalInputConfigurationOptions, GetAudioOutputConfiguration, GetAudioOutputConfigurationOptions, GetAudioSourceConfiguration, GetAudioSourceConfigurationOptions, GetDigitalInputConfigurationOptions, GetRelayOutputOptions, GetSerialPortConfiguration, GetSerialPortConfigurationOptions, GetVideoOutputConfiguration, GetVideoOutputConfigurationOptions, GetVideoSourceConfiguration, GetVideoSourceConfigurationOptions, RelayOutputOptions, SendReceiveSerialCommand, SendReceiveSerialCommandResponse, SerialPort, SerialPortConfiguration, SerialPortConfigurationOptions, SetAudioOutputConfiguration, SetAudioSourceConfiguration, SetDigitalInputConfigurations, SetRelayOutputSettings, SetSerialPortConfiguration, SetVideoOutputConfiguration, SetVideoSourceConfiguration } from './interfaces/deviceio'; /** * DeviceIO service * @example * ```typescript * await cam.connect(); * const caps = await cam.deviceIO.getServiceCapabilities(); * const relays = await cam.deviceIO.getRelayOutputs(); * const inputs = await cam.deviceIO.getDigitalInputs(); * await cam.deviceIO.setRelayOutputState({ * relayOutputToken: 'RelayOutputToken_1', * logicalState: 'active', * }); * ``` */ export default class DeviceIO extends Service { constructor(onvif: Onvif); private videoSourceToken; private static relayOutputToBuild; private static digitalInputsToBuild; private static serialPortConfigurationToBuild; private static serialDataToBuild; private static audioSourceConfigurationToBuild; private static audioOutputConfigurationToBuild; private static videoSourceConfigurationToBuild; private static videoOutputConfigurationToBuild; /** * Returns the capabilities of the device IO service. */ getServiceCapabilities(): Promise<Capabilities>; /** * Request the available settings and ranges for one or all relay outputs. * @param options */ getRelayOutputOptions({ relayOutputToken }?: GetRelayOutputOptions): Promise<RelayOutputOptions[]>; /** * Returns tokens of available video sources. */ getVideoSources(): Promise<ReferenceToken[]>; /** * Returns tokens of available audio sources. */ getAudioSources(): Promise<ReferenceToken[]>; /** * Returns tokens of available audio outputs. */ getAudioOutputs(): Promise<ReferenceToken[]>; /** * Returns available physical video outputs. */ getVideoOutputs(): Promise<VideoOutput[]>; /** * Returns the video source configuration for a physical video source. * @param options */ getVideoSourceConfiguration({ videoSourceToken, }: GetVideoSourceConfiguration): Promise<VideoSourceConfiguration>; /** * Returns the video output configuration for a physical video output. * @param options */ getVideoOutputConfiguration({ videoOutputToken, }: GetVideoOutputConfiguration): Promise<VideoOutputConfiguration>; /** * Returns the audio source configuration for a physical audio source. * @param options */ getAudioSourceConfiguration({ audioSourceToken, }: GetAudioSourceConfiguration): Promise<AudioSourceConfiguration>; /** * Returns the audio output configuration for a physical audio output. * @param options */ getAudioOutputConfiguration({ audioOutputToken, }: GetAudioOutputConfiguration): Promise<AudioOutputConfiguration>; /** * Modifies a video source configuration. * @param options */ setVideoSourceConfiguration({ configuration, forcePersistence }: SetVideoSourceConfiguration): Promise<void>; /** * Modifies a video output configuration. * @param options */ setVideoOutputConfiguration({ configuration, forcePersistence }: SetVideoOutputConfiguration): Promise<void>; /** * Modifies an audio source configuration. * @param options */ setAudioSourceConfiguration({ configuration, forcePersistence }: SetAudioSourceConfiguration): Promise<void>; /** * Modifies an audio output configuration. * @param options */ setAudioOutputConfiguration({ configuration, forcePersistence }: SetAudioOutputConfiguration): Promise<void>; /** * Returns valid ranges for video source configuration parameters. * @param options */ getVideoSourceConfigurationOptions({ videoSourceToken, }: GetVideoSourceConfigurationOptions): Promise<VideoSourceConfigurationOptions>; /** * Returns valid ranges for video output configuration parameters. * @param options */ getVideoOutputConfigurationOptions({ videoOutputToken, }: GetVideoOutputConfigurationOptions): Promise<VideoOutputConfigurationOptions>; /** * Returns valid ranges for audio source configuration parameters. * @param options */ getAudioSourceConfigurationOptions({ audioSourceToken, }: GetAudioSourceConfigurationOptions): Promise<AudioSourceConfigurationOptions>; /** * Returns valid ranges for audio output configuration parameters. * @param options */ getAudioOutputConfigurationOptions({ audioOutputToken, }: GetAudioOutputConfigurationOptions): Promise<AudioOutputConfigurationOptions>; /** * Returns relay outputs available on the device. */ getRelayOutputs(): Promise<RelayOutput[]>; /** * Modifies relay output settings. * @param options */ setRelayOutputSettings({ relayOutput }: SetRelayOutputSettings): Promise<void>; /** * Sets the logical state of a relay output. * @param options */ setRelayOutputState({ relayOutputToken, logicalState }: SetRelayOutputState): Promise<void>; /** * Returns digital inputs available on the device. */ getDigitalInputs(): Promise<DigitalInput[]>; /** * Returns configuration options for digital inputs. * @param options */ getDigitalInputConfigurationOptions({ token, }?: GetDigitalInputConfigurationOptions): Promise<DigitalInputConfigurationOptions>; /** * Modifies digital input configurations. * @param options */ setDigitalInputConfigurations({ digitalInputs }: SetDigitalInputConfigurations): Promise<void>; /** * Returns serial ports available on the device. */ getSerialPorts(): Promise<SerialPort[]>; /** * Returns the configuration of a serial port. * @param options */ getSerialPortConfiguration({ serialPortToken }: GetSerialPortConfiguration): Promise<SerialPortConfiguration>; /** * Modifies the configuration of a serial port. * @param options */ setSerialPortConfiguration({ serialPortConfiguration, forcePersistance, }: SetSerialPortConfiguration): Promise<void>; /** * Returns configuration options for a serial port. * @param options */ getSerialPortConfigurationOptions({ serialPortToken, }: GetSerialPortConfigurationOptions): Promise<SerialPortConfigurationOptions>; /** * Sends data to a serial port and optionally receives a response. * @param options */ sendReceiveSerialCommand(options: SendReceiveSerialCommand): Promise<SendReceiveSerialCommandResponse>; }