ts-onvif
Version:
Client to ONVIF devices
122 lines (121 loc) • 3.87 kB
TypeScript
/**
* DoorControl ver10 module
* @author Andrew D.Laptev <a.d.laptev@gmail.com>
* @see https://www.onvif.org/ver10/pacs/doorcontrol.wsdl
*/
import { Onvif } from './onvif';
import Service from './service';
import { AccessDoor, BlockDoor, Capabilities, CreateDoor, CreateDoorResponse, DeleteDoor, DoorState, DoubleLockDoor, GetDoorInfo, GetDoorInfoList, GetDoorInfoListResponse, GetDoorInfoResponse, GetDoorList, GetDoorListResponse, GetDoors, GetDoorsResponse, GetDoorState, LockDoor, LockDownDoor, LockDownReleaseDoor, LockOpenDoor, LockOpenReleaseDoor, ModifyDoor, SetDoor, UnlockDoor } from './interfaces/doorcontrol';
/**
* DoorControl service
* @example
* ```ts
* const doorsList = await cam.doorControl.getDoorList();
* const token = doorsList.door![0].token;
* console.log((await cam.doorControl.getDoorState({ token })).doorMode);
* await cam.doorControl.unlockDoor({ token });
* console.log((await cam.doorControl.getDoorState({ token })).doorMode);
* ```
*/
export default class DoorControl extends Service {
constructor(onvif: Onvif);
private static tokensToBuild;
private static doorCapabilitiesToBuild;
private static timingsToBuild;
private static doorInfoToBuild;
private static doorToBuild;
/**
* Returns the capabilities of the door control service.
*/
getServiceCapabilities(): Promise<Capabilities>;
/**
* Returns a list of door info items.
* @param options
*/
getDoorInfoList(options?: GetDoorInfoList): Promise<GetDoorInfoListResponse>;
/**
* Returns door info items for the requested tokens.
* @param options
*/
getDoorInfo({ token }: GetDoorInfo): Promise<GetDoorInfoResponse>;
/**
* Returns a list of door items.
* @param options
*/
getDoorList(options?: GetDoorList): Promise<GetDoorListResponse>;
/**
* Returns door items for the requested tokens.
* @param options
*/
getDoors({ token }: GetDoors): Promise<GetDoorsResponse>;
/**
* Creates a new door.
* @param options
*/
createDoor({ door }: CreateDoor): Promise<CreateDoorResponse['token']>;
/**
* Creates or replaces a door (requires ClientSuppliedTokenSupported).
* @param options
*/
setDoor({ door }: SetDoor): Promise<void>;
/**
* Modifies an existing door.
* @param options
*/
modifyDoor({ door }: ModifyDoor): Promise<void>;
/**
* Deletes a door.
* @param options
*/
deleteDoor({ token }: DeleteDoor): Promise<void>;
/**
* Returns the current state of a door.
* @param options
*/
getDoorState({ token }: GetDoorState): Promise<DoorState>;
/**
* Grants momentary access to a door.
* @param options
*/
accessDoor(options: AccessDoor): Promise<void>;
/**
* Locks a door.
* @param options
*/
lockDoor({ token }: LockDoor): Promise<void>;
/**
* Unlocks a door.
* @param options
*/
unlockDoor({ token }: UnlockDoor): Promise<void>;
/**
* Blocks a door.
* @param options
*/
blockDoor({ token }: BlockDoor): Promise<void>;
/**
* Puts a door in lock-down mode.
* @param options
*/
lockDownDoor({ token }: LockDownDoor): Promise<void>;
/**
* Releases lock-down mode on a door.
* @param options
*/
lockDownReleaseDoor({ token }: LockDownReleaseDoor): Promise<void>;
/**
* Puts a door in lock-open mode.
* @param options
*/
lockOpenDoor({ token }: LockOpenDoor): Promise<void>;
/**
* Releases lock-open mode on a door.
* @param options
*/
lockOpenReleaseDoor({ token }: LockOpenReleaseDoor): Promise<void>;
/**
* Activates double-lock on a door.
* @param options
*/
doubleLockDoor({ token }: DoubleLockDoor): Promise<void>;
}