Aggiunto chiamata x status canali IO

This commit is contained in:
Samuele E. Locatelli
2021-02-03 14:28:18 +01:00
parent 7af6a9726a
commit e77887153d
7 changed files with 134 additions and 115 deletions
@@ -15,7 +15,7 @@
<xs:element name="page" type="xs:string" />
<xs:element name="wire" type="xs:string" />
<xs:element name="profinet" type="xs:string" />
<xs:element name="disableForce" type ="xs:boolean" />
<xs:element name="disableForce" type ="xs:boolean" minOccurs="0" />
</xs:all>
</xs:complexType>
</xs:element>
@@ -38,7 +38,7 @@ namespace Thermo.Active.Model.DTOModels.ThIO
}
public class DigitalOUT : DigitalIN
{
public bool ForceEnabled { get; set; } = false;
public bool ForceEnabled { get; set; } = true;
public bool ForceZero { get; set; } = false;
public bool ForceOne { get; set; } = false;
public bool IsForced { get; set; } = false;
@@ -94,7 +94,7 @@ namespace Thermo.Active.Model.DTOModels.ThIO
public class AnalogOUT : AnalogIN
{
public bool ForceEnabled { get; set; } = false;
public bool ForceEnabled { get; set; } = true;
public double ForcedValue { get; set; } = 0;
public bool IsForced { get; set; } = false;
@@ -125,13 +125,13 @@ namespace Thermo.Active.Model.DTOModels.ThIO
public class IoBaseConf
{
public int Id { get; set; } = 0;
public int Bank { get; set; } = 0;
public string Position { get; set; } = "";
public string Page { get; set; } = "";
public string Wire { get; set; } = "";
public string Profinet { get; set; } = "";
public string Label { get; set; } = "";
public bool Visible { get; set; } = false;
public string Bank { get; set; } = "0";
public string Position { get; set; } = "0";
public string Page { get; set; } = "0";
public string Wire { get; set; } = "0";
public string Profinet { get; set; } = "0";
public string Label { get; set; } = "LBL";
public bool Visible { get; set; } = true;
public override bool Equals(object obj)
@@ -1,47 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Thermo.Active.Model.DTOModels.ThIO
{
public class DTODigInModel
{
public int Block { get; set; } = 0;
public int Num { get; set; } = 0;
public string Page { get; set; } = "0";
public string Wire { get; set; } = "0";
public string Profinet { get; set; } = "";
public string Label { get; set; } = "";
public bool Value { get; set; } = false;
public override bool Equals(object obj)
{
if (!(obj is DTODigInModel item))
return false;
if (Block != item.Block)
return false;
if (Num != item.Num)
return false;
if (Page != item.Page)
return false;
if (Wire!= Wire)
return false;
if (Profinet != item.Profinet)
return false;
if (Label != item.Label)
return false;
if (Value != item.Value)
return false;
return true;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
}
}
@@ -1,56 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Thermo.Active.Model.DTOModels.ThIO
{
public class DTODigOutModel
{
public int Block { get; set; } = 0;
public int Num { get; set; } = 0;
public string Page { get; set; } = "0";
public string Wire { get; set; } = "0";
public string Profinet { get; set; } = "";
public string Label { get; set; } = "";
public bool Value { get; set; } = false;
public bool ForceZero { get; set; } = false;
public bool ForceOne { get; set; } = false;
public bool IsForced { get; set; } = false;
public override bool Equals(object obj)
{
if (!(obj is DTODigOutModel item))
return false;
if (Block != item.Block)
return false;
if (Num != item.Num)
return false;
if (Page != item.Page)
return false;
if (Wire != Wire)
return false;
if (Profinet != item.Profinet)
return false;
if (Label != item.Label)
return false;
if (Value != item.Value)
return false;
if (ForceZero != item.ForceZero)
return false;
if (ForceOne != item.ForceOne)
return false;
if (IsForced != item.IsForced)
return false;
return true;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
}
}
@@ -113,9 +113,7 @@
<Compile Include="DTOModels\DTOM156InputModel.cs" />
<Compile Include="DTOModels\DTOMessageModel.cs" />
<Compile Include="DTOModels\ThAxes\DTOAxisInfoModel.cs" />
<Compile Include="DTOModels\ThIO\DTODigInModel.cs" />
<Compile Include="DTOModels\ThIO\DTOChannelsIOModel.cs" />
<Compile Include="DTOModels\ThIO\DTODigOutModel.cs" />
<Compile Include="DTOModels\ThModules\DTOModulesBlock.cs" />
<Compile Include="DTOModels\ThProd\DTOProdInfo.cs" />
<Compile Include="DTOModels\ThProd\DTOThermoPanelProd.cs" />
@@ -5,6 +5,7 @@ using Thermo.Active.Database.Controllers;
using Thermo.Active.Model.ConfigModels;
using Thermo.Active.Model.DTOModels;
using Thermo.Active.Model.DTOModels.AlarmModels;
using Thermo.Active.Model.DTOModels.ThIO;
using Thermo.Active.Model.DTOModels.ThProd;
using Thermo.Active.Model.DTOModels.ThRecipe;
using static Thermo.Active.Config.ServerConfig;
@@ -124,6 +125,68 @@ namespace Thermo.Active.Controllers.WebApi
return Ok(recipeConfig);
}
#if false
[Route("IO"), HttpGet]
public IHttpActionResult GetIOConfig()
{
DTOChannelsIOModel ChannelsIO = new DTOChannelsIOModel();
// leggo i 4 tipi di oggetti e popolo
List<DigitalIN> listDI = IOConfig.Where(x => x.Category == Model.Constants.TACT_IO_TYPE.DI).Select(x => new DigitalIN()
{
Id = x.Id,
Bank = x.Bank,
Position = x.Position,
//Page = x.Category.ToString(),
Page = x.Page,
Wire = x.Wire,
Profinet = x.Profinet,
Label = x.Label.Replace("__", "_").Replace("__", "_").ToLower()
}).ToList();
List<DigitalOUT> listDO = IOConfig.Where(x => x.Category == Model.Constants.TACT_IO_TYPE.DO).Select(x => new DigitalOUT()
{
Id = x.Id,
Bank = x.Bank,
Position = x.Position,
//Page = x.Category.ToString(),
Page = x.Page,
Wire = x.Wire,
Profinet = x.Profinet,
Label = x.Label.Replace("__", "_").Replace("__", "_").ToLower()
}).ToList();
List<AnalogIN> listAI = IOConfig.Where(x => x.Category == Model.Constants.TACT_IO_TYPE.AI).Select(x => new AnalogIN()
{
Id = x.Id,
Bank = x.Bank,
Position = x.Position,
//Page = x.Category.ToString(),
Page = x.Page,
Wire = x.Wire,
Profinet = x.Profinet,
Label = x.Label.Replace("__", "_").Replace("__", "_").ToLower()
}).ToList();
List<AnalogOUT> listAO = IOConfig.Where(x => x.Category == Model.Constants.TACT_IO_TYPE.AO).Select(x => new AnalogOUT()
{
Id = x.Id,
Bank = x.Bank,
Position = x.Position,
//Page = x.Category.ToString(),
Page = x.Page,
Wire = x.Wire,
Profinet = x.Profinet,
Label = x.Label.Replace("__", "_").Replace("__", "_").ToLower()
}).ToList();
// assegno!
ChannelsIO.DI = listDI;
ChannelsIO.DO = listDO;
ChannelsIO.AI = listAI;
ChannelsIO.AO = listAO;
// restituisco
return Ok(ChannelsIO);
}
#endif
[Route("thermoProd"), HttpGet]
public IHttpActionResult GetThermoProdConfig()
{
@@ -15,6 +15,7 @@ using TeamDev.SDK.MVVM;
using Thermo.Active.Config;
using Thermo.Active.Database.Controllers;
using Thermo.Active.Model.DTOModels;
using Thermo.Active.Model.DTOModels.ThIO;
using Thermo.Active.Model.DTOModels.ThRecipe;
using Thermo.Active.Model.DTOModels.ThWarmers;
using Thermo.Active.NC;
@@ -52,5 +53,65 @@ namespace Thermo.Active.Controllers.WebApi
return Ok(machineLog);
}
[Route("channels_io"), HttpGet]
public IHttpActionResult GetChannelsIO()
{
DTOChannelsIOModel ChannelsIO = new DTOChannelsIOModel();
// leggo i 4 tipi di oggetti e popolo
List<DigitalIN> listDI = IOConfig.Where(x => x.Category == Model.Constants.TACT_IO_TYPE.DI).Select(x => new DigitalIN()
{
Id = x.Id,
Bank = x.Bank,
Position = x.Position,
//Page = x.Category.ToString(),
Page = x.Page,
Wire = x.Wire,
Profinet = x.Profinet,
Label = x.Label.Replace("__", "_").Replace("__", "_").ToLower()
}).ToList();
List<DigitalOUT> listDO = IOConfig.Where(x => x.Category == Model.Constants.TACT_IO_TYPE.DO).Select(x => new DigitalOUT()
{
Id = x.Id,
Bank = x.Bank,
Position = x.Position,
//Page = x.Category.ToString(),
Page = x.Page,
Wire = x.Wire,
Profinet = x.Profinet,
Label = x.Label.Replace("__", "_").Replace("__", "_").ToLower()
}).ToList();
List<AnalogIN> listAI = IOConfig.Where(x => x.Category == Model.Constants.TACT_IO_TYPE.AI).Select(x => new AnalogIN()
{
Id = x.Id,
Bank = x.Bank,
Position = x.Position,
//Page = x.Category.ToString(),
Page = x.Page,
Wire = x.Wire,
Profinet = x.Profinet,
Label = x.Label.Replace("__", "_").Replace("__", "_").ToLower()
}).ToList();
List<AnalogOUT> listAO = IOConfig.Where(x => x.Category == Model.Constants.TACT_IO_TYPE.AO).Select(x => new AnalogOUT()
{
Id = x.Id,
Bank = x.Bank,
Position = x.Position,
//Page = x.Category.ToString(),
Page = x.Page,
Wire = x.Wire,
Profinet = x.Profinet,
Label = x.Label.Replace("__", "_").Replace("__", "_").ToLower()
}).ToList();
// assegno!
ChannelsIO.DI = listDI;
ChannelsIO.DO = listDO;
ChannelsIO.AI = listAI;
ChannelsIO.AO = listAO;
// restituisco
return Ok(ChannelsIO);
}
}
}