From 21a7b49388184c95aed973365fed0a6189fed3ab Mon Sep 17 00:00:00 2001 From: "parallelbgls@outlook.com" Date: Tue, 16 Sep 2014 13:21:28 +0800 Subject: [PATCH] 2014-09-16 update 1 --- .../Controllers/CrossLampController.cs | 35 ++++++++++++++++++- .../CrossLampControl.WebApi.csproj | 6 +++- .../CrossLampControl.WebApi/Models/Lamp.cs | 26 ++++++++++++++ .../PublishProfiles/CrossLamp.pubxml | 17 +++++++++ 4 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 Modbus.Net/CrossLampControl.WebApi/Models/Lamp.cs create mode 100644 Modbus.Net/CrossLampControl.WebApi/Properties/PublishProfiles/CrossLamp.pubxml diff --git a/Modbus.Net/CrossLampControl.WebApi/Controllers/CrossLampController.cs b/Modbus.Net/CrossLampControl.WebApi/Controllers/CrossLampController.cs index fd1f211..cdbf1ab 100644 --- a/Modbus.Net/CrossLampControl.WebApi/Controllers/CrossLampController.cs +++ b/Modbus.Net/CrossLampControl.WebApi/Controllers/CrossLampController.cs @@ -4,11 +4,44 @@ using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; +using CrossLampControl.WebApi.Models; +using ModBus.Net; namespace CrossLampControl.WebApi.Controllers { public class CrossLampController : ApiController { - + ModbusUtility _utility = new ModbusUtility("COM6", (int)ModbusType.Rtu); + [HttpGet] + public Lamp GetLamp() + { + Lamp light = new Lamp(); + bool[] lamps = _utility.GetCoils(2, "0", 6); + if (lamps[0]) + { + light.MainLamp = LightLamp.Green.ToString(); + } + else if (lamps[1]) + { + light.MainLamp = LightLamp.Yellow.ToString(); + } + else + { + light.MainLamp = LightLamp.Red.ToString(); + } + if (lamps[3]) + { + light.SubLamp = LightLamp.Green.ToString(); + } + else if (lamps[4]) + { + light.SubLamp = LightLamp.Yellow.ToString(); + } + else + { + light.SubLamp = LightLamp.Red.ToString(); + } + return light; + } } } diff --git a/Modbus.Net/CrossLampControl.WebApi/CrossLampControl.WebApi.csproj b/Modbus.Net/CrossLampControl.WebApi/CrossLampControl.WebApi.csproj index e1280c1..02aa17f 100644 --- a/Modbus.Net/CrossLampControl.WebApi/CrossLampControl.WebApi.csproj +++ b/Modbus.Net/CrossLampControl.WebApi/CrossLampControl.WebApi.csproj @@ -204,6 +204,7 @@ + @@ -237,6 +238,7 @@ + @@ -248,7 +250,9 @@ - + + Designer + Web.config diff --git a/Modbus.Net/CrossLampControl.WebApi/Models/Lamp.cs b/Modbus.Net/CrossLampControl.WebApi/Models/Lamp.cs new file mode 100644 index 0000000..23c7a32 --- /dev/null +++ b/Modbus.Net/CrossLampControl.WebApi/Models/Lamp.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +public enum LightLamp{Red,Yellow,Green} +namespace CrossLampControl.WebApi.Models +{ + public class Lamp + { + public string MainLamp { get; set; } + public string SubLamp { get; set; } + + public Lamp() + { + MainLamp = LightLamp.Red.ToString(); + SubLamp = LightLamp.Red.ToString(); + } + + public Lamp(LightLamp mLamp, LightLamp sLamp) + { + MainLamp = mLamp.ToString(); + SubLamp = sLamp.ToString(); + } + } +} \ No newline at end of file diff --git a/Modbus.Net/CrossLampControl.WebApi/Properties/PublishProfiles/CrossLamp.pubxml b/Modbus.Net/CrossLampControl.WebApi/Properties/PublishProfiles/CrossLamp.pubxml new file mode 100644 index 0000000..c06f996 --- /dev/null +++ b/Modbus.Net/CrossLampControl.WebApi/Properties/PublishProfiles/CrossLamp.pubxml @@ -0,0 +1,17 @@ + + + + + FileSystem + Release + Any CPU + + True + False + d:\CrossLamp + False + + \ No newline at end of file