fix complessivo x gestione PersistData: rilettura a ritroso sino a maxNumDD (app.config) giorni prima x cercare file valido...
This commit is contained in:
@@ -1,9 +1,5 @@
|
||||
using MTConnect;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace MTC_Adapter
|
||||
{
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
<add key="AlarmList" value="AlarmList.map"/>
|
||||
<add key="defaultConfFile" value="Adapter_ItemList.xml"/>
|
||||
<add key="defaultPersLayerFile" value="PersistData.dat"/>
|
||||
<add key="maxNumDD" value="30"/>
|
||||
<add key="defaultEsaFile" value="EsaKvara.ini"/>
|
||||
<add key="CounterListFilePath" value="CounterList.map"/>
|
||||
<add key="StatusListFilePath" value="StatusList.map"/>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<AdapterConf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<Version>1</Version>
|
||||
<NomeAdapt>ADAPTER_OSAI</NomeAdapt>
|
||||
<TipoAdapt>OSAI</TipoAdapt>
|
||||
<NomeAdapt>ADAPTER_FANUC</NomeAdapt>
|
||||
<TipoAdapt>FANUC</TipoAdapt>
|
||||
<ContOreMaccOn>0</ContOreMaccOn>
|
||||
<ContOreMaccLav>0</ContOreMaccLav>
|
||||
<VacuumPump>
|
||||
|
||||
@@ -377,7 +377,7 @@
|
||||
000376|PLC|FAULT|[COD 002107] - 530 PULSANTIERA ESTERNA ABILITATA
|
||||
000377|PLC|FAULT|[COD 002108] - 504 CAMBIO UTENSILE INTERROTTO
|
||||
000378|PLC|FAULT|[COD 002109] - 363 MONTANTE CENTRALE ALTO
|
||||
000379|PLC|FAULT|[COD 002110] - =--- PREALLARME TERMICO TORQUE A
|
||||
000379|PLC|FAULT|[COD 002110] - --- PREALLARME TERMICO TORQUE A
|
||||
000380|PLC|FAULT|[COD 002111] - 498 CARICO MASSIMO SUL MANDRINO SUPERATO SOGLIA S1
|
||||
000381|PLC|FAULT|[COD 002112] - --- PREALLARME TERMICO TORQUE C
|
||||
000382|PLC|FAULT|[COD 002113] - 432 UTENSILE NON SGANCIATO
|
||||
@@ -431,7 +431,7 @@
|
||||
000430|PLC|FAULT|[COD 002161] - 289 ATTREZZAGGIO CAMBIO UTENSILE 2 IN CORSO
|
||||
000431|PLC|FAULT|[COD 002162] - 584 PORTA DI SICUREZZA MAGAZZINO DISCO 2 NON CHIUSA
|
||||
000432|PLC|FAULT|[COD 002163] - 514 PROTEZIONE MAGAZZINO DISCO 2 NON IN POSIZIONE
|
||||
000433|PLC|FAULT|[COD 002164] -
|
||||
000433|PLC|FAULT|[COD 002164] - ...
|
||||
000434|PLC|FAULT|[COD 002165] - 550 GRUPPO DI FORATURA NON IN POSIZIONE
|
||||
000435|PLC|FAULT|[COD 002166] - ...
|
||||
000436|PLC|FAULT|[COD 002167] - ...
|
||||
|
||||
Binary file not shown.
@@ -97,10 +97,6 @@
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="DotNetAdapterSDK, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>ExtLib\DotNetAdapterSDK.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.4.4.4\lib\net45\NLog.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
@@ -298,6 +294,10 @@
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\..\..\GitHub\MTConnect\dot_net_sdk\DotNetAdapterSDK.csproj">
|
||||
<Project>{d8d08dbe-b511-4de0-b5a9-563ebfc60c4f}</Project>
|
||||
<Name>DotNetAdapterSDK</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\CMSCncLib\CMSCncLib.vbproj">
|
||||
<Project>{2d769ffd-1122-4276-a115-29246e6d23c5}</Project>
|
||||
<Name>CMSCncLib</Name>
|
||||
|
||||
@@ -149,7 +149,7 @@ namespace MTC_Adapter
|
||||
var sentinalRule = new LoggingRule("*", LogLevel.Trace, sentinalTarget);
|
||||
LogManager.Configuration.AddTarget("sentinal", sentinalTarget);
|
||||
LogManager.Configuration.LoggingRules.Add(sentinalRule);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
LogManager.ReconfigExistingLoggers();
|
||||
@@ -633,6 +633,15 @@ namespace MTC_Adapter
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// file persistenza generale data attuale ANTICIPATA di xx giorni
|
||||
/// </summary>
|
||||
/// <param name="numDD">num DD di anticipo</param>
|
||||
/// <returns></returns>
|
||||
public string prevPersLayerFile(int numDD)
|
||||
{
|
||||
return string.Format(@"{0}\{1:yyyy}\{1:yyyy-MM-dd}.mtc", utils.dataDatDir, DateTime.Now.AddDays(-numDD));
|
||||
}
|
||||
/// <summary>
|
||||
/// salva i valori attuali del file di conf sia in file corrente che in cartella valori storici
|
||||
/// </summary>
|
||||
public void persistData()
|
||||
@@ -653,7 +662,7 @@ namespace MTC_Adapter
|
||||
|
||||
private void checkNormTask()
|
||||
{
|
||||
|
||||
|
||||
// decremento...
|
||||
normCount--;
|
||||
// se il counter è a zero eseguo...
|
||||
@@ -1195,6 +1204,24 @@ namespace MTC_Adapter
|
||||
// inizializzo prima di leggere...
|
||||
agObj.persistenceLayer = new Dictionary<string, string>();
|
||||
agObj.persistenceLayer = utils.ReadPlain(filePath);
|
||||
|
||||
// 2017.03.23 check problema files corrotti...
|
||||
if (agObj.persistenceLayer.Count == 0)
|
||||
{
|
||||
// se avesse letto un valore NON coerente (senza righe) PROVA a leggere a ritroso vecchi files... da histPersLayerFile e precedenti...
|
||||
int numDD = 0;
|
||||
int maxNumDD = utils.CRI("maxNumDD");
|
||||
Dictionary<string, string> lastRead = new Dictionary<string, string>();
|
||||
// continuo fino a che non leggo almeno 1 riga valida e non ho raggiunto maxDD
|
||||
while (numDD < maxNumDD && lastRead.Count == 0)
|
||||
{
|
||||
// leggo il file storico alla data anticipata...
|
||||
lastRead = utils.ReadPlain(prevPersLayerFile(numDD));
|
||||
numDD++;
|
||||
}
|
||||
// se sono uscito PROVO a passare il file storico letto buono (oppure vuoto...)
|
||||
agObj.persistenceLayer = lastRead;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -1615,6 +1642,6 @@ namespace MTC_Adapter
|
||||
agObj.tryDisconnect();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user