This commit is contained in:
klavirshik 2024-07-16 19:08:25 +02:00
parent f4c5232547
commit 0fc356df19
5 changed files with 67 additions and 16 deletions

View File

@ -4,9 +4,48 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Net.NetworkInformation;
namespace Reseter2 namespace Reseter2
{ {
internal class Pinger internal class Pinger
{ {
private string NameOrAddress;
private int TimeoutCount;
public Pinger(string nameOrAddress)
{
this.NameOrAddress = nameOrAddress;
}
public int Timeout() {
return TimeoutCount;
}
public long PingHost()
{
bool pingable = false;
long ping = 0;
Ping pinger = null;
try
{
pinger = new Ping();
PingReply reply = pinger.Send(this.NameOrAddress);
pingable = reply.Status == IPStatus.TimedOut;
ping = reply.RoundtripTime;
}
catch (PingException)
{
// Discard PingExceptions and return false;
}
finally
{
if (pinger != null)
{
pinger.Dispose();
}
}
if (pingable) TimeoutCount++;
return ping;
}
} }
} }

View File

@ -11,12 +11,14 @@ namespace Reseter2
private IComp Comp; private IComp Comp;
private AStatusTask StatusTask; private AStatusTask StatusTask;
private TaskControl taskControl; private TaskControl taskControl;
private Pinger Pingers;
public ReseterTask(IComp comp, TaskControl taskCntrl) public ReseterTask(IComp comp, TaskControl taskCntrl)
{ {
Comp = comp; Comp = comp;
taskControl = taskCntrl; taskControl = taskCntrl;
StatusTask = new StatusPreReboot(this); StatusTask = new StatusPreReboot(this);
Pingers = new Pinger(Comp.GetName());
} }
public string GetName() public string GetName()
{ {
@ -28,9 +30,18 @@ namespace Reseter2
StatusTask.Tick(); StatusTask.Tick();
} }
public void DataContrl(string srt) public long Ping()
{ {
taskControl.DataContrl(srt); return Pingers.PingHost();
}
public int Timeout() {
return Pingers.Timeout();
}
public void DataContrl(string ping, string timeout)
{
taskControl.DataContrl(ping, timeout);
} }
private void Clear() private void Clear()
{ {

View File

@ -16,7 +16,8 @@ namespace Reseter2
public override void Tick() public override void Tick()
{ {
time++; time++;
resetertask.DataContrl(time.ToString());
resetertask.DataContrl(resetertask.Ping().ToString(), resetertask.Timeout().ToString());
} }
public override void Next() public override void Next()
{ {

View File

@ -36,7 +36,7 @@
this.label4 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label();
this.lb_ping = new System.Windows.Forms.Label(); this.lb_ping = new System.Windows.Forms.Label();
this.Timeout = new System.Windows.Forms.Label(); this.Timeout = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label(); this.lb_timeout = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button(); this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button(); this.button2 = new System.Windows.Forms.Button();
this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.pictureBox1 = new System.Windows.Forms.PictureBox();
@ -116,14 +116,13 @@
this.Timeout.TabIndex = 7; this.Timeout.TabIndex = 7;
this.Timeout.Text = "Timeout"; this.Timeout.Text = "Timeout";
// //
// label5 // lb_timeout
// //
this.label5.AutoSize = true; this.lb_timeout.AutoSize = true;
this.label5.Location = new System.Drawing.Point(225, 49); this.lb_timeout.Location = new System.Drawing.Point(225, 49);
this.label5.Name = "label5"; this.lb_timeout.Name = "lb_timeout";
this.label5.Size = new System.Drawing.Size(25, 13); this.lb_timeout.Size = new System.Drawing.Size(0, 13);
this.label5.TabIndex = 8; this.lb_timeout.TabIndex = 8;
this.label5.Text = "123";
// //
// button1 // button1
// //
@ -160,7 +159,7 @@
this.Controls.Add(this.pictureBox1); this.Controls.Add(this.pictureBox1);
this.Controls.Add(this.button2); this.Controls.Add(this.button2);
this.Controls.Add(this.button1); this.Controls.Add(this.button1);
this.Controls.Add(this.label5); this.Controls.Add(this.lb_timeout);
this.Controls.Add(this.Timeout); this.Controls.Add(this.Timeout);
this.Controls.Add(this.lb_ping); this.Controls.Add(this.lb_ping);
this.Controls.Add(this.label4); this.Controls.Add(this.label4);
@ -187,7 +186,7 @@
private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label lb_ping; private System.Windows.Forms.Label lb_ping;
private System.Windows.Forms.Label Timeout; private System.Windows.Forms.Label Timeout;
private System.Windows.Forms.Label label5; private System.Windows.Forms.Label lb_timeout;
private System.Windows.Forms.Button button1; private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2; private System.Windows.Forms.Button button2;
private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.PictureBox pictureBox1;

View File

@ -26,9 +26,10 @@ namespace Reseter2
lb_name.Text = reseterTask.GetName(); lb_name.Text = reseterTask.GetName();
} }
public void DataContrl(string ping) public void DataContrl(string ping, string timeout)
{ {
label5.Text = ping; lb_ping.Text = ping;
lb_timeout.Text = timeout;
} }
private void label1_Click(object sender, EventArgs e) private void label1_Click(object sender, EventArgs e)