ts-onvif
Version:
Client to ONVIF devices
175 lines (174 loc) • 7.83 kB
TypeScript
/**
* 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>;
}