Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - jjcoronas2017

#1
Saludos, modifiqué un fragmento de código bajado de la web que me permite en VB.NET verificar el estado de conexión a Internet con un formulario pequeño, el cual envía un dato a través de puerto serial (USB) a una tarjeta Arduino UNO R3 para que actúe en consecuencia. El código lo ejecuto dentro de un timer con un intervalo de 10 minutos, pero al correrlo (lo puse en segundos para probar su funcionamiento) cada vez que transcurre el tiempo fijado, obviamente ejecuta la acción y la tarjeta actúa, ya que recibe el dato. Lo que necesito es que evalúe el estado cada cierto tiempo y solo si se altera el estado de la conexión que envíe el dato. ¿Qué me sugieren hacer? Anexo el código para que puedan ver lo que actualmente hace:
Código (vbnet) [Seleccionar]

Imports System.Net.NetworkInformation
Imports System.Threading
Public Class Form1
   Private Sub InitializeTimer()
       Timer1.Interval = 10000
       Timer1.Enabled = True
   End Sub
   Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
       If My.Computer.Network.IsAvailable() Then
           Try
               If My.Computer.Network.Ping("8.8.8.8", 1000) Then
                   Label1.Text = "Conectado."
                   Label1.Location = New Point(131, 65)
                   Label1.ForeColor = Color.White
                   Me.BackColor = Color.Green
                   SerialPort1.Open()
                   SerialPort1.Write("1")
                   System.Threading.Thread.Sleep(3000)
                   SerialPort1.Write("2")
                   SerialPort1.Close()
               Else
                   Label1.Text = "Error de conexión."
                   Label1.Location = New Point(95, 65)
                   Label1.ForeColor = Color.White
                   Me.BackColor = Color.Red
                   SerialPort1.Open()
                   SerialPort1.Write("0")
                   System.Threading.Thread.Sleep(3000)
                   SerialPort1.Write("2")
                   SerialPort1.Close()
               End If
           Catch ex As PingException
               Label1.Text = "Error de conexión."
               Label1.Location = New Point(95, 65)
               Label1.ForeColor = Color.White
               Me.BackColor = Color.Red
               SerialPort1.Open()
               SerialPort1.Write("0")
               System.Threading.Thread.Sleep(3000)
               SerialPort1.Write("2")
               SerialPort1.Close()
           End Try
       Else
           Label1.Text = "Error de conexión."
           Label1.Location = New Point(95, 65)
           Label1.ForeColor = Color.White
           Me.BackColor = Color.Red
           SerialPort1.Open()
           SerialPort1.Write("0")
           System.Threading.Thread.Sleep(3000)
           SerialPort1.Write("2")
           SerialPort1.Close()
       End If
   End Sub