Hace tiempo hice un manual sobre Visual C# con PIC 16F84A, de tanta demanda estoy con ganas de pasarlo a Visual Basic 2008 Express. No se nada de este lenguaje y me gustaría colaboración de convertir el código que ya tengo hecho de VC# a VB .net.
El manual es este de abajo, pero quiero hacerlo en un PDF a parte.
http://electronicapic.iespana.es/manual/picrs232.pdf
Puedes descargar el código fuente completo de Visual C# para que lo vean y si pueden pasarlo a Visual Basic 2008.
http://www.pic16f84a.org/index.php?option=com_docman&task=doc_download&gid=53&Itemid=59
Contraseña: D.P.E.
El que quiera colaborar y aparecer su e-mail, web o demás información para ponerlo al final del manual. Me envías el archivo ya con el código fuente completo en Visual Basic 2008 Express y sus comentarios explicado en las líneas de código al e-mail metacontaARROBAgmail.com
Un cordial saludo.
EDITO:
He intentado hacer el código de C# a VB en esta web http://www.developerfusion.com/tools/convert/csharp-to-vb/
El código en Form1.vb puse:
Código:
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Linq
Imports System.Text
Imports System.Windows.Forms
Imports System.IO.Ports
Namespace PicRS232
Partial Public Class Form1_Principal
Inherits Form
' Utilizaremos un string como buffer de recepcion
Private Recibidos As String
Public Sub New()
InitializeComponent()
' Abrir puerto mientra se ejecute la aplicación
If Not serialPort1.IsOpen Then
Try
serialPort1.Open()
Catch ex As System.Exception
MessageBox.Show(ex.ToString())
End Try
End If
' Ejecutar la funcion Recepcion por disparo del Evento 'DataReived'
AddHandler serialPort1.DataReceived, AddressOf Recepcion
End Sub
' Al recibir los datos
Private Sub Recepcion(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs)
' Acumular los carácteres recibidos a nuestro 'buffer' (string)
Recibidos += serialPort1.ReadExisting()
' Invocar o llamar al proceso de tramas
Me.Invoke(New EventHandler(Actualizar))
End Sub
' Procesar los datos recibidos en el buffer y extraer tramas completas
Private Sub Actualizar(ByVal s As Object, ByVal e As EventArgs)
' Asignar el valor de la trama al textBox
textBox_visualizar_mensaje.Text = Recibidos
End Sub
Private Sub button_t_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim mBuffer As Byte() = New Byte(0) {}
mBuffer(0) = &H74
'ASCII letra "t".
serialPort1.Write(mBuffer, 0, mBuffer.Length)
End Sub
Private Sub button_b_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim miBuffer As Byte() = New Byte(0) {}
miBuffer(0) = &H62
'ASCII letra "b".
serialPort1.Write(miBuffer, 0, miBuffer.Length)
End Sub
Private Sub button_a_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim mBuffer As Byte() = New Byte(0) {}
mBuffer(0) = &H61
'ASCII letra "a".
serialPort1.Write(mBuffer, 0, mBuffer.Length)
End Sub
Private Sub button_l_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim mBuffer As Byte() = New Byte(0) {}
mBuffer(0) = &H6C
'ASCII letra "l".
serialPort1.Write(mBuffer, 0, mBuffer.Length)
End Sub
Private Sub button_Espacio_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim mBuffer As Byte() = New Byte(0) {}
mBuffer(0) = &H20
'ASCII letra "Espacio".
serialPort1.Write(mBuffer, 0, mBuffer.Length)
End Sub
Private Sub timer1_Tick(ByVal sender As Object, ByVal e As EventArgs)
statusStrip1.Items(0).Text = DateTime.Now.ToLongTimeString()
End Sub
End Class
End Namespace
Ahora en Form1.Designer.vb puse:
Código:
Namespace PicRS232
Partial Class Form1_Principal
''' <summary>
''' Variable del diseñador requerida.
''' </summary>
Private components As System.ComponentModel.IContainer = Nothing
''' <summary>
''' Limpiar los recursos que se estén utilizando.
''' </summary>
''' <param name="disposing">true si los recursos administrados se deben eliminar; false en caso contrario, false.</param>
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso (components IsNot Nothing) Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
#Region "Código generado por el Diseñador de Windows Forms"
''' <summary>
''' Método necesario para admitir el Diseñador. No se puede modificar
''' el contenido del método con el editor de código.
''' </summary>
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Me.button_t = New System.Windows.Forms.Button()
Me.button_b = New System.Windows.Forms.Button()
Me.button_a = New System.Windows.Forms.Button()
Me.button_l = New System.Windows.Forms.Button()
Me.button_Espacio = New System.Windows.Forms.Button()
Me.serialPort1 = New System.IO.Ports.SerialPort(Me.components)
Me.statusStrip1 = New System.Windows.Forms.StatusStrip()
Me.textBox_visualizar_mensaje = New System.Windows.Forms.TextBox()
Me.label_mensaje_pic = New System.Windows.Forms.Label()
Me.timer1 = New System.Windows.Forms.Timer(Me.components)
Me.toolStripStatusLabel1 = New System.Windows.Forms.ToolStripStatusLabel()
Me.statusStrip1.SuspendLayout()
Me.SuspendLayout()
'
' button_t
'
Me.button_t.Location = New System.Drawing.Point(109, 38)
Me.button_t.Name = "button_t"
Me.button_t.Size = New System.Drawing.Size(75, 23)
Me.button_t.TabIndex = 0
Me.button_t.Text = "t"
Me.button_t.UseVisualStyleBackColor = True
AddHandler Me.button_t.Click, AddressOf Me.button_t_Click
'
' button_b
'
Me.button_b.Location = New System.Drawing.Point(109, 67)
Me.button_b.Name = "button_b"
Me.button_b.Size = New System.Drawing.Size(75, 23)
Me.button_b.TabIndex = 1
Me.button_b.Text = "b"
Me.button_b.UseVisualStyleBackColor = True
AddHandler Me.button_b.Click, AddressOf Me.button_b_Click
'
' button_a
'
Me.button_a.Location = New System.Drawing.Point(28, 67)
Me.button_a.Name = "button_a"
Me.button_a.Size = New System.Drawing.Size(75, 23)
Me.button_a.TabIndex = 2
Me.button_a.Text = "a"
Me.button_a.UseVisualStyleBackColor = True
AddHandler Me.button_a.Click, AddressOf Me.button_a_Click
'
' button_l
'
Me.button_l.Location = New System.Drawing.Point(190, 67)
Me.button_l.Name = "button_l"
Me.button_l.Size = New System.Drawing.Size(75, 23)
Me.button_l.TabIndex = 3
Me.button_l.Text = "l"
Me.button_l.UseVisualStyleBackColor = True
AddHandler Me.button_l.Click, AddressOf Me.button_l_Click
'
' button_Espacio
'
Me.button_Espacio.BackColor = System.Drawing.Color.FromArgb(CInt(CByte((255))), CInt(CByte((128))), CInt(CByte((0))))
Me.button_Espacio.Location = New System.Drawing.Point(190, 96)
Me.button_Espacio.Name = "button_Espacio"
Me.button_Espacio.Size = New System.Drawing.Size(75, 23)
Me.button_Espacio.TabIndex = 4
Me.button_Espacio.Text = "Espacio"
Me.button_Espacio.UseVisualStyleBackColor = False
AddHandler Me.button_Espacio.Click, AddressOf Me.button_Espacio_Click
'
' serialPort1
'
Me.serialPort1.StopBits = System.IO.Ports.StopBits.Two
'
' statusStrip1
'
Me.statusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.toolStripStatusLabel1})
Me.statusStrip1.Location = New System.Drawing.Point(0, 244)
Me.statusStrip1.Name = "statusStrip1"
Me.statusStrip1.Size = New System.Drawing.Size(292, 22)
Me.statusStrip1.TabIndex = 7
Me.statusStrip1.Text = "statusStrip1"
'
' textBox_visualizar_mensaje
'
Me.textBox_visualizar_mensaje.Anchor = DirectCast(((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) Or System.Windows.Forms.AnchorStyles.Left) Or System.Windows.Forms.AnchorStyles.Right)), System.Windows.Forms.AnchorStyles)
Me.textBox_visualizar_mensaje.Location = New System.Drawing.Point(0, 162)
Me.textBox_visualizar_mensaje.Multiline = True
Me.textBox_visualizar_mensaje.Name = "textBox_visualizar_mensaje"
Me.textBox_visualizar_mensaje.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
Me.textBox_visualizar_mensaje.Size = New System.Drawing.Size(292, 82)
Me.textBox_visualizar_mensaje.TabIndex = 6
'
' label_mensaje_pic
'
Me.label_mensaje_pic.AutoSize = True
Me.label_mensaje_pic.Location = New System.Drawing.Point(25, 146)
Me.label_mensaje_pic.Name = "label_mensaje_pic"
Me.label_mensaje_pic.Size = New System.Drawing.Size(110, 13)
Me.label_mensaje_pic.TabIndex = 5
Me.label_mensaje_pic.Text = "Mensaje desde el PIC"
'
' timer1
'
Me.timer1.Enabled = True
Me.timer1.Interval = 1000
AddHandler Me.timer1.Tick, AddressOf Me.timer1_Tick
'
' toolStripStatusLabel1
'
Me.toolStripStatusLabel1.Name = "toolStripStatusLabel1"
Me.toolStripStatusLabel1.Size = New System.Drawing.Size(53, 17)
Me.toolStripStatusLabel1.Text = "hh:mmTongue Tieds"
'
' Form1_Principal
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0F, 13.0F)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(292, 266)
Me.Controls.Add(Me.label_mensaje_pic)
Me.Controls.Add(Me.textBox_visualizar_mensaje)
Me.Controls.Add(Me.statusStrip1)
Me.Controls.Add(Me.button_Espacio)
Me.Controls.Add(Me.button_l)
Me.Controls.Add(Me.button_a)
Me.Controls.Add(Me.button_b)
Me.Controls.Add(Me.button_t)
Me.Name = "Form1_Principal"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "PicRS232"
Me.statusStrip1.ResumeLayout(False)
Me.statusStrip1.PerformLayout()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
#End Region
Private button_t As System.Windows.Forms.Button
Private button_b As System.Windows.Forms.Button
Private button_a As System.Windows.Forms.Button
Private button_l As System.Windows.Forms.Button
Private button_Espacio As System.Windows.Forms.Button
Private serialPort1 As System.IO.Ports.SerialPort
Private statusStrip1 As System.Windows.Forms.StatusStrip
Private textBox_visualizar_mensaje As System.Windows.Forms.TextBox
Private label_mensaje_pic As System.Windows.Forms.Label
Private timer1 As System.Windows.Forms.Timer
Private toolStripStatusLabel1 As System.Windows.Forms.ToolStripStatusLabel
End Class
End Namespace
Al ejecutar me sale error:
Error 1 El delegado 'System.EventHandler' requiere una expresión 'AddressOf' o una expresión lambda como único argumento de su constructor. C:\Documents and Settings\Hunter\Mis documentos\Visual Studio 2008\Projects\prueba1\prueba1\Form1.vb 34 40 prueba1
Otro error.
Error 2 'Form1' no es un miembro de 'prueba1'. C:\Documents and Settings\Hunter\Mis documentos\Visual Studio 2008\Projects\prueba1\prueba1\My Project\Application.Designer.vb 35 27 prueba1
Código:
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:2.0.50727.3053
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
'NOTE: This file is auto-generated; do not modify it directly. To make changes,
' or if you encounter build errors in this file, go to the Project Designer
' (go to Project Properties or double-click the My Project node in
' Solution Explorer), and make changes on the Application tab.
'
Partial Friend Class MyApplication
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Public Sub New()
MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
Me.IsSingleInstance = false
Me.EnableVisualStyles = true
Me.SaveMySettingsOnExit = true
Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
End Sub
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Protected Overrides Sub OnCreateMainForm()
Me.MainForm = Global.PicRS232.Form1
End Sub
End Class
End Namespace
Necesito ayuda.