November 2006 - Posts
Estos son los mandatos e instrucciones mas frecuentes para utilizar el puerto serie:
Private Sub EjemploDeLasPrincipalesInstruccionesDeSystem.IO.Port()
Dim Contador As Integer
Serie = My.Computer.Ports.OpenSerialPort("COM1") 'Llamar al constructor
'
'Definir las caracteristicas de la comunicacion
Serie.BaudRate = 19200 'Fijar velocidad de comunicaciones
Serie.DataBits = 8 'Longitud en bits para Byte de datos
Serie.Parity = Parity.Even 'Asignar paridad(enumeracion parity)
Serie.StopBits = StopBits.Two 'Bits parada despues byte de datos
'
'Abrir/Control/Liberar Puerto
Serie.Open() 'Abrir el puerto Serie
Serie.Close() 'Cerrar el Puerto Serie
Serie.Dispose() 'Liberar objecto
Dim SiNo As Integer
SiNo = Serie.IsOpen 'El Puerto esta abierto?
Dim Puerto As String
Puerto = Serie.PortName 'Nombre del puerto
'
'Manejo y Control de señales
Dim Estado As Boolean 'True=Activa / False=Inactiva
Estado = Serie.CDHolding 'Estado de la señal carrier detect
Estado = Serie.CtsHolding 'Señal Clear to Send
Estado = Serie.DsrHolding 'Señal Data Set Ready
Serie.DtrEnable = True 'Activar de Data Terminal Ready
Serie.RtsEnable = True 'Activar Request To Send
'
'Control Transmission/Recepcion
Serie.ReadBufferSize = 1024 'Dimensionar tamaño buffer recepcion
Serie.WriteBufferSize = 1024 'Dimensionar tamaño buffer envio
Serie.ReadTimeout = 10 'Fuera de tiempo para las lecturas
Serie.WriteTimeout = 10 'Fuera de tiempo para las escrituras
Serie.Handshake = Handshake.XOnXOff 'Tipo control para recepcion/envio
Serie.DiscardInBuffer() 'Borrar el buffer de entrada
Serie.DiscardOutBuffer() 'Borrar el buffer de salida
'
'Enviar datos
Contador = Serie.BytesToWrite 'Bytes en espera de ser escritos
Serie.Write("Hola Mundo") 'Enviar una cadena de caracteres
Serie.WriteLine("Hola Mundo") 'Enviar una linea
'
'Leer datos
Contador = Serie.BytesToRead 'Bytes en espera de ser leidos
Serie.ReadByte() 'Leer un byte
Serie.ReadChar() 'Leer un char
Serie.ReadLine() 'Leer una linea
Serie.ReadExisting() 'Leer los datos existentes en buffer
End Sub
Saludos,
Pep Lluis
Pues SI!, tiramos la casa por la ventana.
Sorteamos una subscripcion por un año de MSDN. Todos los interesados en participar debereis enviar un correo electronico a spain_net@msn.com antes del 27.11.2006, indicando la palabra 'SORTEO' en el Asunto, completando el cuerpo del mensaje con vuestro Nombre, Direccion y Telefono de contacto.
ADVERTENCIA : Al ganador se le entregara un bono canjeable por una subscripcion a MSDN valida por un año. El bono caduda el 31.12.2006 y su materializacion es responsabilidad ultima del servicio de Subscripciones y el ganador del premio. Por lo que en ningun caso nos hacemos responsables de cualquier incidente derivado, por perdida o incapacidad de canjear el bono. Nuestra responsabilidad queda limitada a la entrega del Bono, siempre y cuando este nos sea librado por el servicio anteriormente mencionado.
Atendiendo a la solicitud de nuestro amigo Aaron Cuevas, os dejos este ejemplo de como manejar los valores o propiedades de una aplicación o sus controles, utilizando My.Settings, en este ejemplo contemplamos la creación de ajustes manualmente o de forma automatica desde el control.
Podeis descargarlo haciendo 'click' en Attachments.
Resto a vuestra disposición para comentar lo que estimeis oportuno.
Pep Lluis,
Este ejemplo nos muestra como crear un conjunto de filas y columnas en un DataGridView sin estar enlazado a ninguna fuente de datos, puede ser util en situaciones donde nos interesa representar datos en una cuadricula de visualizacion. Para evitar que el usuario pueda añadir filas, hemos puesto su propiedad ‘AllowUserToAddRows’ a ‘Falso’ y para evitar la edicion de las celdas ‘enabled’ en ‘Falso’. Os podeis entretener un poquito y si os interesa podeis ocultar la fila y columna que hace de cabezera o si preferimos podemos ponerles titulos, tambien personalizar el ancho / alto, el color … en fin.
Public Class Form1
Private _MiDGV As New DataGridView 'Nuestro DataGrid
'
'Construir el aspecto de nuestro DataGrid
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
_MiDGV.Dock = DockStyle.Fill 'Acoplar al form
_MiDGV.Enabled = False 'Impedir la edicion
_MiDGV.AllowUserToAddRows = False 'Sin opcion añadir filas
'Dimensionar el ancho automaticamente
_MiDGV.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
Me.Controls.Add(_MiDGV) 'Añadir el Grid al form
Me.OrdenN(3, 3) 'Empezar con un orden 3*3
End Sub
'
'Al pulsar las teclas 1/2/3/4/5
Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
Select Case e.KeyValue 'Al pulsar .. 1/2/3/4/5
Case 49 : OrdenN(1, 1) 'Crear un cubo de 1*1
Case 50 : OrdenN(2, 2) '2*2
Case 51 : OrdenN(3, 3) '3*3
Case 52 : OrdenN(4, 4) '4*4
Case 53 : OrdenN(5, 5) '5*5
End Select
End Sub
'
'Crear un Grid de dimension f(ilas) c(columnas)
Private Sub OrdenN(ByVal f As Integer, ByVal c As Integer)
Me._MiDGV.Rows.Clear() 'Eliminar todas las filas
_MiDGV.ColumnCount = c 'Dimensionar el numero de columnas
Me._MiDGV.Rows.Add(f) 'Dimensionar el numero de filas
Dim Numerar As Integer = 0 'Numerar el contenido de las celdas
For Each row As DataGridViewRow In Me._MiDGV.Rows
For Each col As DataGridViewColumn In Me._MiDGV.Columns
Numerar += 1
row.Cells(col.Index).Value = Numerar.ToString
Next
Next
End Sub
End Class