Alarms-objektet
Alarms-objektet är ett objekt som innehåller en vektor med alla alarm som är definierade i servern, både de som skapas automatiskt och egendefinierad.
Varje element i vektorn är en referens till ett riktigt alarmobjekt och kan således användas som vilket annat alarmobjekt som helst i skript. Samtliga variabler är tillgängliga som till exempel Name, State, LastState.
I nedanstående exempel används objektet för att lista alla tillgängliga alarm i systemet.
Exempel:
for(var al in Alarms)
{
Debug.Print("Alarm: " + al);
}
Egenskaper i Alarms-objektet
length
Är en number som innehåller hur många alarm det finns definierat i systemet.
Events i Alarms-objektet
Alarms-objektet har följande events:
onStateChange(event)
Detta event bubblar upp från varje alarmobjekt, det genereras när statusen för ett alarm förändras, oavsett vilket. Se 3.42 nedan för en beskrivning av detta event och dess argument.
Detta exempel visar hur State har förändrats på det alarm som hade en förändring.
Alarms.onStateChange = function(event)
{
Debug.Print("Alarms.onStateChange: " + event.target.Name + " " + event.target.LastState + " -> " + event.target.State);
}
Här skriver vi ut alarmets namn, föregående status och nuvarande status.
Med denna info så skulle vi kunna ta beslut om att till exempel visa de associerade kamerorna med alarmet för en operatör i dess klient, eller i stället sluta visa dem. Beroendes på hur statusen har förändrats.
Egenskapen event.target innehåller en referens till det alarmobjekt som representerar alarmet som skickade eventet. På detta objekt har vi tillgång till alla alarmobjektets egenskaper, till exempel AssociatedCameras, detta ger oss tillgång till vilka kameror som är associerade med alarmet.
Skriptkoden i exemplet nedan kan användas för att ta reda på vilka kameror som är kopplade till larmet och om de spelar in när statusen förändras.
Alarms.onStateChange = function(event)
{
for(var cam in event.target.AssociatedCameras)
{
Debug.Print(event.target.AssociatedCameras[cam].Name + " rec: " + event.target.AssociatedCameras[cam].Recording);
}
}