diff --git a/Entity/Api/Resp/FireResp.cs b/Entity/Api/Resp/FireResp.cs new file mode 100644 index 0000000..6075db0 --- /dev/null +++ b/Entity/Api/Resp/FireResp.cs @@ -0,0 +1,156 @@ +namespace Entity.Api.Resp; + +public partial class FireResp +{ + public Subzone2 Subzone2 = new Subzone2(); + public Subzone5 Subzone5 = new Subzone5(); + public Subzone7 Subzone7 = new Subzone7(); +} + +public class Subzone2 +{ + /// + /// 启动喷洒 1:延时结束后,发出启动喷洒 信号0:默认状态 + /// + public bool PrimingSpray { get; set; } + + /// + /// 喷洒 1:存在喷洒状态, 即收到启动 反馈信号,表示灭火器启动成功 0:默认状态 + /// + public bool Spray { get; set; } + + /// + /// 声光报警状态 1:声光报警状态0:默认状态 + /// + public bool AudibleVisualAlarmStatus { get; set; } + + /// + /// 放气勿入状态 1:放气勿入状态0:默认状态 + /// + public bool DeflatedDoNotEnter { get; set; } +} + +public class Subzone5 +{ + /// + /// 防护区 + /// 防护区编号: + /// 1:表示电池仓 + /// 2:表示充电室 + /// 3:表示主控室 + /// 4:表示换电通道 + /// 5:表示电池仓 2 + /// 6:表示充电室 2 + /// 7:预留 + /// 8:预留 + /// + public byte ProtectionZone001 { get; set; } + + /// + /// 类型 + /// + public byte Type001 { get; set; } + + /// + /// 探测器 ID 与探测器编号对应 + /// + public byte DetectorID001 { get; set; } + + /// + /// 报警等级 0x0000:正常0x0001:一级预警 0x0002:二级报警 0x0003:三级报警 0x0004:四级报警预留 + /// + public byte AlarmLevel001 { get; set; } + + /// + /// 温度 实际值=寄存器值 -40 + /// + public byte Temperature001 { get; set; } + + /// + /// 一氧化碳浓度 实际值=寄存器值 / 1000 + /// + public byte CoConcentration001 { get; set; } + + /// + /// VOC + /// + public byte VOC001 { get; set; } + + /// + /// 烟雾 0xFF00 烟雾报警 0x0000 烟雾正常 + /// + public byte Smoke001 { get; set; } + + public byte ProtectionZone002 { get; set; } + public byte Type002 { get; set; } + public byte DetectorID002 { get; set; } + public byte AlarmLevel002 { get; set; } + public byte Temperature002 { get; set; } + public byte CoConcentration002 { get; set; } + public byte VOC002 { get; set; } + public byte Smoke002 { get; set; } + public byte ProtectionZone003 { get; set; } + public byte Type003 { get; set; } + public byte DetectorID003 { get; set; } + public byte AlarmLevel003 { get; set; } + public byte Temperature003 { get; set; } + public byte CoConcentration003 { get; set; } + public byte VOC003 { get; set; } + public byte Smoke003 { get; set; } + public byte ProtectionZone004 { get; set; } + public byte Type004 { get; set; } + public byte DetectorID004 { get; set; } + public byte AlarmLevel004 { get; set; } + public byte Temperature004 { get; set; } + public byte CoConcentration004 { get; set; } + public byte VOC004 { get; set; } + public byte Smoke004 { get; set; } + public byte ProtectionZone005 { get; set; } + public byte Type005 { get; set; } + public byte DetectorID005 { get; set; } + public byte AlarmLevel005 { get; set; } + public byte Temperature005 { get; set; } + public byte CoConcentration005 { get; set; } + public byte VOC005 { get; set; } + public byte Smoke005 { get; set; } + public byte ProtectionZone006 { get; set; } + public byte Type006 { get; set; } + public byte DetectorID006 { get; set; } + public byte AlarmLevel006 { get; set; } + public byte Temperature006 { get; set; } + public byte CoConcentration006 { get; set; } + public byte VOC006 { get; set; } + public byte Smoke006 { get; set; } +} + +public class Subzone7 +{ + /// + /// 1#灭火器状态 + /// 0x0000:未启用,表示灭火器不存在 + /// 0x0001:正常 + /// 0x0002:喷洒,表示灭火 器正在启动中 + /// 0x0003:失效,表示灭火 器已喷洒完毕 + /// + public ushort FireExtinguisherStatus01 { get; set; } + + /// + /// 1#灭火器防护区 + /// 1:表示电池仓 + /// 2:表示充电室 + /// 3:表示主控室 + /// 4:表示换电通道 + /// 5:表示电池仓 2 + /// 6:表示充电室 2 + /// 7:预留 + /// 8:预留 + /// + public ushort FireExtinguisherProtectionArea01 { get; set; } + + public ushort FireExtinguisherStatus02 { get; set; } + public ushort FireExtinguisherProtectionArea02 { get; set; } + public ushort FireExtinguisherStatus03 { get; set; } + public ushort FireExtinguisherProtectionArea03 { get; set; } + public ushort FireExtinguisherStatus04 { get; set; } + public ushort FireExtinguisherProtectionArea04 { get; set; } +} \ No newline at end of file diff --git a/Service/FireControl/FireAutoMapper.cs b/Service/FireControl/FireAutoMapper.cs new file mode 100644 index 0000000..1d60cab --- /dev/null +++ b/Service/FireControl/FireAutoMapper.cs @@ -0,0 +1,37 @@ +using Entity.Api.Resp; + +namespace Service.FireControl; + +public class FireAutoMapper +{ + public static Entity.Api.Resp.Subzone2 Subzone2(Service.FireControl.Msg.Subzone2 subzone2) + { + Entity.Api.Resp.Subzone2 Subzone2 = new Subzone2(); + Subzone2.PrimingSpray = subzone2.PrimingSpray.Value; + Subzone2.Spray = subzone2.Spray.Value; + Subzone2.AudibleVisualAlarmStatus = subzone2.AudibleVisualAlarmStatus.Value; + Subzone2.DeflatedDoNotEnter = subzone2.DeflatedDoNotEnter.Value; + + return Subzone2; + } + + public static Entity.Api.Resp.Subzone5 Subzone5(Service.FireControl.Msg.Subzone5 subzone5) + { + Entity.Api.Resp.Subzone5 Subzone5 = new Subzone5(); + Subzone5.DetectorID001 = subzone5.DetectorID001.Value; + Subzone5.Temperature001 = subzone5.Temperature001.Value; + Subzone5.CoConcentration001 = subzone5.CoConcentration001.Value; + Subzone5.AlarmLevel001 = subzone5.AlarmLevel001.Value; + Subzone5.Smoke001 = subzone5.Smoke001.Value; + + return Subzone5; + } + + public static Entity.Api.Resp.Subzone7 Subzone7(Service.FireControl.Msg.Subzone7 subzone7) + { + Entity.Api.Resp.Subzone7 Subzone7 = new Subzone7(); + + return Subzone7; + } + +} \ No newline at end of file diff --git a/WebStarter/Controllers/FireControlController.cs b/WebStarter/Controllers/FireControlController.cs index 12e1270..1cc22cb 100644 --- a/WebStarter/Controllers/FireControlController.cs +++ b/WebStarter/Controllers/FireControlController.cs @@ -1,5 +1,7 @@ -using HybirdFrameworkCore.Entity; +using Entity.Api.Resp; +using HybirdFrameworkCore.Entity; using Microsoft.AspNetCore.Mvc; +using Service.FireControl; using Service.FireControl.Client; using Service.FireControl.Msg; @@ -23,7 +25,7 @@ public class FireControlController { return Result.Success(FireControlMgr.WriteExtinguisherOn(id)); } - + /// /// 分区灭火器关 /// @@ -35,7 +37,7 @@ public class FireControlController { return Result.Success(FireControlMgr.WriteExtinguisherOff(id)); } - + /// /// 复位开 /// @@ -47,7 +49,7 @@ public class FireControlController { return Result.Success(FireControlMgr.ResettingOn()); } - + /// /// 复位关 /// @@ -59,7 +61,7 @@ public class FireControlController { return Result.Success(FireControlMgr.ResettingOff()); } - + /// /// 报警消音开 /// @@ -71,7 +73,7 @@ public class FireControlController { return Result.Success(FireControlMgr.MuteAlarmToneOn()); } - + /// /// 报警消音关 /// @@ -83,7 +85,7 @@ public class FireControlController { return Result.Success(FireControlMgr.MuteAlarmToneOff()); } - + /// /// 自检关 /// @@ -95,7 +97,7 @@ public class FireControlController { return Result.Success(FireControlMgr.SelfInspectionOn()); } - + /// /// 自检关 /// @@ -107,7 +109,7 @@ public class FireControlController { return Result.Success(FireControlMgr.SelfInspectionOff()); } - + /// /// 声光报警开 /// @@ -119,7 +121,7 @@ public class FireControlController { return Result.Success(FireControlMgr.AudibleVisualAlarmOn()); } - + /// /// 声光报警关 /// @@ -131,7 +133,7 @@ public class FireControlController { return Result.Success(FireControlMgr.AudibleVisualAlarmOff()); } - + /// /// 手动模式开 /// @@ -143,7 +145,7 @@ public class FireControlController { return Result.Success(FireControlMgr.ManualModeOn()); } - + /// /// 手动模式关 /// @@ -155,7 +157,7 @@ public class FireControlController { return Result.Success(FireControlMgr.ManualModeOff()); } - + /// /// 自动模式关 /// @@ -167,7 +169,7 @@ public class FireControlController { return Result.Success(FireControlMgr.AutomaticModeOn()); } - + /// /// 自动模式关 /// @@ -185,11 +187,11 @@ public class FireControlController /// /// [HttpGet("GetSubzone2")] - public Result GetSubzone2() + public Result GetSubzone2() { - return Result.Success(FireControlMgr.Subzone2); + return Result.Success(FireControlMgr.Subzone2); } - + /// /// 获取读取到的信息 /// @@ -199,7 +201,7 @@ public class FireControlController { return Result.Success(FireControlMgr.Subzone3); } - + /// /// 获取读取到的信息 /// @@ -209,17 +211,17 @@ public class FireControlController { return Result.Success(FireControlMgr.Subzone4); } - + /// /// 获取读取到的信息 /// /// [HttpGet("GetSubzone5")] - public Result GetSubzone5() + public Result GetSubzone5() { - return Result.Success(FireControlMgr.Subzone5); + return Result.Success(FireControlMgr.Subzone5); } - + /// /// 获取读取到的信息 /// @@ -229,17 +231,17 @@ public class FireControlController { return Result.Success(FireControlMgr.Subzone6); } - + /// /// 获取读取到的信息 /// /// [HttpGet("GetSubzone7")] - public Result GetSubzone7() + public Result GetSubzone7() { - return Result.Success(FireControlMgr.Subzone7); + return Result.Success(FireControlMgr.Subzone7); } - + /// /// 获取读取到的信息 /// @@ -249,7 +251,7 @@ public class FireControlController { return Result.Success(FireControlMgr.Subzone8); } - + /// /// 获取读取到的信息 /// @@ -259,4 +261,16 @@ public class FireControlController { return Result.Success(FireControlMgr.Subzone9); } + + + [HttpGet("FireResp")] + public Result FireResp() + { + FireResp FireResp = new FireResp(); + FireResp.Subzone2 = FireAutoMapper.Subzone2(FireControlMgr.Subzone2); + FireResp.Subzone5 = FireAutoMapper.Subzone5(FireControlMgr.Subzone5); + FireResp.Subzone7 = FireAutoMapper.Subzone7(FireControlMgr.Subzone7); + + return Result.Success(FireResp); + } } \ No newline at end of file