Merge remote-tracking branch 'origin/develop' into Feature/Giacovelli

This commit is contained in:
S.E.Locatelli
2022-05-12 19:08:37 +02:00
7 changed files with 67 additions and 20 deletions
Binary file not shown.
+1
View File
@@ -20,6 +20,7 @@
<add key="pingMsTimeout" value="1500"/>
<add key="serverPingDisabled" value="false"/>
<add key="urlCallTOut" value="9999"/>
<add key="urlRandWait" value="200"/>
<!-- ciclo corto x invio a server: ms -->
<add key="timerIntMs" value="10"/>
<add key="fastCount" value="20"/>
+3 -3
View File
@@ -174,7 +174,7 @@
<HintPath>..\ExtLibs\AdsApi\.NET\v4.0.30319\TwinCAT.Ads.dll</HintPath>
</Reference>
<Reference Include="WebDriver, Version=4.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Selenium.WebDriver.4.1.0\lib\net46\WebDriver.dll</HintPath>
<HintPath>..\packages\Selenium.WebDriver.4.1.1\lib\net46\WebDriver.dll</HintPath>
</Reference>
<Reference Include="WindowsBase" />
</ItemGroup>
@@ -900,11 +900,11 @@
<Error Condition="!Exists('..\packages\Selenium.Firefox.WebDriver.0.27.0\build\Selenium.Firefox.WebDriver.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Selenium.Firefox.WebDriver.0.27.0\build\Selenium.Firefox.WebDriver.targets'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.targets'))" />
<Error Condition="!Exists('..\packages\Selenium.WebDriver.ChromeDriver.96.0.4664.4500\build\Selenium.WebDriver.ChromeDriver.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Selenium.WebDriver.ChromeDriver.96.0.4664.4500\build\Selenium.WebDriver.ChromeDriver.targets'))" />
<Error Condition="!Exists('..\packages\Microsoft.VisualStudio.SlowCheetah.4.0.8\build\Microsoft.VisualStudio.SlowCheetah.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.VisualStudio.SlowCheetah.4.0.8\build\Microsoft.VisualStudio.SlowCheetah.targets'))" />
<Error Condition="!Exists('..\packages\Selenium.WebDriver.ChromeDriver.101.0.4951.4100\build\Selenium.WebDriver.ChromeDriver.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Selenium.WebDriver.ChromeDriver.101.0.4951.4100\build\Selenium.WebDriver.ChromeDriver.targets'))" />
</Target>
<Import Project="..\packages\Selenium.Firefox.WebDriver.0.27.0\build\Selenium.Firefox.WebDriver.targets" Condition="Exists('..\packages\Selenium.Firefox.WebDriver.0.27.0\build\Selenium.Firefox.WebDriver.targets')" />
<Import Project="..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.targets" Condition="Exists('..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.targets')" />
<Import Project="..\packages\Selenium.WebDriver.ChromeDriver.96.0.4664.4500\build\Selenium.WebDriver.ChromeDriver.targets" Condition="Exists('..\packages\Selenium.WebDriver.ChromeDriver.96.0.4664.4500\build\Selenium.WebDriver.ChromeDriver.targets')" />
<Import Project="..\packages\Microsoft.VisualStudio.SlowCheetah.4.0.8\build\Microsoft.VisualStudio.SlowCheetah.targets" Condition="Exists('..\packages\Microsoft.VisualStudio.SlowCheetah.4.0.8\build\Microsoft.VisualStudio.SlowCheetah.targets')" />
<Import Project="..\packages\Selenium.WebDriver.ChromeDriver.101.0.4951.4100\build\Selenium.WebDriver.ChromeDriver.targets" Condition="Exists('..\packages\Selenium.WebDriver.ChromeDriver.101.0.4951.4100\build\Selenium.WebDriver.ChromeDriver.targets')" />
</Project>
+30
View File
@@ -196,6 +196,11 @@ namespace IOB_WIN_NEXT
/// </summary>
public bool adpRunning = false;
/// <summary>
/// Valore di attesa (random) dopo ogni invio x evitare congestione send...
/// </summary>
protected static int urlRandWait = 0;
/// <summary>
/// valore booleano di check se l'adapter STIA SALVANDO
/// </summary>
@@ -2072,6 +2077,9 @@ namespace IOB_WIN_NEXT
lastAlarm = "";
doStartMemDump = utils.CRB("doStartMemDump");
doSampleMemory = utils.CRB("doSampleMemory");
// fix url wait random...
urlRandWait = utils.CRI("urlRandWait");
// svuoto code se richiesto
if (resetQueue)
{
@@ -3274,11 +3282,21 @@ namespace IOB_WIN_NEXT
//Task<string> resp = utils.callUrlAsync(URL);
//answ = resp.Result;
answ = utils.callUrlAsync(URL);
if (urlRandWait > 0)
{
Random rnd = new Random();
Thread.Sleep(rnd.Next(urlRandWait / 10, urlRandWait));
}
}
// chiamata SOLO NORMALE SINCRONA...
else
{
answ = utils.callUrl(URL);
if (urlRandWait > 0)
{
Random rnd = new Random();
Thread.Sleep(rnd.Next(urlRandWait / 10, urlRandWait));
}
}
return answ;
}
@@ -3297,11 +3315,21 @@ namespace IOB_WIN_NEXT
if (doAsync)
{
answ = utils.callUrlAsync(URL, payload);
if (urlRandWait > 0)
{
Random rnd = new Random();
Thread.Sleep(rnd.Next(urlRandWait / 10, urlRandWait));
}
}
// chiamata SOLO NORMALE SINCRONA...
else
{
answ = utils.callUrl(URL, payload);
if (urlRandWait > 0)
{
Random rnd = new Random();
Thread.Sleep(rnd.Next(urlRandWait / 10, urlRandWait));
}
}
return answ;
}
@@ -5014,6 +5042,8 @@ namespace IOB_WIN_NEXT
{
// chiamo URL!
string answ = callUrlWithPayload(lastUrl, payload, doAsync);
// attesa opzionale se configurata
// loggo!
lgInfo($"[SEND payload] TipoURL: {tipoUrl} | {listQueueVal.Count} records --> {answ}");
// se "OK" verde, altrimenti errore --> ROSSO
+19 -10
View File
@@ -597,7 +597,14 @@ namespace IOB_WIN_NEXT
private void sendDataItemsList(List<machDataItem> dataItems)
{
string rawData = JsonConvert.SerializeObject(dataItems);
utils.callUrlNow($"{urlSaveDataItems}", rawData);
try
{
utils.callUrlNow($"{urlSaveDataItems}", rawData);
}
catch(Exception exc)
{
lgError($"Eccezione in sendDataItemsList{Environment.NewLine} - url: {urlSaveDataItems}{Environment.NewLine}- payload:{rawData}{Environment.NewLine}Eccezione:{Environment.NewLine}{exc}");
}
}
/// <summary>
@@ -776,7 +783,6 @@ namespace IOB_WIN_NEXT
// provo a creare oggetto in memoria...
try
{
List<machDataItem> elencoDataItems = new List<machDataItem>();
int dSamplePeriod = 0;
int threshDBand = 0;
uuid = "";
@@ -786,17 +792,20 @@ namespace IOB_WIN_NEXT
currDataItem.valueTimestamp = adesso;
// aggiungo
dataItemMem.Add(uuid, currDataItem);
// salvo oggetto x registrazione su server MP-IO
var currMapoDataItem = new machDataItem()
// converto gli attuali nell'elenco dataitem...
List<machDataItem> elencoDataItems = dataItemMem.Select(d => new machDataItem()
{
uuid = uuid,
uuid = d.Key,
Category = DataItemCategory.EVENT,
Name = dataItem.DisplayName,
Type = $"{dataItem.NodeClass}",
Name = d.Value.DisplayName,
Type = $"{d.Value.NodeClass}",
SubType = $"{dataItem.StartNodeId}"
};
// aggiungo
elencoDataItems.Add(currMapoDataItem);
}
).ToList();
// aspetta un tempo random da 10-100 ms...
Random rnd = new Random();
Task.Delay(rnd.Next(10, 100));
// invio il dataItem serializzato...
sendDataItemsList(elencoDataItems);
}
+12 -5
View File
@@ -10,9 +10,16 @@ using System.Threading.Tasks;
namespace IOB_WIN_NEXT
{
public enum IcoelStatus
{
Allarme = 0,
Stop = 1,
Manuale = 2,
Automatico = 3
}
public class MesItemStatus
{
public UInt16 Stato { get; set; } = 0;
public IcoelStatus Stato { get; set; } = 0;
public UInt16 Velocita { get; set; } = 0;
public bool Termico { get; set; } = false;
public bool MagnetoTermico { get; set; } = false;
@@ -20,7 +27,7 @@ namespace IOB_WIN_NEXT
public MesItemStatus(byte[] rawData)
{
Stato = BitConverter.ToUInt16(rawData, 0);
Stato = (IcoelStatus)BitConverter.ToUInt16(rawData, 0);
Velocita = BitConverter.ToUInt16(rawData, 2);
Termico = !rawData.Skip(4).Take(1).FirstOrDefault().Equals(0);
MagnetoTermico = !rawData.Skip(5).Take(1).FirstOrDefault().Equals(0);
@@ -34,7 +41,7 @@ namespace IOB_WIN_NEXT
public byte[] serialize()
{
byte[] answ = new byte[7];
Buffer.BlockCopy(BitConverter.GetBytes(Stato), 0, answ, 0, 2);
Buffer.BlockCopy(BitConverter.GetBytes((short)Stato), 0, answ, 0, 2);
Buffer.BlockCopy(BitConverter.GetBytes(Velocita), 0, answ, 2, 2);
Buffer.BlockCopy(BitConverter.GetBytes(Termico), 0, answ, 4, 1);
Buffer.BlockCopy(BitConverter.GetBytes(MagnetoTermico), 0, answ, 5, 1);
@@ -325,7 +332,7 @@ namespace IOB_WIN_NEXT
testSendProperty(new Opc.Ua.Client.MonitoredItem() { DisplayName = $"{blockName}_AvariaInverter", NodeClass = NodeClass.Variable, StartNodeId = startNodeId }, $"{newBlock.AvariaInverter}", forceSend);
}
}
/// <summary>
/// Verifica ed invia variazioni DAL FORMATO RAW data (byte[]) --> esplode oggetti e li testa 1:1
@@ -339,7 +346,7 @@ namespace IOB_WIN_NEXT
{
if (NotifyValue != null && NotifyValue.Length > 0)
{
// verifico variazione "globale"
if (!lastData.Equals(currData))
{
+2 -2
View File
@@ -19,8 +19,8 @@
<package id="RestSharp" version="105.2.3" targetFramework="net462" />
<package id="S7netplus" version="0.1.9" targetFramework="net462" />
<package id="Selenium.Firefox.WebDriver" version="0.27.0" targetFramework="net462" />
<package id="Selenium.WebDriver" version="4.1.0" targetFramework="net462" />
<package id="Selenium.WebDriver.ChromeDriver" version="96.0.4664.4500" targetFramework="net462" />
<package id="Selenium.WebDriver" version="4.1.1" targetFramework="net462" />
<package id="Selenium.WebDriver.ChromeDriver" version="101.0.4951.4100" targetFramework="net462" />
<package id="System.Buffers" version="4.5.1" targetFramework="net462" />
<package id="System.Formats.Asn1" version="6.0.0" targetFramework="net462" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net462" />