You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.5 KiB
64 lines
1.5 KiB
using JiLinApp.Biz.TransmitAlarm;
|
|
using JiLinApp.Core;
|
|
using JiLinApp.Docking.FenceAlarm;
|
|
using JiLinApp.Mvvm;
|
|
using JiLinApp.Pages.Main;
|
|
using Prism.Events;
|
|
using Prism.Regions;
|
|
|
|
namespace JiLinApp.Pages.FenceServerManage;
|
|
|
|
public class MainViewModel : ViewModelBase
|
|
{
|
|
#region Fields
|
|
|
|
private Main View { get; set; }
|
|
|
|
private IAlarmService AlarmService { get; }
|
|
|
|
#endregion Fields
|
|
|
|
public MainViewModel(IRegionManager region, IEventAggregator ea) : base(region, ea)
|
|
{
|
|
AlarmService = Global.AlarmService;
|
|
}
|
|
|
|
public override void SetView(object view)
|
|
{
|
|
View = (Main)view;
|
|
}
|
|
|
|
#region Event
|
|
|
|
internal void OnFenceUdpDeviceState(UdpAlarmHost device)
|
|
{
|
|
object deviceObj = new
|
|
{
|
|
id = device.DeviceId,
|
|
onlineState = device.OnlineState,
|
|
defenceState = device.DefenceState
|
|
};
|
|
AlarmService.SendDeviceState(DeviceType.Fence, deviceObj);
|
|
}
|
|
|
|
internal void OnFenceUdpSensorState(SectorState sector)
|
|
{
|
|
object sensorObj = new
|
|
{
|
|
id = sector.Id,
|
|
deviceId = sector.DeviceId,
|
|
state = sector.State,
|
|
type = sector.Type,
|
|
};
|
|
AlarmService.SendSensorState(DeviceType.Fence, sensorObj);
|
|
}
|
|
|
|
internal void OnFenceUdpAlarm(UdpAlarmHostMessage msg)
|
|
{
|
|
AlarmMessage alarm = msg.ToAlarmMessage();
|
|
AlarmService.SendAlarm(alarm);
|
|
_ea.GetEvent<FenceUdpSendAlarmEvent>().Publish(msg);
|
|
}
|
|
|
|
#endregion Event
|
|
}
|