UNPKG

ts-onvif

Version:

Client to ONVIF devices

99 lines (98 loc) 4.07 kB
/** * Search ver10 module * @author Andrew D.Laptev <a.d.laptev@gmail.com> * @see https://www.onvif.org/ver10/search.wsdl */ import { Onvif } from './onvif'; import Service from './service'; import { FindEventResultList, FindMetadataResultList, FindPTZPositionResultList, FindRecordingResultList, JobToken, MediaAttributes, RecordingInformation, RecordingSummary, SearchState } from './interfaces/onvif'; import { Capabilities, EndSearch, EndSearchResponse, FindEvents, FindMetadata, FindPTZPosition, FindRecordings, GetEventSearchResults, GetMediaAttributes, GetMetadataSearchResults, GetPTZPositionSearchResults, GetRecordingInformation, GetRecordingSearchResults, GetRecordingSummary, GetSearchState } from './interfaces/search'; /** * Search service * @example * ```ts * const summary = await cam.search.getRecordingSummary(); * const token = await cam.search.findRecordings({ * scope: { includedRecordings: ['RecordingToken_1'] }, * keepAliveTime: 'PT10S', * }); * const results = await cam.search.getRecordingSearchResults({ searchToken: token }); * await cam.search.endSearch({ searchToken: token }); * ``` */ export default class Search extends Service { constructor(onvif: Onvif); private static recordingTokensToBuild; private static searchScopeToBuild; private static ptzPositionFilterToBuild; private static metadataFilterToBuild; private static searchResultsRequestToBuild; /** * Returns the capabilities of the search service. */ getServiceCapabilities(): Promise<Capabilities>; /** * Returns a summary of recorded data on the device. */ getRecordingSummary(_options?: GetRecordingSummary): Promise<RecordingSummary>; /** * Returns detailed information about a recording. * @param options */ getRecordingInformation({ recordingToken }: GetRecordingInformation): Promise<RecordingInformation>; /** * Returns media attributes valid at a specific point in time. * @param options */ getMediaAttributes({ recordingTokens, time }: GetMediaAttributes): Promise<MediaAttributes[]>; /** * Starts a search for recordings matching the scope. * @param options */ findRecordings({ scope, maxMatches, keepAliveTime }: FindRecordings): Promise<JobToken>; /** * Returns results from a recording search session. * @param options */ getRecordingSearchResults(options: GetRecordingSearchResults): Promise<FindRecordingResultList>; /** * Starts a search for events in recorded data. * @param options */ findEvents({ startPoint, endPoint, scope, searchFilter, includeStartState, maxMatches, keepAliveTime, }: FindEvents): Promise<JobToken>; /** * Returns results from an event search session. * @param options */ getEventSearchResults(options: GetEventSearchResults): Promise<FindEventResultList>; /** * Starts a search for PTZ positions in recorded metadata. * @param options */ findPTZPosition({ startPoint, endPoint, scope, searchFilter, maxMatches, keepAliveTime, }: FindPTZPosition): Promise<JobToken>; /** * Returns results from a PTZ position search session. * @param options */ getPTZPositionSearchResults(options: GetPTZPositionSearchResults): Promise<FindPTZPositionResultList>; /** * Starts a search for metadata in recorded data. * @param options */ findMetadata({ startPoint, endPoint, scope, metadataFilter, maxMatches, keepAliveTime, }: FindMetadata): Promise<JobToken>; /** * Returns results from a metadata search session. * @param options */ getMetadataSearchResults(options: GetMetadataSearchResults): Promise<FindMetadataResultList>; /** * Returns the state of a search session. * @param options */ getSearchState({ searchToken }: GetSearchState): Promise<SearchState>; /** * Ends a search session. * @param options */ endSearch({ searchToken }: EndSearch): Promise<EndSearchResponse['endpoint']>; }