Foros del Web » Programación para mayores de 30 ;) » .NET »

No me funciona estos pasos en el VB .net 2013

Estas en el tema de No me funciona estos pasos en el VB .net 2013 en el foro de .NET en Foros del Web. 1)El programa espera la recepciòn de un ENQ(05 Hex) o STX(02 Hex) 2) Si recibo lo del paso 1 , le envìo un ACK(06 Hex) ...
  #1 (permalink)  
Antiguo 27/02/2015, 01:36
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 727
Antigüedad: 17 años, 1 mes
Puntos: 8
No me funciona estos pasos en el VB .net 2013



1)El programa espera la recepciòn de un ENQ(05 Hex) o STX(02 Hex)

2) Si recibo lo del paso 1 , le envìo un ACK(06 Hex)

3)Luego de enviado el ACK leo todo lo que me manda la maquina externa, si es distinto de cualquier caracter de control, lo muestro.

4) Si recibo un EOT(04 Hex) mando un enter en la pantalla de recepcion para diferenciar las lineas.

5) Si recibo un ETX(03 Hex) le respondo con un ACK.

Supongo que en este caso se podrìa hacer un if o un select preguntando lo recibido, el tema es que no se como leer de manera correcta y poder comparar que es lo que se recibio para poder ejecutar la tarea necesaria segun lo que llega.

Código vb:
Ver original
  1. Imports System.IO.Ports
  2. Imports System.Text
  3.  
  4. Public Class Form1
  5.     Dim recibidos As String
  6.     Dim stx As String = ASCIIEncoding.ASCII.GetString(New Byte() {2})
  7.     Dim etx As String = ASCIIEncoding.ASCII.GetString(New Byte() {3})
  8.     Dim eot As String = ASCIIEncoding.ASCII.GetString(New Byte() {4})
  9.     Dim enq As String = ASCIIEncoding.ASCII.GetString(New Byte() {5})
  10.     Dim ack As String = ASCIIEncoding.ASCII.GetString(New Byte() {6})
  11.  
  12.  
  13.     Public Sub New()
  14.         InitializeComponent()
  15.         If Not SerialPort1.IsOpen Then
  16.             Try
  17.                 SerialPort1.Open()
  18.             Catch ex As Exception
  19.                 MessageBox.Show(ex.ToString)
  20.             End Try
  21.         End If
  22.         AddHandler SerialPort1.DataReceived, AddressOf recepcion
  23.     End Sub
  24.  
  25.     Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
  26.         If SerialPort1.IsOpen Then
  27.             SerialPort1.Close()
  28.         End If
  29.     End Sub
  30.  
  31.     Private Sub recepcion(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs)
  32.  
  33.         recibidos = Chr(SerialPort1.ReadChar)
  34.         If recibidos = stx Or recibidos = enq Then
  35.             SerialPort1.Write(ack)
  36.         Else
  37.             If recibidos <> stx And recibidos <> etx And recibidos <> enq And recibidos <> ack And recibidos <> eot Then
  38.                 Me.Invoke(New EventHandler(AddressOf actualizar))
  39.             Else
  40.                 If recibidos = eot Then
  41.                     Me.Invoke(New EventHandler(AddressOf actualizarenter))
  42.                 Else
  43.                     If recibidos = etx Then
  44.                         SerialPort1.Write(ack)
  45.                     End If
  46.                 End If
  47.             End If
  48.         End If
  49.  
  50.  
  51.     End Sub
  52.  
  53.     Private Sub actualizar(ByVal s As Object, ByVal e As EventArgs)
  54.         textbox_visualizar_mensaje.Text = textbox_visualizar_mensaje.Text & recibidos
  55.     End Sub
  56.  
  57.     Private Sub actualizarenter(ByVal s As Object, ByVal e As EventArgs)
  58.         textbox_visualizar_mensaje.Text = textbox_visualizar_mensaje.Text & vbLf
  59.     End Sub
  60.  
  61.     Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
  62.         StatusStrip1.Items(0).Text = DateTime.Now.ToLongTimeString
  63.     End Sub
  64.  
  65.     Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  66.         SerialPort1.Encoding = System.Text.Encoding.Default
  67.     End Sub
  68. End Class
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar

Etiquetas: 2013, net, pasos, programa, vb, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:52.