Completata revisione con bugFix x gestione errata doppia lettura valori di persistenza (contatori vari)

This commit is contained in:
Samuele E. Locatelli
2016-12-07 19:02:37 +01:00
parent 0ce987ddd0
commit 2c18409e3a
4 changed files with 68 additions and 27 deletions
+1 -1
View File
@@ -73,7 +73,7 @@
<Linear id="Axis_03" name="Asse Z">
<DataItems>
<!-- descrizione, es "Asse Z (3)" che POTREBBE cambiare -->
<DataItem category="EVENT" id="Axis_02_Descr" type="MESSAGE"/>
<DataItem category="EVENT" id="Axis_03_Descr" type="MESSAGE"/>
<DataItem category="SAMPLE" id="Axis_03_PosAct" name="Pos asse Z (3) actual" nativeUnits="MILLIMETER" subType="ACTUAL" type="POSITION" units="MILLIMETER"/>
<DataItem category="SAMPLE" id="Axis_03_PosTgt" name="Pos asse Z (3) target" nativeUnits="MILLIMETER" subType="COMMANDED" type="POSITION" units="MILLIMETER"/>
<DataItem category="SAMPLE" id="Axis_03_Load" name="Load asse Z (3)" nativeUnits="PERCENT" type="LOAD" units="PERCENT"/>
+36 -1
View File
@@ -1279,6 +1279,41 @@ namespace MTC_Adapter
#region metodi adapter
public void loadPersData()
{
// nuova lettura valori da file persistenza...
contOreMaccOn = getStoredValDouble("ACC_TIME");
contOreMaccLav = getStoredValDouble("ACC_TIME_WORK");
for (int i = 0; i < currAdpConf.nUnOp; i++)
{
contGiriElettrom[i] = getStoredValUInt(string.Format("UnOp_{0:00}_AccTime", i + 1));
currNumCambiUt[i] = getStoredValUInt(string.Format("UnOp_{0:00}_NumCU", i + 1));
}
for (int i = 0; i < currAdpConf.nAxis; i++)
{
contDistMovAssi[i] = getStoredValUInt(string.Format("Axis_{0:00}_DistDone", i + 1));
contNumInvAssi[i] = getStoredValUInt(string.Format("Axis_{0:00}_InvDDone", i + 1));
contAccTimeAssi[i] = getStoredValUInt(string.Format("Axis_{0:00}_AccTime", i + 1));
}
for (int i = 0; i < currAdpConf.nVacuumPump; i++)
{
currVacPumpWrkTime[i] = getStoredValUInt(string.Format("VacPump_{0:00}_WrkTime", i + 1));
}
for (int i = 0; i < currAdpConf.nVacuumAct; i++)
{
currVacActCount[i] = getStoredValUInt(string.Format("VacAct_{0:00}_Count", i + 1));
}
for (int i = 0; i < currAdpConf.nLubro; i++)
{
currLubroCount[i] = getStoredValUInt(string.Format("Lubro_{0:00}_Count", i + 1));
}
}
/// <summary>
/// Avvia l'adapter sulla porta richiesta
/// </summary>
@@ -1304,7 +1339,7 @@ namespace MTC_Adapter
// resetto running flag...
adpCommAct = false;
// carico valori da adapter x i conteggi
contOreMaccOn = currAdpConf.ContOreMaccOn;
contOreMaccLav = currAdpConf.ContOreMaccLav;
+25 -19
View File
@@ -148,6 +148,7 @@ namespace MTC_Adapter
{
loadXmlFile(defConfFilePath);
loadPersistLayer(defPersLayerFile);
agObj.loadPersData();
}
else
{
@@ -157,7 +158,7 @@ namespace MTC_Adapter
loadAdapterType();
displayTaskAndWait("Waiting for config file selection");
}
// Start timer periodico
gather.Interval = utils.CRI("timerIntMs");
gather.Enabled = true;
@@ -446,6 +447,7 @@ namespace MTC_Adapter
private void start_Click(object sender, EventArgs e)
{
avviaAdapter();
agObj.loadPersData();
}
public void avviaAdapter()
@@ -492,20 +494,12 @@ namespace MTC_Adapter
/// <param name="tryRestart">determina se si debba tentare riavvio automatico (per caduta connessione)</param>
public void fermaAdapter(bool tryRestart)
{
agObj.stopAdapter(tryRestart);
// salvo!
savePersistLayer(defPersLayerFile);
savePersistLayer(histPersLayerFile);
stop.Enabled = false;
dump.Enabled = false;
start.Enabled = true;
//gather.Enabled = false;
fermaTutto(false, tryRestart);
}
private void gather_Tick(object sender, EventArgs e)
{
// eseguo cicli attivi SOLO se adapter è in EFFETTIVO running...
if (agObj.adpRunning)
{
@@ -536,11 +530,12 @@ namespace MTC_Adapter
else
{
// verifico SE debba tentare il riavvio, ovvero NON running ma tryReconn e non ho riprovato x oltre waitRecMSec
int currWait = DateTime.Now.Subtract(lastStartTry).Milliseconds;
if (agObj.adpTryRestart && currWait> utils.CRI("waitRecSec"))
double currWait = DateTime.Now.Subtract(lastStartTry).TotalMilliseconds;
if (agObj.adpTryRestart && currWait > utils.CRI("waitRecSec"))
{
lastStartTry = DateTime.Now;
avviaAdapter();
agObj.loadPersData();
}
}
}
@@ -1106,6 +1101,7 @@ namespace MTC_Adapter
string XmlConfFile = openFileDial.FileName;
loadXmlFile(XmlConfFile);
loadPersistLayer(defPersLayerFile);
agObj.loadPersData();
}
}
/// <summary>
@@ -1150,7 +1146,7 @@ namespace MTC_Adapter
public void savePersistLayer(string filePath)
{
try
{
{
utils.WritePlain(agObj.persistenceLayer, filePath);
}
catch (Exception exc)
@@ -1167,7 +1163,6 @@ namespace MTC_Adapter
// inizializzo prima di leggere...
agObj.persistenceLayer = new Dictionary<string, string>();
agObj.persistenceLayer = utils.ReadPlain(filePath);
//agObj.persistenceLayer = utils.ReadBin(filePath);
}
#endregion
@@ -1572,7 +1567,16 @@ namespace MTC_Adapter
private void closeAdapter()
{
agObj.stopAdapter(false);
fermaTutto(true, false);
}
/// <summary>
/// Ferma tutti i componenti adapter + update buttons
/// </summary>
/// <param name="stopTimer">determina se fermare il timer (gather) principale (solo se non si chiude)</param>
/// <param name="tryRestart">determina se tentare di riconnettersi</param>
private void fermaTutto(bool stopTimer, bool tryRestart)
{
agObj.stopAdapter(tryRestart);
// salvo!
savePersistLayer(defPersLayerFile);
savePersistLayer(histPersLayerFile);
@@ -1580,10 +1584,12 @@ namespace MTC_Adapter
stop.Enabled = false;
dump.Enabled = false;
start.Enabled = true;
gather.Enabled = false;
agObj.tryDisconnect();
if (stopTimer)
{
gather.Enabled = false;
agObj.tryDisconnect();
}
}
}
}
@@ -319,7 +319,7 @@
</dataRef>
<dataRef>
<Key>Axis_01_Type</Key>
<Value>0</Value>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_01_Dir</Key>
@@ -386,7 +386,7 @@
</dataRef>
<dataRef>
<Key>Axis_02_Type</Key>
<Value>0</Value>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_02_Dir</Key>
@@ -453,7 +453,7 @@
</dataRef>
<dataRef>
<Key>Axis_03_Type</Key>
<Value>0</Value>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_03_Dir</Key>
@@ -520,7 +520,7 @@
</dataRef>
<dataRef>
<Key>Axis_04_Type</Key>
<Value>0</Value>
<Value>ROTARY</Value>
</dataRef>
<dataRef>
<Key>Axis_04_Dir</Key>
@@ -587,7 +587,7 @@
</dataRef>
<dataRef>
<Key>Axis_05_Type</Key>
<Value>0</Value>
<Value>ROTARY</Value>
</dataRef>
<dataRef>
<Key>Axis_05_Dir</Key>
@@ -654,7 +654,7 @@
</dataRef>
<dataRef>
<Key>Axis_06_Type</Key>
<Value>0</Value>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_06_Dir</Key>