Files
Mapo-IOB-WIN/IOB-WIN-FACADE/Program.cs
T

83 lines
2.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.NetworkInformation;
using System.Text;
using System.Threading.Tasks;
namespace IOB_WIN_FACADE
{
internal class Program
{
static void Main(string[] args)
{
string sep = "----------------------------";
Console.WriteLine(sep);
Console.WriteLine("- IOB-WIN-FACADE");
Console.WriteLine(sep);
Console.WriteLine("Implementazione segnaposto di applicazioni IOB-WIN-*, da aggiornare con EgwAppControlCenter");
Console.WriteLine();
Console.WriteLine();
int idx = 0;
while (true)
{
var testPing = testPingMachine;
Console.WriteLine($"Ping localhost... {testPing} | ctrl-c to close");
Task.Delay(1000).Wait();
idx++;
if (idx >= 20)
{
Console.WriteLine();
Console.WriteLine(sep);
Console.WriteLine("- IOB-WIN-FACADE");
Console.WriteLine(sep);
Console.WriteLine();
idx = 0;
}
}
}
/// <summary>
/// test ping all'indirizzo PLC/CNC impostato nei parametri
/// </summary>
/// <returns></returns>
protected static IPStatus testPingMachine
{
get
{
IPStatus answ = IPStatus.Unknown;
// se disabilitato salto...
IPAddress address;
PingReply reply;
using (Ping pingSender = new Ping())
{
address = IPAddress.Loopback;
int pingMsTimeout = 500;
IPAddress.TryParse("localhost", out address);
try
{
// se != null --> uso address...
if (address != null)
{
reply = pingSender.Send(address, pingMsTimeout);
}
else
{
reply = pingSender.Send(IPAddress.Loopback, pingMsTimeout);
}
}
catch
{
reply = pingSender.Send(IPAddress.Loopback, pingMsTimeout);
}
answ = reply.Status;
}
return answ;
}
}
}
}