Completata gestione strobe OSAI (da testare!!!)

This commit is contained in:
Samuele E. Locatelli
2017-03-27 18:27:22 +02:00
parent ca622d0848
commit d7ed9f2c01
+7 -26
View File
@@ -400,15 +400,15 @@ namespace MTC_Adapter
// check COD_M
bitNum = 0;
gestStrobeCodMST(bitNum, ref currACK_DW, 0, MemBlock, "M");
gestStrobeCodMST(currStrobe, bitNum, ref currACK_DW, 0, MemBlock, "M");
// check COD_S
bitNum = 1;
gestStrobeCodMST(bitNum, ref currACK_DW, 11, MemBlock, "S");
gestStrobeCodMST(currStrobe, bitNum, ref currACK_DW, 11, MemBlock, "S");
// check COD_T
bitNum = 2;
gestStrobeCodMST(bitNum, ref currACK_DW, 17, MemBlock, "T");
gestStrobeCodMST(currStrobe, bitNum, ref currACK_DW, 17, MemBlock, "T");
}
@@ -575,19 +575,19 @@ namespace MTC_Adapter
/// <summary>
/// Gestione STROBE --> ACK per codici M/S/T
/// </summary>
/// <param name="currStrobe">byte di strobe corrente</param>
/// <param name="bitNum">0/1/2</param>
/// <param name="retACK_DW1">vettore da restituire di ACK</param>
/// <param name="memShift">shift memoria x buffer dati da leggere</param>
/// <param name="MemBlock">Vettore completo dei valori + buffer code M/S/T</param>
/// <param name="Coda">Quale coda: M/S/T</param>
private void gestStrobeCodMST(int bitNum, ref byte[] retACK_DW1, int memShift, byte[] MemBlock, string Coda)
private void gestStrobeCodMST(StFlag8 currStrobe, int bitNum, ref byte[] retACK_DW1, int memShift, byte[] MemBlock, string Coda)
{
int numEv = 0;
int codEv = 0;
#if false
if (STRB_DW1.HasFlag((StFlag32)Math.Pow(2, bitNum)))
if (currStrobe.HasFlag((StFlag8)Math.Pow(2, bitNum)))
{
// verifico sia > 0 il numero di valori da leggere indice 0 sull'area...
// verifico sia > 0 il numero di valori da leggere - indice 0 sull'area...
numEv = BitConverter.ToUInt16(MemBlock, 2 * memShift);
if (numEv > 0)
{
@@ -603,7 +603,6 @@ namespace MTC_Adapter
// memorizzo allarme nel vettore ack....
retACK_DW1 = utils.setBitOnStFlag(retACK_DW1, true, bitNum);
}
#endif
}
/// <summary>
/// Ricarica dati da file di scambio con CMSConnect
@@ -791,21 +790,6 @@ namespace MTC_Adapter
inizio = DateTime.Now;
OsaiMemRW_DWord(R, OSAI.MemTypeWord.MW_CODE, memIndex + i * 2, ref MemBlock);
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-STRB_DW0", MemBlock.Length * 4), DateTime.Now.Subtract(inizio).Ticks);
#if false
// da testare metodo copia alternativo !!!FARE!!!
if (true)
{
// aggiorno nel vettore allarmi i byte interessati
for (int j = 0; j < 4; j++)
{
// copy array o byte?!? !!!FARE!!! verifica
AlarmFlags[i * 4 + j] = MemBlock[j];
}
}
else
{
#endif
try
{
// aggiorno vettore allarmi x intero!
@@ -815,9 +799,6 @@ namespace MTC_Adapter
{
lg.Error(string.Format("Errore in BLOCKCOPY per indice i = {2},{0}{1}", Environment.NewLine, exc, i));
}
#if false
}
#endif
// segnalo allarme letto! memorizzo allarme nel vettore ack....
retACK_DW0 = utils.setBitOnStFlag(retACK_DW0, true, i);