Example #1
0
 static public void AddIP(xIP IP)//
 {
     if (!IPs.Contains(IP))
     {
         IPs.Add(IP);
     }
 }
Example #2
0
 static public void lvIPs_Renew(ListViewItem lvItem, xIP IP)//Ok
 {
     if (IP == null || lvItem == null)
     {
         return;
     }
     lvItem.Checked          = IP.Onn;
     lvItem.SubItems[0].Text = IP.Address;
     lvItem.SubItems[1].Text = IP.Period.ToString();
     lvItem.SubItems[2].Text = IP.TimeNext.ToString(Options.TIME_FORMAT);
     lvItem.SubItems[3].Text = "-//-";
     lvItem.SubItems[4].Text = "-//-";
     lvItem.ImageIndex       = 0;
     if (IP.Pings[0] == null)
     {
         return;
     }
     if (IP.Pings[0].State != PingStates.NotSend)
     {
         lvItem.SubItems[3].Text = IP.TimeLast.ToString(Options.TIME_FORMAT);
         if (IP.Pings[0].State == PingStates.Send)
         {
             lvItem.SubItems[4].Text = Options.LangCur.lIPPingSend;
             lvItem.ImageIndex       = 0;
         }
         else if (IP.Pings[0].State == PingStates.Cancelled)
         {
             lvItem.SubItems[4].Text = Options.LangCur.lIPPingCancelled;
             lvItem.ImageIndex       = 5;
         }
         else if (IP.Pings[0].Error != "")
         {
             lvItem.SubItems[4].Text = IP.Pings[0].Error;
             lvItem.ImageIndex       = 5;
         }
         else
         {
             lvItem.SubItems[4].Text = IP.Pings[0].TripTime.ToString() + " (" + IP.Pings[0].Replayer + ")";
             if (IP.Pings[0].TripTime < IP.TimeOutGreen)
             {
                 lvItem.ImageIndex = 1;
             }
             else if (IP.Pings[0].TripTime < IP.TimeOutGreen + IP.TimeOutYellow)
             {
                 lvItem.ImageIndex = 2;
             }
             else if (IP.Pings[0].TripTime < IP.TimeOutGreen + IP.TimeOutYellow + IP.TimeOutRed)
             {
                 lvItem.ImageIndex = 3;
             }
             else
             {
                 lvItem.ImageIndex = 4;
             }
         }
     }
 }
Example #3
0
        static public void timerPing_Tick(object sender, EventArgs e)//!
        {
            if (IPs.Count < 1)
            {
                return;
            }
            // Init loop
            if (IPs.Count <= LastSendIPIdx)
            {
                LastSendIPIdx = 0;
            }
            int count      = 0;
            xIP startIP    = IPs[LastSendIPIdx];
            int SendersIdx = PingSenders.Length - 1;

            do
            {
                // Find free sender
                for (; 0 <= SendersIdx; SendersIdx--)
                {
                    if (PingIPsIDs[SendersIdx] == null)
                    {
                        break;
                    }
                }
                // No free sender
                if (SendersIdx < 0)
                {
                    break;
                }
                // Send
                xIP IP = IPs[LastSendIPIdx];
                if (IP.AddPing(DateTime.Now))
                {
                    PingIPsIDs[SendersIdx] = IP;
                    PingSenders[SendersIdx].SendPingAsync(
                        IP.Address,
                        IP.TimeOutGreen + IP.TimeOutYellow + IP.TimeOutRed,
                        Encoding.ASCII.GetBytes(IP.ID.ToString()),
                        PingOptions);
                }
                // Step
                LastSendIPIdx++;
                count++;
                // Finish?
                if (IPs.Count <= LastSendIPIdx)
                {
                    LastSendIPIdx = 0;
                }
                if (startIP == IPs[LastSendIPIdx])
                {
                    break;
                }
            } while (count < PingCount);
        }
Example #4
0
        public IPEditForm(xIP ip, xObject owner)//Ok
        {
            InitializeComponent();
            //Main
            tpPings.Text          = Options.LangCur.lIPTabMain;
            lblAddress.Text       = Options.LangCur.lIPAddress;
            lblName.Text          = Options.LangCur.lEOName;
            lblPeriod.Text        = Options.LangCur.lIPPeriod;
            lblTimeNext.Text      = Options.LangCur.lIPTimeNext;
            lblTimeOutGreen.Text  = Options.LangCur.lIPTimeOutGreen;
            lblTimeOutYellow.Text = Options.LangCur.lIPTimeOutYellow;
            lblTimeOutRed.Text    = Options.LangCur.lIPTimeOutRed;
            // Fill
            if (ip == null)
            {
                Text = Options.LangCur.lIPTitleAdd;
                ip   = new xIP(owner);
            }
            else
            {
                Text = Options.LangCur.lIPTitleEdit;
            }
            IP                 = ip;
            tbName.Text        = IP.Name;
            tbDescription.Text = IP.Description;
            tbAddress.Text     = IP.Address;
            //
            nudTimeOutGreen.Value  = IP.TimeOutGreen;
            nudTimeOutYellow.Value = IP.TimeOutYellow;
            nudTimeOutRed.Value    = IP.TimeOutRed;
            //
            dtpDateNext.Value   = IP.TimeNext;
            dtpDateNext.Checked = IP.Onn;
            nudPeriod.Value     = IP.Period;

            // Pings
            tpPings.Text     = Options.LangCur.lIPTabPings;
            clmSendTime.Text = Options.LangCur.lIPColumSendTime;
            clmState.Text    = Options.LangCur.lIPColumState;
            clmTripTime.Text = Options.LangCur.lIPColumTripTime;
            toolTip.SetToolTip(btnClearPings, Options.LangCur.hIPClearPings);
            // Fill
            for (int i = 0; i < IP.PingsCount; i++)
            {
                if (IP.Pings[i].State != PingStates.NotSend)
                {
                    Share.lvPings_Add(lvPings, IP, IP.Pings[i]);
                }
            }
            IP.Pings_lv = lvPings;

            // Push window sizes
            tabControl.Width = tlpTimers.Width + 16;
        }
