Hola:
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:
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:
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
'------------------------------------------------------------------------------
' <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.
Link roto: http://electronicapic.iespana.es/manual/picrs232.pdf
Cita de: Hadess_inf en 22 Diciembre 2008, 16:35 PM
Link roto: http://electronicapic.iespana.es/manual/picrs232.pdf
Hola:
No está roto. Pon ese enlace otra vez en el navegador y funciona. Lo acaba de probar y me funciona, eso si, tarda en cargar porque son 20,1 MB en PDF.
Si no puedes en tu navegador, aquí hay otro enlace para verlo, pero si quieres el PDF, tienes que registrarte si no lo está ya.
Ver manual
http://www.slideshare.net/Metaconta/pic-rs232-puerto-serie-con-pic16f84a-presentation
Saludo.
EDITO:Aquí también te la puedes bajar. El autor de la web abcdatos me lo recomendó colocar mis manuales ahí.
http://www.abcdatos.com/tutoriales/tutorial/z9521.html
Si ya puedes descargarlo me avisa para saberlo.
Gracias por tu tiempo.