onvif-nvt-ts
Version:
Wrapper for ONVIF spec to control NVT (Network Video Transitter) devices. Forked and added TypeScript support from onvif-nvt.
82 lines (81 loc) • 3.22 kB
TypeScript
import URL from 'url-parse';
import Analytics from './modules/analytics';
import Core from './modules/core';
import Events from './modules/events';
import Media from './modules/media';
import Media2 from './modules/media2';
import Ptz from './modules/ptz';
/**
* Wrapper class for all onvif modules to manage an Onvif device (camera).
*/
export default class Camera {
core?: Core;
analytics?: Analytics;
events?: Events;
media?: Media;
media2?: Media2;
ptz?: Ptz;
rootPath: any;
serviceAddress: URL;
timeDiff: number;
address: any;
port: any;
username: any;
password: any;
deviceInformation: any;
profileList: any[];
defaultProfile: any;
/**
* Add a module to Camera. The available modules are:
* <ul>
* <li>analytics - automatically added based on capabilities</li>
* <li>core - automatically added</li>
* <li>events - automatically added based on capabilities</li>
* <li>media - automatically added based on capabilities</li>
* <li>media2</li>
* <li>ptz - automatically added based on capabilities</li>
* </ul>
* @param {string} name The name of the module.
*/
add(name: string): Promise<void>;
/**
* Connect to the specified camera.
* @param address The camera's address
* @param port Optional port (80 used if this is null)
* @param username The username for the account on the camera. This is optional if your camera does not require a username.
* @param password The password for the account on the camera. This is optional if your camera does not require a password.
* @param servicePath The service path for the camera. If null or 'undefined' the default path according to the ONVIF spec will be used.
*/
connect(address: string, port?: number, username?: string, password?: string, servicePath?: string): Promise<unknown>;
/**
* Change or remove authentication.
* @param username The username for the account on the camera. This is optional if your camera does not require a username.
* @param password The password for the account on the camera. This is optional if your camera does not require a password.
*/
setAuth(username?: string, password?: string): void;
/**
* Returns the ONVIF device's informaton. Available only after connection.
*/
getInformation(): any;
/**
* Returns the default profile that will be used when one is not supplied to functions that require it. Available after connection.
*/
getDefaultProfile(): any;
coreGetSystemDateAndTime(): Promise<void>;
coreGetServices(): Promise<void>;
checkForProxy(service: {
XAddr: string;
}): void;
coreGetCapabilities(): Promise<void>;
coreGetDeviceInformation(): Promise<void>;
coreGetScopes(): Promise<void>;
mediaGetProfiles(): Promise<void>;
parseProfiles(profiles: any | any[]): any[];
/**
* Returns an array of profiles. Available after connection.
* The profiles will contain media stream URIs and snapshot URIs for each profile.
*/
getProfiles(): any[];
mediaGetStreamURI(): Promise<void>;
mediaGetSnapshotUri(): Promise<void>;
}