camstreamerlib
Version:
Helper library for CamStreamer ACAP applications.
236 lines (235 loc) • 9.36 kB
TypeScript
import { IClient, TBlobResponse, TParameters, TResponse } from './internal/types';
import { ICAO, TApiUser, TBlackList, TCameraSettings, TExportDataType, TGetIcaoByOption, TImportDataType, TPriorityList, TTrackingMode, TWhiteList, TZones } from './types/PlaneTrackerAPI';
import { THttpRequestOptions, TProxyParams } from './types/common';
import { ProxyClient } from './internal/ProxyClient';
export declare class PlaneTrackerAPI<Client extends IClient<TResponse, any>> {
private client;
private apiUser;
constructor(client: Client, apiUser: TApiUser);
static getProxyPath: () => string;
static getWsEventsPath: () => string;
getClient(proxyParams?: TProxyParams): Client | ProxyClient<Client>;
checkCameraTime(options?: THttpRequestOptions): Promise<boolean>;
serverRunCheck(options?: THttpRequestOptions): Promise<TResponse>;
getLiveViewAlias(rtspUrl: string, options?: THttpRequestOptions): Promise<{
ws: string;
ws_initial_message: string;
alias: string;
}>;
resetPtzCalibration(options?: THttpRequestOptions): Promise<void>;
resetFocusCalibration(options?: THttpRequestOptions): Promise<void>;
fetchCameraSettings(options?: THttpRequestOptions): Promise<{
camera: {
ip: string;
port: number;
protocol: "https" | "http" | "https_insecure";
user: string;
pass: string;
};
units: "metric" | "imperial";
adsbSource: {
ip: string;
port: number;
};
cameraCalibrationProcessConfig: {
nightSkyCalibrationEnabled: boolean;
scheduleNightSkyCalibrationTimestamp: number;
focusCalibrationPoints: string;
};
cameraConfig: {
defaultCaptureSizeMeters: number;
captureSizeExtensionMeters: number;
maxZoomLevel?: number | undefined;
};
stream: {
width: number;
height: number;
};
imageConfig: {
dayAperture: number;
nightAperture: number;
maxGain: number;
};
airportConfig: {
icao: string;
centerLat: number;
centerLon: number;
radius: number;
};
trackingConfig: {
prioritizeEmergency: boolean;
trackingZoneWeightIncrease: number;
guardTourEnabled: boolean;
guardTourId: number;
};
widget: {
enabled: boolean;
scale: number;
coord: "top_left" | "top_right" | "bottom_left" | "bottom_right";
posX: number;
posY: number;
};
airportWidget: {
enabled: boolean;
scale: number;
coord: "top_left" | "top_right" | "bottom_left" | "bottom_right";
posX: number;
posY: number;
};
fr24FlightInfoSource: {
enabled: boolean;
priority: number;
apiToken: string;
validateFlights: boolean;
};
radarcapeFlightInfoSource: {
ip: string;
port: number;
enabled: boolean;
priority: number;
};
identificationLabel: {
firstRow: "blank" | "registration" | "call_sign" | "flight_number" | "icao";
secondRow: "blank" | "registration" | "call_sign" | "flight_number" | "icao";
thirdRow: "blank" | "registration" | "call_sign" | "flight_number" | "icao";
fourthRow: "blank" | "registration" | "call_sign" | "flight_number" | "icao";
opacity: number;
};
acs: {
ip: string;
port: number;
enabled: boolean;
protocol: "https" | "http" | "https_insecure";
user: string;
pass: string;
sourceKey: string;
};
genetec: {
ip: string;
port: number;
enabled: boolean;
cameraList: string[];
appId: string;
protocol: "https" | "http" | "https_insecure";
user: string;
pass: string;
baseUri: string;
};
overlayText?: {
displayIcao?: boolean | undefined;
displayRegistration?: boolean | undefined;
displayFlightNumber?: boolean | undefined;
displayAltitude?: boolean | undefined;
displayVelocity?: boolean | undefined;
displayDistance?: boolean | undefined;
displayFOV?: boolean | undefined;
displayPTError?: boolean | undefined;
displayPTZSpeed?: boolean | undefined;
displayVelocityData?: boolean | undefined;
displaySignalQuality?: boolean | undefined;
displayAutoTrackingInfo?: boolean | undefined;
displayGPSCoords?: boolean | undefined;
displayVapixQuery?: boolean | undefined;
displayFocus?: boolean | undefined;
displayAperture?: boolean | undefined;
displaySunDistance?: boolean | undefined;
displayTickTime?: boolean | undefined;
displayAircraftInfo?: boolean | undefined;
} | undefined;
}>;
setCameraSettings(settings: TCameraSettings, options?: THttpRequestOptions): Promise<TResponse>;
fetchServerSettings(options?: THttpRequestOptions): Promise<{
cameraCalibration: {
posLat: number;
posLon: number;
geoidHN: number;
altitudeAmsl: number;
rotationEast: number;
rotationNorth: number;
rotationUp: number;
tiltTransformationCoefA: number;
tiltCameraKnownPoint: number;
tiltRealKnownPoint: number;
};
}>;
exportAppSettings(dataType: TExportDataType, options?: THttpRequestOptions): Promise<TBlobResponse<Client>>;
importAppSettings(dataType: TImportDataType, formData: Parameters<Client['post']>[0]['data'], options?: THttpRequestOptions): Promise<void>;
fetchFlightInfo(icao: ICAO, options?: THttpRequestOptions): Promise<{
destinationAirport: {
icao?: string | undefined;
iata?: string | undefined;
city?: string | undefined;
};
registration?: string | undefined;
callsign?: string | undefined;
flightNumber?: string | undefined;
aircraftType?: string | undefined;
airlines?: string | undefined;
originAirport?: {
icao?: string | undefined;
iata?: string | undefined;
city?: string | undefined;
} | undefined;
flightImages?: {
src?: string | undefined;
photographer?: string | undefined;
}[] | undefined;
}>;
getTrackingMode(options?: THttpRequestOptions): Promise<{
mode: "MANUAL" | "AUTOMATIC";
}>;
setTrackingMode(mode: TTrackingMode['mode'], options?: THttpRequestOptions): Promise<void>;
startTrackingPlane(icao: ICAO, options?: THttpRequestOptions): Promise<void>;
stopTrackingPlane(options?: THttpRequestOptions): Promise<void>;
getIcao(by: TGetIcaoByOption, value: string, options?: THttpRequestOptions): Promise<string>;
getPriorityList(options?: THttpRequestOptions): Promise<{
priorityList: string[];
}>;
setPriorityList(priorityList: TPriorityList['priorityList'], options?: THttpRequestOptions): Promise<TResponse>;
getWhiteList(options?: THttpRequestOptions): Promise<{
whiteList: string[];
}>;
setWhiteList(whiteList: TWhiteList['whiteList'], options?: THttpRequestOptions): Promise<TResponse>;
getBlackList(options?: THttpRequestOptions): Promise<{
blackList: string[];
}>;
setBlackList(blackList: TBlackList['blackList'], options?: THttpRequestOptions): Promise<TResponse>;
fetchMapInfo(options?: THttpRequestOptions): Promise<{
minZoom: number;
maxZoom: number;
mapTypes: ("roadmap" | "satellite")[];
tileSize: number;
}>;
getZones(options?: THttpRequestOptions): Promise<{
zones: {
enabled: boolean;
area: [{
lat: number;
lon: number;
}, ...{
lat: number;
lon: number;
}[]];
flightDirection: "all" | "arrival" | "departure";
weight: number;
name?: string | undefined;
minAltitudeAmsl?: number | undefined;
maxAltitudeAmsl?: number | undefined;
minSpeedKmph?: number | undefined;
maxSpeedKmph?: number | undefined;
}[];
}>;
setZones(zones: TZones, options?: THttpRequestOptions): Promise<void>;
goToCoordinates(lat: number, lon: number, alt?: number, options?: THttpRequestOptions): Promise<ReturnType<Client["get"]>>;
checkGenetecConnection(params: TParameters, options?: THttpRequestOptions): Promise<TResponse>;
getGenetecCameraList(params: TParameters, options?: THttpRequestOptions): Promise<{
value: string;
index: number;
label: string;
}[]>;
private _getJson;
private _getBlob;
private parseBlobResponse;
private _postJsonEncoded;
private _postUrlEncoded;
}