Our plugin can fire alarms without needing an alarm definition to be defined. Is it possible to add the map GUID to the event header or the alarm so that we can see a map appear in the Alarm Manager when a user clicks on the alarm line?
var eventHeader = new VideoOS.Platform.Data.EventHeader()
{
ID = Guid.NewGuid(),
Class = "NewEventToRule",
Type = "AlarmServer SIA Alarm",
Timestamp = DateTime.Now,
Message = alarmMessage,
Name = $"{settings.Name}",
Source = eventSource,
Priority = (ushort)priority.IconColor,
PriorityName = priorityName,
CustomTag = $"Model Name: {model.Name}, Model Type: {model.Type}",
};
var refList = new ReferenceList();
var cams = Util.GetCameras(settings.Cameras);
foreach (var c in cams)
{
refList.Add(new Reference() { FQID = c.FQID }); // Ensure that camera will be presented in the preview
}
Alarm alarm = new Alarm()
{
EventHeader = eventHeader,
StateName = "New",
State = 1,
ReferenceList = refList,
//[Date Time] [Point Point Name] [SIA Code Sia Name] [Priority]
Description = $"[{DateTime.Now.ToString("G")}] {alarmMessage} {m.Code.Description}",
//AssignedTo = "test (\\test)"
// Basic user with the name of test in this example
// the string to use can be seen in the Smart Client dropdown
// Other fields could be filled out, e.g. objectList
};
EnvironmentManager.Instance.SendMessage(new VideoOS.Platform.Messaging.Message(MessageId.Server.NewAlarmCommand, alarm));
Logger.Log($"Fired point alarm on point Nb {settings.PointNumber}" + (settings.IsAddressable ? $", Addr= { settings.AddressableNumber}" : ""));