Correzione lettura aree memoria!!! OK test 1h!!!

This commit is contained in:
Samuele Locatelli
2020-04-20 18:24:55 +02:00
parent 5e7f54ec5e
commit 8a72f692d5
+61 -61
View File
@@ -29,9 +29,9 @@ namespace EsaCncLib
public class EsaBaseMem
{
/// <summary>
/// Dimensione in Byte dell'area di memoria
/// Dimensione dell'area di memoria (numero oggetti)
/// </summary>
public UInt16 BiteSize { get; set; } = 0;
public UInt16 MemorySize { get; set; } = 0;
/// <summary>
/// Nome dell'area di memoria
/// </summary>
@@ -224,65 +224,65 @@ namespace EsaCncLib
SCMA_MMan_CNT = new EsaDWordMem();
SCMA_MMan_MNT = new EsaDWordMem();
// aree FIXED secondo necessità: indicazione dimensione x impiego // rif aree reali ESA reale (commento successivo)
SCMA_MMan_ACK.BiteSize = 4; // 32
SCMA_MMan_STROBE.BiteSize = 4; // 32
SCMA_MMan_WD.BiteSize = 1; // 1
SCMA_MMan_status.BiteSize = 1; // 1
SCMA_MMan_ALM.BiteSize = 32; // 32
SCMA_MMan_MNUM.BiteSize = 2; // 2
SCMA_MMan_MF.BiteSize = 20; // 20
SCMA_MMan_SNUM.BiteSize = 2; // 2
SCMA_MMan_SF.BiteSize = 10; // 10
SCMA_MMan_TNUM.BiteSize = 2; // 2
SCMA_MMan_TF.BiteSize = 10; // 10
SCMA_MMan_OVR.BiteSize = 4; // 16
SCMA_MMan_ANALOG.BiteSize = 128; // 128
SCMA_MMan_CNT.BiteSize = 128; // 128
SCMA_MMan_MNT.BiteSize = 131; // 131
SCMA_MMan_ACK.MemorySize = 4; // 32
SCMA_MMan_STROBE.MemorySize = 4; // 32
SCMA_MMan_WD.MemorySize = 1; // 1
SCMA_MMan_status.MemorySize = 1; // 1
SCMA_MMan_ALM.MemorySize = 32; // 32
SCMA_MMan_MNUM.MemorySize = 2; // 2
SCMA_MMan_MF.MemorySize = 20; // 20
SCMA_MMan_SNUM.MemorySize = 2; // 2
SCMA_MMan_SF.MemorySize = 10; // 10
SCMA_MMan_TNUM.MemorySize = 2; // 2
SCMA_MMan_TF.MemorySize = 10; // 10
SCMA_MMan_OVR.MemorySize = 4; // 16
SCMA_MMan_ANALOG.MemorySize = 128; // 128
SCMA_MMan_CNT.MemorySize = 128; // 128
SCMA_MMan_MNT.MemorySize = 131; // 131
// indirizzo area IOT...
SCMA_MMan_ACK.AddressName = "SCMA.ACK"; //fIni.ReadString("NC", "SCMA_AreaAddress_ACK", "SCMA.ACK");
SCMA_MMan_STROBE.AddressName = "SCMA.STROBE";
SCMA_MMan_WD.AddressName = "SCMA.WD";
SCMA_MMan_status.AddressName = "SCMA.status";
SCMA_MMan_ALM.AddressName = "SCMA.ALM";
SCMA_MMan_MNUM.AddressName = "SCMA.MNUM";
SCMA_MMan_MF.AddressName = "SCMA.MF";
SCMA_MMan_SNUM.AddressName = "SCMA.SNUM";
SCMA_MMan_SF.AddressName = "SCMA.SF";
SCMA_MMan_TNUM.AddressName = "SCMA.TNUM";
SCMA_MMan_TF.AddressName = "SCMA.TF";
SCMA_MMan_OVR.AddressName = "SCMA.OVR";
SCMA_MMan_ANALOG.AddressName = "SCMA.ANALOG";
SCMA_MMan_CNT.AddressName = "SCMA.CNT";
SCMA_MMan_MNT.AddressName = "SCMA.MNT";
SCMA_MMan_ACK.AddressName = "scma.ACK"; //fIni.ReadString("NC", "SCMA_AreaAddress_ACK", "scma.ACK");
SCMA_MMan_STROBE.AddressName = "scma.STROBE";
SCMA_MMan_WD.AddressName = "scma.WD";
SCMA_MMan_status.AddressName = "scma.status";
SCMA_MMan_ALM.AddressName = "scma.ALM";
SCMA_MMan_MNUM.AddressName = "scma.MNUM";
SCMA_MMan_MF.AddressName = "scma.MF";
SCMA_MMan_SNUM.AddressName = "scma.SNUM";
SCMA_MMan_SF.AddressName = "scma.SF";
SCMA_MMan_TNUM.AddressName = "scma.TNUM";
SCMA_MMan_TF.AddressName = "scma.TF";
SCMA_MMan_OVR.AddressName = "scma.OVR";
SCMA_MMan_ANALOG.AddressName = "scma.ANALOG";
SCMA_MMan_CNT.AddressName = "scma.CNT";
SCMA_MMan_MNT.AddressName = "scma.MNT";
// Creazione buffers letture memoria
SCMA_MMan_ACK.data = new UInt32[SCMA_MMan_ACK.BiteSize];
SCMA_MMan_STROBE.data = new UInt32[SCMA_MMan_STROBE.BiteSize];
SCMA_MMan_ALM.data = new UInt32[SCMA_MMan_ALM.BiteSize];
SCMA_MMan_MNT.data = new UInt32[SCMA_MMan_MNT.BiteSize];
SCMA_MMan_ANALOG.data = new UInt32[SCMA_MMan_ANALOG.BiteSize];
SCMA_MMan_CNT.data = new UInt32[SCMA_MMan_CNT.BiteSize];
SCMA_MMan_ACK.data = new UInt32[SCMA_MMan_ACK.MemorySize];
SCMA_MMan_STROBE.data = new UInt32[SCMA_MMan_STROBE.MemorySize];
SCMA_MMan_ALM.data = new UInt32[SCMA_MMan_ALM.MemorySize];
SCMA_MMan_MNT.data = new UInt32[SCMA_MMan_MNT.MemorySize];
SCMA_MMan_ANALOG.data = new UInt32[SCMA_MMan_ANALOG.MemorySize];
SCMA_MMan_CNT.data = new UInt32[SCMA_MMan_CNT.MemorySize];
SCMA_MMan_WD.tempData = new UInt32[(int)Math.Ceiling((decimal)SCMA_MMan_WD.BiteSize / 2)];
SCMA_MMan_WD.data = new UInt16[SCMA_MMan_WD.BiteSize];
SCMA_MMan_MF.tempData = new UInt32[(int)Math.Ceiling((decimal)SCMA_MMan_MF.BiteSize / 2)];
SCMA_MMan_MF.data = new UInt16[SCMA_MMan_MF.BiteSize];
SCMA_MMan_SF.tempData = new UInt32[(int)Math.Ceiling((decimal)SCMA_MMan_SF.BiteSize / 2)];
SCMA_MMan_SF.data = new UInt16[SCMA_MMan_SF.BiteSize];
SCMA_MMan_TF.tempData = new UInt32[(int)Math.Ceiling((decimal)SCMA_MMan_TF.BiteSize / 2)];
SCMA_MMan_TF.data = new UInt16[SCMA_MMan_TF.BiteSize];
SCMA_MMan_MNUM.tempData = new UInt32[(int)Math.Ceiling((decimal)SCMA_MMan_MNUM.BiteSize / 2)];
SCMA_MMan_MNUM.data = new UInt16[SCMA_MMan_MNUM.BiteSize];
SCMA_MMan_SNUM.tempData = new UInt32[(int)Math.Ceiling((decimal)SCMA_MMan_SNUM.BiteSize / 2)];
SCMA_MMan_SNUM.data = new UInt16[SCMA_MMan_SNUM.BiteSize];
SCMA_MMan_TNUM.tempData = new UInt32[(int)Math.Ceiling((decimal)SCMA_MMan_TNUM.BiteSize / 2)];
SCMA_MMan_TNUM.data = new UInt16[SCMA_MMan_TNUM.BiteSize];
SCMA_MMan_OVR.tempData = new UInt32[(int)Math.Ceiling((decimal)SCMA_MMan_OVR.BiteSize / 4)];
SCMA_MMan_OVR.data = new Byte[SCMA_MMan_OVR.BiteSize];
SCMA_MMan_status.tempData = new UInt32[(int)Math.Ceiling((decimal)SCMA_MMan_status.BiteSize / 4)];
SCMA_MMan_status.data = new Byte[SCMA_MMan_status.BiteSize];
SCMA_MMan_WD.tempData = new UInt32[(int)Math.Ceiling((decimal)SCMA_MMan_WD.MemorySize / 2)];
SCMA_MMan_WD.data = new UInt16[SCMA_MMan_WD.MemorySize];
SCMA_MMan_MF.tempData = new UInt32[(int)Math.Ceiling((decimal)SCMA_MMan_MF.MemorySize / 2)];
SCMA_MMan_MF.data = new UInt16[SCMA_MMan_MF.MemorySize];
SCMA_MMan_SF.tempData = new UInt32[(int)Math.Ceiling((decimal)SCMA_MMan_SF.MemorySize / 2)];
SCMA_MMan_SF.data = new UInt16[SCMA_MMan_SF.MemorySize];
SCMA_MMan_TF.tempData = new UInt32[(int)Math.Ceiling((decimal)SCMA_MMan_TF.MemorySize / 2)];
SCMA_MMan_TF.data = new UInt16[SCMA_MMan_TF.MemorySize];
SCMA_MMan_MNUM.tempData = new UInt32[(int)Math.Ceiling((decimal)SCMA_MMan_MNUM.MemorySize / 2)];
SCMA_MMan_MNUM.data = new UInt16[SCMA_MMan_MNUM.MemorySize];
SCMA_MMan_SNUM.tempData = new UInt32[(int)Math.Ceiling((decimal)SCMA_MMan_SNUM.MemorySize / 2)];
SCMA_MMan_SNUM.data = new UInt16[SCMA_MMan_SNUM.MemorySize];
SCMA_MMan_TNUM.tempData = new UInt32[(int)Math.Ceiling((decimal)SCMA_MMan_TNUM.MemorySize / 2)];
SCMA_MMan_TNUM.data = new UInt16[SCMA_MMan_TNUM.MemorySize];
SCMA_MMan_OVR.tempData = new UInt32[(int)Math.Ceiling((decimal)SCMA_MMan_OVR.MemorySize / 4)];
SCMA_MMan_OVR.data = new Byte[SCMA_MMan_OVR.MemorySize];
SCMA_MMan_status.tempData = new UInt32[(int)Math.Ceiling((decimal)SCMA_MMan_status.MemorySize / 4)];
SCMA_MMan_status.data = new Byte[SCMA_MMan_status.MemorySize];
}
#if false
@@ -333,12 +333,12 @@ namespace EsaCncLib
// variabili di appoggio
TS_REG newTsReg = currData.AddresReg;// new TS_REG();
// effettuo lettura!
iError = read_regbuffer(ref newTsReg, 0, currData.BiteSize, currData.tempData);
iError = read_regbuffer(ref newTsReg, 0, currData.MemorySize, currData.tempData);
currData.AddresReg = newTsReg;
// ...e copio in array a byte...
try
{
Buffer.BlockCopy(currData.tempData, 0, currData.data, 0, currData.BiteSize);
Buffer.BlockCopy(currData.tempData, 0, currData.data, 0, currData.MemorySize);
}
catch
{ }
@@ -366,12 +366,12 @@ namespace EsaCncLib
// variabili di appoggio
TS_REG newTsReg = currData.AddresReg;
// effettuo lettura!
iError = read_regbuffer(ref newTsReg, 0, currData.BiteSize, currData.tempData);
iError = read_regbuffer(ref newTsReg, 0, currData.MemorySize, currData.tempData);
currData.AddresReg = newTsReg;
// ...e copio in array a byte...
try
{
Buffer.BlockCopy(currData.tempData, 0, currData.data, 0, currData.BiteSize*2);
Buffer.BlockCopy(currData.tempData, 0, currData.data, 0, currData.MemorySize*2);
}
catch
{ }
@@ -397,7 +397,7 @@ namespace EsaCncLib
// variabili di appoggio
TS_REG newTsReg = currData.AddresReg;// new TS_REG();
// effettuo lettura!
iError = read_regbuffer(ref newTsReg, 0, currData.BiteSize, currData.data);
iError = read_regbuffer(ref newTsReg, 0, currData.MemorySize, currData.data);
currData.AddresReg = newTsReg;
}