Hola:
Hice un programa en VB .net 2017. Me da este error con el Me y no se como solucionarlo.
¿Alguna idea?
El código es:
Código:
Imports System
Imports System.Text
Imports System.IO.Ports
Imports System.IO
Imports System.Diagnostics
Imports System.Threading
Namespace Recibir_archivo_desde_Arduino_consola_06
Class Program
Shared cantidadBytes As Integer
Shared sb As New StringBuilder()
Shared Sub Main(args As String())
Dim COM As String = ""
' Título de la ventana.
Console.Title = "Recoger foto desde Arduino y crearlo en el disco duro"
' Tamaño ventana consola.
Console.WindowWidth = 55 ' X. Ancho.
Console.WindowHeight = 18 ' Y. Alto.
' Crear un nuevo objeto SerialPort con la configuración predeterminada.
Dim Puerto_serie As New SerialPort()
' Configuración.
Console.Write("
Introduzca un número para seleccionar puerto COM.
Por ejemplo el 4, sería COM4.
Puerto: ")
COM = Console.ReadLine() ' Escribir el número del puerto.
Console.Clear()
Puerto_serie.PortName = "COM" & COM ' Número del puerto serie.
Puerto_serie.BaudRate = 115200 ' Baudios. 115200.
Puerto_serie.Parity = Parity.None ' Paridad.
Puerto_serie.DataBits = 8 ' Bits de datos.
Puerto_serie.StopBits = StopBits.One ' Bits de parada.
Puerto_serie.Handshake = Handshake.None ' Control de flujo.
' Establecer la lectura / escritura de los tiempos de espera.
Puerto_serie.ReadTimeout = -1 ' 500.
Puerto_serie.WriteTimeout = -1 ' 500.
Puerto_serie.Open() ' Abrir el puerto serie.
'Puerto_serie.DataReceived += New SerialDataReceivedEventHandler(DataReceivedHandler)
AddHandler Puerto_serie.DataReceived, AddressOf Me.Puerto_serie_DataReceived
Console.WriteLine("Esperando datos desde Arduino... " & vbLf & "")
Console.ReadKey()
Puerto_serie.Close() ' Cerrar puerto.
End Sub
Private Shared Sub DataReceivedHandler(sender As Object, e As SerialDataReceivedEventArgs)
'Private Sub Puerto_serie_DataReceived(ByVal sender As Object, ByVal e As DataReceivedHandler) Handles Puerto_serie.DataReceived
Dim sp As SerialPort = DirectCast(sender, SerialPort)
Dim indata As String = sp.ReadExisting()
Dim data As String() = indata.Split({"A"c})
cantidadBytes = Integer.Parse(data(0))
Select Case data(1).ToString()
Case "1"
Console.WriteLine("Tamaño: " & cantidadBytes & " Bytes.")
Console.WriteLine("Foto: " & data(1) & ". Tipo de archivo: JPG")
Case "2"
Console.WriteLine("Tamaño: " & cantidadBytes & " Bytes.")
Console.WriteLine("Foto: " & data(1) & ". Tipo de archivo: PNG.")
Case Else
Console.WriteLine("Cosas raras en 'data': " & data.ToString())
End Select
Dim contador As Integer = 0 ' Por si hal algún error.
Dim datosArray(0 To cantidadBytes - 1) As Byte
Select Case indata
Case "17729A1"
Thread.Sleep(100)
Dim miBuffer = Encoding.ASCII.GetBytes("OK1") ' Codificación ASCII.
sp.Write(miBuffer, 0, miBuffer.Length) ' Envía OK1 al puerto serie.
Case "2065A2"
Thread.Sleep(100)
Dim miBuffer2 = Encoding.ASCII.GetBytes("OK2") ' Codificación ASCII.
sp.Write(miBuffer2, 0, miBuffer2.Length) ' Envía OK2 al puerto serie.
Case Else
Console.WriteLine("Cosas raras en 'indata': " & indata.ToString())
End Select
While True
contador += sp.Read(datosArray, contador, datosArray.Length - contador) ' Por si hal algún error.
Console.SetCursorPosition(10, 6)
Console.Write("Datos recibidos: {0}", contador & " Bytes.")
Console.WriteLine(" ")
If (contador = cantidadBytes) AndAlso (contador = 17729) Then
Mensaje1()
File.WriteAllBytes("fotón.jpg", datosArray) ' Crear archivo en el disco duro.
Mensaje2()
Process.Start("fotón.jpg") ' Ejecutar visualizador de imágenes.
Mensaje3()
'break ' Garantiza que el ciclo termine.
End If
If (contador = cantidadBytes) AndAlso (contador = 2065) Then
Mensaje1()
File.WriteAllBytes("fotón.png", datosArray) ' Crear archivo en el disco duro.
Mensaje2()
Process.Start("fotón.png") ' Ejecutar visualizador de imágenes.
Mensaje3()
'break ' Garantiza que el ciclo termine.
End If
End While
End Sub
Public Shared Sub Mensaje1()
Console.WriteLine()
Console.WriteLine("Creando archivo al disco duro...")
End Sub
Public Shared Sub Mensaje2()
Console.WriteLine()
Console.WriteLine("Archivo creado. Ejecutando imagen.")
End Sub
Public Shared Sub Mensaje3()
Console.WriteLine()
Console.WriteLine("Imagen ejecutada.")
Console.WriteLine()
'Console.WriteLine("Cabecera recibida: " & indata & "" & vbLf & "")
Console.ForegroundColor = ConsoleColor.Yellow ' Letras amarillas.
Console.WriteLine("FIN DE PROGRAMA.")
Console.ForegroundColor = ConsoleColor.Gray ' Letras grises otra vez.
End Sub
End Class
End Namespace
Error:
Gravedad Código Descripción Proyecto Archivo Línea Estado suprimido
Error BC30043
'Me' solo es válido en un método de instancia. Recibir_archivo_desde_Arduino_consola_VB C:\Users\usuario\documents\visual studio 2017\Projects\Recibir_archivo_desde_Arduino_consol a_VB\Recibir_archivo_desde_Arduino_consola_VB\Modu le1.vb 51 Activo
Marcadores