ulteriore pulizia, ora testo OSAI...

This commit is contained in:
Samuele E. Locatelli
2017-05-12 16:59:28 +02:00
parent bf4262e2dd
commit 6594bf07b4
2 changed files with 0 additions and 118 deletions
@@ -2126,10 +2126,6 @@ namespace MTC_Adapter
/// <param name="giveAck">boolean: se si debba tornare ACK</param>
public virtual void refreshAlarmState(StFlag32 Alarm2Refresh, bool giveAck)
{
// indici memorie allarmi: strobe ed ACK
//int memIndex = 19036;
//int memIndexAck = 19018;
// log bitmap se verboso attivo + ho allarmi da refreshare
if ((Alarm2Refresh != StFlag32.NONE) && utils.CRB("verbose"))
{
@@ -2151,7 +2147,6 @@ namespace MTC_Adapter
MemBlock = new uint[32];
// recupero tutti i 32 bit del blocco
inizio = DateTime.Now;
//OsaiMemRW_DWord(R, OSAI.MemTypeWord.MW_CODE, memIndex, ref MemBlock);
readAllAlarms(ref MemBlock);
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-STRB_DW0", MemBlock.Length * 4), DateTime.Now.Subtract(inizio).Ticks);
if (AlarmFlags != null)
@@ -2180,7 +2175,6 @@ namespace MTC_Adapter
{
// recupero tutti i 32 bit del blocco
inizio = DateTime.Now;
//OsaiMemRW_DWord(R, OSAI.MemTypeWord.MW_CODE, memIndex + i * 2, ref MemBlock);
readAlarmBlock(ref MemBlock, i);
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-STRB_DW0", MemBlock.Length * 4), DateTime.Now.Subtract(inizio).Ticks);
try
@@ -2205,7 +2199,6 @@ namespace MTC_Adapter
{
// scrivo update ad ack!!!
inizio = DateTime.Now;
//OsaiMemRW_Byte(W, OSAI.MemTypeWord.MW_CODE, memIndexAck, 0, ref retACK_DW0);
writeAlarmAck(ref retACK_DW0);
if (utils.CRB("recTime")) TimingData.addResult(string.Format("W{0}-ACK_DW0", retACK_DW0.Length), DateTime.Now.Subtract(inizio).Ticks);
ackReturned = true;
@@ -2222,7 +2215,6 @@ namespace MTC_Adapter
// invio INTERO set ACK_DW0 con bit abbassati...
retACK_DW0 = BitConverter.GetBytes(Convert.ToUInt32(STRB_DW0 & ACK_DW0));
inizio = DateTime.Now;
//OsaiMemRW_Byte(W, OSAI.MemTypeWord.MW_CODE, memIndexAck, 0, ref retACK_DW0);
writeAlarmAck(ref retACK_DW0);
if (utils.CRB("recTime")) TimingData.addResult(string.Format("W{0}-ACK_DW0", retACK_DW0.Length), DateTime.Now.Subtract(inizio).Ticks);
}
-110
View File
@@ -559,117 +559,7 @@ namespace MTC_Adapter
return answ;
}
#if false
/// <summary>
/// recupera allarmi ed aggiorna strobe (privato) degli allarmi
/// </summary>
/// <param name="Alarm2Refresh">32bit mask degli allarmi da aggiornare</param>
/// <param name="giveAck">boolean: se si debba tornare ACK</param>
public override void refreshAlarmState(StFlag32 Alarm2Refresh, bool giveAck)
{
// indici memorie allarmi: strobe ed ACK
//int memIndex = 19036;
//int memIndexAck = 19018;
// log bitmap se verboso attivo + ho allarmi da refreshare
if ((Alarm2Refresh != StFlag32.NONE) && utils.CRB("verbose"))
{
lg.Info("Richiesto refresh allarmi x bitmask: {0}", utils.binaryForm((int)Alarm2Refresh));
}
bool ackReturned = false;
// byte di acknowledge...
byte[] retACK_DW0 = new byte[4];
// inizio impostando una bitmap x ACK che abbia i bit abbassati se lo strobe è disattivo: AND logico tra STR e ACK
retACK_DW0 = BitConverter.GetBytes(Convert.ToUInt32(STRB_DW0 & ACK_DW0));
inizio = DateTime.Now;
uint[] MemBlock;
// controllo, SE devo leggere tutto uso un unico accesso ai 128byte, altrimenti leggo a blocchi di 32bit...
if (Alarm2Refresh == (StFlag32)unchecked((int)UInt32.MaxValue))
{
// blocco memoria x lettura dati COMPLETO (4Byte*32 = 128Byte)
MemBlock = new uint[32];
// recupero tutti i 32 bit del blocco
inizio = DateTime.Now;
//OsaiMemRW_DWord(R, OSAI.MemTypeWord.MW_CODE, memIndex, ref MemBlock);
readAllAlarms(ref MemBlock);
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-STRB_DW0", MemBlock.Length * 4), DateTime.Now.Subtract(inizio).Ticks);
if (AlarmFlags != null)
{
try
{
// aggiorno vettore allarmi x intero! size del vettore di destinazione (in byte!!!!)
Buffer.BlockCopy(MemBlock, 0, AlarmFlags, 0, AlarmFlags.Length);
}
catch (Exception exc)
{
lg.Error(string.Format("Errore in BLOCKCOPY{0}{1}", Environment.NewLine, exc));
}
}
}
else
{
if (Alarm2Refresh != StFlag32.NONE)
{
// blocco memoria x lettura dati
MemBlock = new uint[1];
// verifico gli allarmi di tutti i bit alzati...
for (int i = 0; i < 32; i++)
{
if (Alarm2Refresh.HasFlag((StFlag32)Math.Pow(2, i)))
{
// recupero tutti i 32 bit del blocco
inizio = DateTime.Now;
//OsaiMemRW_DWord(R, OSAI.MemTypeWord.MW_CODE, memIndex + i * 2, ref MemBlock);
readAlarmBlock(ref MemBlock, i);
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-STRB_DW0", MemBlock.Length * 4), DateTime.Now.Subtract(inizio).Ticks);
try
{
// aggiorno vettore allarmi x intero!
Buffer.BlockCopy(MemBlock, 0, AlarmFlags, i * 4, 4);
}
catch (Exception exc)
{
lg.Error(string.Format("Errore in BLOCKCOPY per indice i = {2},{0}{1}", Environment.NewLine, exc, i));
}
if (utils.CRI("loglevel") > 5)
{
lg.Info("Bit {0}, MemBlock: {1}", i, MemBlock[0]);
}
// segnalo allarme letto! memorizzo allarme nel vettore ack....
retACK_DW0 = utils.setBitOnStFlag(retACK_DW0, true, i);
}
}
// scrivo ack se richiesto!!!
if (giveAck)
{
// scrivo update ad ack!!!
inizio = DateTime.Now;
//OsaiMemRW_Byte(W, OSAI.MemTypeWord.MW_CODE, memIndexAck, 0, ref retACK_DW0);
writeAlarmAck(ref retACK_DW0);
if (utils.CRB("recTime")) TimingData.addResult(string.Format("W{0}-ACK_DW0", retACK_DW0.Length), DateTime.Now.Subtract(inizio).Ticks);
ackReturned = true;
}
}
}
// SE non ho già tornato un ACK...
if (!ackReturned)
{
// se è diverso il vettori degli ACK in memoria da quello PLC...
if (ACK_DW0 != (StFlag32)BitConverter.ToUInt32(retACK_DW0, 0))
{
// invio INTERO set ACK_DW0 con bit abbassati...
retACK_DW0 = BitConverter.GetBytes(Convert.ToUInt32(STRB_DW0 & ACK_DW0));
inizio = DateTime.Now;
//OsaiMemRW_Byte(W, OSAI.MemTypeWord.MW_CODE, memIndexAck, 0, ref retACK_DW0);
writeAlarmAck(ref retACK_DW0);
if (utils.CRB("recTime")) TimingData.addResult(string.Format("W{0}-ACK_DW0", retACK_DW0.Length), DateTime.Now.Subtract(inizio).Ticks);
}
}
}
#endif
/// <summary>
/// Scrive vettore ACK degli allarmi
/// </summary>