UNPKG

ts-onvif

Version:

Client to ONVIF devices

122 lines (121 loc) 3.87 kB
/** * 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>; }