Cameras-objektet
Cameras-objektet är ett objekt som innehåller en vektor med alla kameror som är definierade i servern, både nätverkskameror och analoga kameror som är anslutna via videoenkodrar.
Varje element i vektorn är en referens till ett riktigt kameraobjekt och kan således användas som vilket annat kameraobjekt som helst i skript. Samtliga variabler är tillgängliga som t.ex. RecordEvent och RecordContinuous.
I nedanstående exempel används objektet för att starta händelsestyrd inspelning på samtliga definierade kameror.
Exempel:
for(var cam in Cameras)
{
Cameras[cam].RecordEvent = true;
}
Events i Cameras-objektet
Cameras-objektet har följande events:
onEvent(event)
Detta event bubblar upp från varje kameraobjekt, det genereras när ett event anländer till någon kamera, oavsett vilken. Se 3.24 nedan för en beskrivning av detta event och dess argument. Om man behöver utföra samma operationer på flera liknande kameror när detta event tas emot är detta ett bra sätt att hantera allt på ett ställe.
Detta exempel visar hur man kan använda sig av en analysmodul i en Flir-kamera som detekterar närvaro av människor för att starta händelseinspelning på samma kamera.
Cameras.onEvent = function(event)
{
var pd = event.Data["Data"]["State"];
if(pd != undefined)
{
event.target.RecordEvent = (pd == "true");
}
}
Här letar vi efter egenskapen State på objektet som returneras från egenskapen Data på event.Data som är en array. Om denna egenskap existerar får variabeln pd värdet ”true” eller ”false” som är resultatet från analysmodulen. Detta kan vi använda för att starta/stoppa inspelning på kameran. Om event.Data inte innehåller ett objekt med namnet Data som har en egenskap State, betyder det att kameran skickat en annan notifiering än den vi hanterar. I detta fall får variabeln pd det speciella värdet undefined och vi gör ingenting.
Egenskapen event.target innehåller en referens till det kameraobjekt som representerar kameran som skickade eventet. På detta objekt har vi tillgång till alla kameraobjektets egenskaper, t.ex. RecordEvent, detta använder vi här för att starta inspelning på kameran.
Scriptkoden i exemplet nedan kan användas för att ta reda på vilka notifieringar, händelser och metadata, som anländer från någon kamera.
Cameras.onEvent = function(event)
{
Debug.Print("");
var s = event.target.Name + " – Topic = " + event["Topic"];
Debug.Print(s);
for(var i in event.Data)
{
for(var j in event.Data[i])
{
var s = event.target.Name;
s += " – Data[" + i + "][" + j + "] = ";
s += event.Data[i][j];
Debug.Print(s);
}
}
}