Camera-objektet
Camera-objektet representerar en enskild kamera i serverkonfigurationen.
Egenskaper i Camera-objekt
RecordingStream
Anger namnet på den videoström som skall användas när inspelning skall ske från denna kamera. Som standard är detta Primär.
I exemplet nedan är Burglary en global variabel och BurglaryAlarm ett larm. Syftet är att sätta RecordingStream till videoströmmen Alarm när inbrottslarmet går, annars så skall videoströmmen Primary nyttjas:
Burglary = BurglaryAlarm;
Burglary.onDataChange = function()
{
if(BurglaryAlarm)
Entrance.RecordingStream = Entrance.Alarm.Name;
else
Entrance.RecordingStream = Entrance.Primary.Name;
}
Metoder i Camera-objektet
SaveImage(path[, timestamp[, margin]])
Denna metod används för att spara den senast inkomna bilden från kameran som en jpg-fil till disk. Genom att ange en tid i parameters timestamp kan även tidigare inspelade bilder sparas på detta sätt, se nedan.
path är obligatorisk. Om path är en komplett sökväg inklusive filnamn som slutar på .jpg kommer det filnamnet att användas varje gång bilden sparas. Om endast en sökväg (utan filnamn) anges kommer filnamnet att skapas automatiskt i formatet
Det innebär att alla bilder kommer att sparas under ett unikt namn. Ethiris Server kommer aldrig att radera några av dessa bilder, utan det får man hantera på annat sätt. Tänk på att om unika namn används kan det komma att bli många filer i katalogen och detta måste hanteras utanför Ethiris.
timestamp är inte obligatorisk. När timestamp ges ett värde så sparas den bild från kameran som är närmst det värde som timestamp ges. timestamp anges i lokal servertid. Finns där ingen bild under den tidpunkten eller intervallet som margin bestämmer så sparas ingen bild.
margin är inte obligatorisk. Standardvärde på margin är 1000 millisekunder. margin tillsammans med timestamp skapar ett intervall inom vilket bildens tidsstämpel måste vara för att sparas.
Exempel:
if (save_jpg)
{
save_jpg = false;
//Save last image from camera as a jpg-file
Camera_1.SaveImage("c:\Images\LastImage.jpg");
}
Det här skriptet sparar senaste bilden från kameran under namnet LastImage.jpg. Varje gång bilden sparas kommer den befintliga filen att skrivas över.
ONVIF auxiliary commands
Ethiris stödjer ONVIF auxiliary commands. Det innebär att om kameran signalerar att den har stöd för auxiliary commands, så kommer Ethiris att lista dessa via intellisense i skript för den kameran.
I nedanstående exempel stödjer kameran ett kommando som heter autofocus. Det innebär att Ethiris kommer att skapa en funktion man kan anropa på kameraobjektet i skript.
Exempel:
Camera_1.SendAux_autofocus();
Skickar auxiliary kommandot autofocus till Camera_1.
Vilka kommandon som finns och vad de gör eller hur de fungerar bestäms helt och hållet av kameran. Ethiris anropar bara de funktioner som kameran säger sig stödja via detta gränssnitt.
Events i Camera-objektet
Camera-objektet har följande events:
onEvent(event)
Varje kamera i datalagret kan generera ett event när olika saker händer i kameran. Detta kan vara till exempel larm, varning för manipulering av kameran (tampering) eller I/O signaler anslutna till kameran. Det kan också vara resultat från analysfunktioner i kameran såsom rörelsedetektering, besöksräknare eller annat.
Olika kameramodeller genererar olika notifieringar, så man måste veta vilka notifieringar man skall reagera på.
Observera – för närvarande kan Ethiris endast reagera på notifieringar från ONVIF-kameror och endast från kameror där checkrutan för Händelser (H) eller Metadata (M) är ikryssad i Ethiris Admin.
Event kan kopplas till en funktion som anropas varje gång kameran skickar notifieringar.
Ett exempel på användning kan t.ex. vara om vill detektera att en PTZ kamera håller på att förflytta sig. En ONVIF kompatibel PTZ-kamera från Axis Communication kommer att skicka notifieringar när kameran börjar/slutar förflytta sig i pan, tilt eller zoom riktning:
Camera_1.onEvent = function(event)
{
var moving = event.Data["Data"]["is_moving"];
if(moving != undefined)
{
if(moving == 1)
Debug.Print("Camera moving");
else
Debug.Print("Camera stopped");
}
}
Eventargumentet event har några egenskaper förutom standard Javascript event argument egenskaper:
Data – detta är en array av data för en notifiering som skickats från kameran. Varje notifiering har en uppsättning egenskaper som är specifik för denna typ av notifiering, det kan vara olika för olika kamera modeller, kamerainställningar och typ av notifiering.
target – en referens till kamera-objektet som representerar den kamera som genererade notifieringarna. Här ges tillgång till alla kameraobjektets egenskaper såsom Name, RecordEvent, Recording, och många fler.