Example #5
0
        static public void RemoveIP(xIP IP)//
        {
            int idx = IPs.IndexOf(IP);

            if (0 <= idx)
            {
                if (idx < LastSendIPIdx)
                {
                    LastSendIPIdx--;
                }
            }
            IPs.Remove(IP);
        }
Example #6
0
 static public void lvIPs_Add(ListView lvIPs, xIP IP, ref ListViewItem target_lvItem)//Ok
 {
     if (lvIPs == null || IP == null)
     {
         return;
     }
     target_lvItem = lvIPs.Items.Add("");
     target_lvItem.SubItems.Add("");
     target_lvItem.SubItems.Add("");
     target_lvItem.SubItems.Add("");
     target_lvItem.SubItems.Add("");
     lvIPs_Renew(target_lvItem, IP);
     target_lvItem.Tag = IP;
 }
Example #7
0
        private static void PingCallback(object sender, PingCompletedEventArgs e)//!
        {
            // Find sender index
            int SendersIdx = PingSenders.Length - 1;

            for (; 0 <= SendersIdx; SendersIdx--)
            {
                if (PingSenders[SendersIdx] == sender)
                {
                    break;
                }
            }
            // Error
            if (SendersIdx < 0)
            {
                return;
            }
            // Get IP record
            xIP IP = PingIPsIDs[SendersIdx];

            if (IPs.Contains(IP))
            {
                if (IP.Pings[0] != null)
                {
                    // Update record
                    if (e.Cancelled)
                    {
                        IP.Pings[0].State = PingStates.Cancelled;
                    }
                    else
                    {
                        if (e.Error != null)
                        {
                            IP.Pings[0].Error = e.Error.Message;
                        }
                        IP.Pings[0].State    = PingStates.Replayed;
                        IP.Pings[0].Replayer = e.Reply.Address.ToString();
                        IP.Pings[0].Status   = e.Reply.Status;
                        IP.Pings[0].TripTime = (int)e.Reply.RoundtripTime;
                        // Update showed info
                        Share.lvIPs_Renew(IP.Obj_lvItem, IP);
                        Share.lvIPs_Renew(IP.Map_lvItem, IP);
                        Share.lvPings_Renew(IP.Pings_lv?.Items[0], IP, IP.Pings[0]);
                    }
                }
            }
            PingIPsIDs[SendersIdx] = null;
        }
Example #8
0
 static public void lvPings_Renew(ListViewItem lvItem, xIP IP, xPing Ping)//Ok
 {
     if (lvItem == null || Ping == null)
     {
         return;
     }
     lvItem.SubItems[0].Text = Ping.SendTime.ToString(Options.TIME_FORMAT);
     lvItem.SubItems[2].Text = "";
     if (Ping.State == PingStates.Send)
     {
         lvItem.SubItems[1].Text = Options.LangCur.lIPPingSend;
         lvItem.ImageIndex       = 0;
     }
     else if (Ping.State == PingStates.Cancelled)
     {
         lvItem.SubItems[1].Text = Options.LangCur.lIPPingCancelled;
         lvItem.ImageIndex       = 5;
     }
     else if (Ping.Error != "")
     {
         lvItem.SubItems[1].Text = Ping.Error;
         lvItem.ImageIndex       = 5;
     }
     else
     {
         lvItem.SubItems[1].Text = Ping.Replayer;
         lvItem.SubItems[2].Text = Ping.TripTime.ToString();
         if (Ping.TripTime < IP.TimeOutGreen)
         {
             lvItem.ImageIndex = 1;
         }
         else if (Ping.TripTime < IP.TimeOutGreen + IP.TimeOutYellow)
         {
             lvItem.ImageIndex = 2;
         }
         else if (Ping.TripTime < IP.TimeOutGreen + IP.TimeOutYellow + IP.TimeOutRed)
         {
             lvItem.ImageIndex = 3;
         }
         else
         {
             lvItem.ImageIndex = 4;
         }
     }
 }
Example #9
0
        static public void lvPings_Add(ListView lvPings, xIP IP, xPing Ping)//Ok
        {
            if (lvPings == null || Ping == null)
            {
                return;
            }
            var ping_item = lvPings.Items.Insert(0, "");

            ping_item.SubItems.Add("");
            ping_item.SubItems.Add("");
            ping_item.SubItems.Add("");
            if (IP.PingsCount < lvPings.Items.Count)
            {
                lvPings.Items.RemoveAt(IP.PingsCount);
            }
            lvPings_Renew(ping_item, IP, Ping);
            ping_item.Tag = Ping;
        }
Example #10
0
        static public void lvIPs_Edit(ListView lvIPs)//Ok
        {
            if (lvIPs == null)
            {
                return;
            }
            if (lvIPs.SelectedItems.Count < 1)
            {
                return;
            }
            xIP ip = (lvIPs.SelectedItems[0].Tag as xIP);

            if (ip == null)
            {
                return;
            }
            new IPEditForm(ip, null).ShowDialog();
            lvIPs_Renew(ip.Obj_lvItem, ip);
            lvIPs_Renew(ip.Map_lvItem, ip);
        }