Esplicitate le variabili stato come enum

This commit is contained in:
Samuele Locatelli
2022-05-12 19:07:51 +02:00
parent 9c12c5d20f
commit cd4675349f
+12 -5
View File
@@ -10,9 +10,16 @@ using System.Threading.Tasks;
namespace IOB_WIN_NEXT
{
public enum IcoelStatus
{
Allarme = 0,
Stop = 1,
Manuale = 2,
Automatico = 3
}
public class MesItemStatus
{
public UInt16 Stato { get; set; } = 0;
public IcoelStatus Stato { get; set; } = 0;
public UInt16 Velocita { get; set; } = 0;
public bool Termico { get; set; } = false;
public bool MagnetoTermico { get; set; } = false;
@@ -20,7 +27,7 @@ namespace IOB_WIN_NEXT
public MesItemStatus(byte[] rawData)
{
Stato = BitConverter.ToUInt16(rawData, 0);
Stato = (IcoelStatus)BitConverter.ToUInt16(rawData, 0);
Velocita = BitConverter.ToUInt16(rawData, 2);
Termico = !rawData.Skip(4).Take(1).FirstOrDefault().Equals(0);
MagnetoTermico = !rawData.Skip(5).Take(1).FirstOrDefault().Equals(0);
@@ -34,7 +41,7 @@ namespace IOB_WIN_NEXT
public byte[] serialize()
{
byte[] answ = new byte[7];
Buffer.BlockCopy(BitConverter.GetBytes(Stato), 0, answ, 0, 2);
Buffer.BlockCopy(BitConverter.GetBytes((short)Stato), 0, answ, 0, 2);
Buffer.BlockCopy(BitConverter.GetBytes(Velocita), 0, answ, 2, 2);
Buffer.BlockCopy(BitConverter.GetBytes(Termico), 0, answ, 4, 1);
Buffer.BlockCopy(BitConverter.GetBytes(MagnetoTermico), 0, answ, 5, 1);
@@ -325,7 +332,7 @@ namespace IOB_WIN_NEXT
testSendProperty(new Opc.Ua.Client.MonitoredItem() { DisplayName = $"{blockName}_AvariaInverter", NodeClass = NodeClass.Variable, StartNodeId = startNodeId }, $"{newBlock.AvariaInverter}", forceSend);
}
}
/// <summary>
/// Verifica ed invia variazioni DAL FORMATO RAW data (byte[]) --> esplode oggetti e li testa 1:1
@@ -339,7 +346,7 @@ namespace IOB_WIN_NEXT
{
if (NotifyValue != null && NotifyValue.Length > 0)
{
// verifico variazione "globale"
if (!lastData.Equals(currData))
{