|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - Meta
51
« en: Miércoles 15 de Julio de 2009, 21:52 »
Ya me ha salido. -- phpMyAdmin SQL Dump -- version 3.2.0.1 -- http://www.phpmyadmin.net -- -- Servidor: localhost -- Tiempo de generación: 15-07-2009 a las 20:52:13 -- Versión del servidor: 5.1.36 -- Versión de PHP: 5.2.10 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Base de datos: `pic_remoto` -- CREATE DATABASE `pic_remoto` DEFAULT CHARACTER SET latin1 COLLATE latin1_spanish_ci; USE `pic_remoto`; -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `dispositivos` -- CREATE TABLE IF NOT EXISTS `dispositivos` ( `ID` INT(11) NOT NULL AUTO_INCREMENT, `nombre` VARCHAR(6) COLLATE latin1_spanish_ci NOT NULL, `estado` tinyint(2) NOT NULL, `descripcion` VARCHAR(20) COLLATE latin1_spanish_ci NOT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci AUTO_INCREMENT=5 ; -- -- (Evento) desencadenante `dispositivos` -- DROP TRIGGER IF EXISTS `pic_remoto`.`logestado`; DELIMITER // CREATE TRIGGER `pic_remoto`.`logestado` AFTER UPDATE ON `pic_remoto`.`dispositivos` FOR EACH ROW BEGIN DECLARE Rele1 INT; DECLARE Rele2 INT; DECLARE Rele3 INT; DECLARE Rele4 INT; SET Rele1 = (SELECT estado FROM dispositivos WHERE nombre LIKE 'RELE 1'); SET Rele2 = (SELECT estado FROM dispositivos WHERE nombre LIKE 'RELE 2'); SET Rele3 = (SELECT estado FROM dispositivos WHERE nombre LIKE 'RELE 3'); SET Rele4 = (SELECT estado FROM dispositivos WHERE nombre LIKE 'RELE 4'); INSERT INTO log(RELE_1, RELE_2, RELE_3, RELE_4, USUARIO, FECHA_HORA) VALUES (Rele1, Rele2, Rele3, Rele4, USER(), NOW()); END // DELIMITER ; -- -- Volcar la base de datos para la tabla `dispositivos` -- INSERT INTO `dispositivos` (`ID`, `nombre`, `estado`, `descripcion`) VALUES (1, 'RELÉ 1', 0, 'descripcion1'), (2, 'RELÉ 2', 0, 'descripcion2'), (3, 'RELÉ 3', 0, 'descripcion3'), (4, 'RELÉ 4', 0, 'descripcion4'); -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `log` -- CREATE TABLE IF NOT EXISTS `log` ( `ID` INT(11) NOT NULL AUTO_INCREMENT, `RELE_1` tinyint(1) NOT NULL, `RELE_2` tinyint(1) NOT NULL, `RELE_3` tinyint(1) NOT NULL, `RELE_4` tinyint(1) NOT NULL, `USUARIO` VARCHAR(40) COLLATE latin1_spanish_ci NOT NULL, `FECHA_HORA` datetime NOT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci AUTO_INCREMENT=9 ; -- -- Volcar la base de datos para la tabla `log` --
Gracias.
52
« en: Jueves 9 de Julio de 2009, 13:10 »
Hola: Estoy aprendiendo los trigger, la verdad me cuesta manejarlo. He creado una base de datos llamado prueba01. Y dos tablas llamada dispositivos y datos. Sospecho que tengo mal diseñado la tabla datos para que el trigger se pueda cumplir y necesito ayuda. dispositivosdatosLos códigos de creación de la tabla dispisitivos es: -- -- Base de datos: `prueba01` -- -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `dispositivos` -- CREATE TABLE IF NOT EXISTS `dispositivos` ( `ID` int(11) NOT NULL, `nombre` varchar(30) NOT NULL, `estado` tinyint(3) unsigned NOT NULL DEFAULT '0', `descripcion` varchar(200) NOT NULL, PRIMARY KEY (`ID`), FULLTEXT KEY `nombre` (`nombre`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -- Volcar la base de datos para la tabla `dispositivos` -- INSERT INTO `dispositivos` (`ID`, `nombre`, `estado`, `descripcion`) VALUES (1, 'RELE 1', 0, 'Motor 1'), (2, 'RELE 2', 0, 'Motor 2'), (3, 'RELE 3', 0, 'Alarma'), (4, 'RELE 4', 0, 'WebCam');
Tabla datos es: -- -- Base de datos: `prueba01` -- -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `datos` -- CREATE TABLE IF NOT EXISTS `datos` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `RELE_1` tinyint(4) NOT NULL, `RELE_2` tinyint(4) NOT NULL, `RELE_3` tinyint(4) NOT NULL, `RELE_4` tinyint(4) NOT NULL, `FECHA_HORA` datetime NOT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci AUTO_INCREMENT=13 ; -- -- Volcar la base de datos para la tabla `datos` -- INSERT INTO `datos` (`ID`, `RELE_1`, `RELE_2`, `RELE_3`, `RELE_4`, `FECHA_HORA`) VALUES (1, 0, 0, 0, 0, '2009-07-09 11:17:34'), (2, 1, 0, 0, 0, '2009-07-09 11:17:35'), (3, 0, 0, 0, 0, '2009-07-09 11:17:36'), (4, 1, 0, 0, 0, '2009-07-09 11:17:36'), (5, 0, 0, 0, 0, '2009-07-09 11:17:37'), (6, 1, 0, 0, 0, '2009-07-09 11:17:37'), (7, 1, 1, 0, 0, '2009-07-09 11:17:37'), (8, 1, 1, 1, 0, '2009-07-09 11:17:38'), (9, 1, 1, 1, 1, '2009-07-09 11:17:38'), (10, 1, 1, 1, 0, '2009-07-09 11:17:39'), (11, 1, 1, 0, 0, '2009-07-09 11:17:39'), (12, 1, 0, 0, 0, '2009-07-09 11:17:39');
Sigo sospechando que hay que hacer diseñar mejor la tabla datos para que el trigger funcione. ¿En qué consiste estas tablas? Consiste en que la tabla dispositivos se altera cualquier dato en el campo estado, se la tabla datos como auditoría o minotore o logs. Si modifico a uno el ID=1 del campo estado a 1 que antes estaba a 0. Se cambia a 1 como muestra en la siguiente imagen. Desde ahí tiene que activarse el supuesto triggers que no se como se hace. El resultado es que el campo RELE_1 se activa a 1 como ocurrió en la tabla dispositivos. Siguiendo con el ejemplo. Vamos a modificar el ID=3 del campo estado de la tabla dispositivos a 1. Quedaría como muestra abajo. Ya que el supuesto trigger ha detectado un cambio en cualquier campo de RELE_1 al RELE_4, pues actualiza una nueva ID en la tabla datos que ahora se llama ID=2 y queda como muestra en la imagen siguiente. Así seguirá la tabla datos creciendo mientras el trigger detecte cualquier modificación de la tabla dispositivos en el campo estado. Espero haber explicado bien el tema. Que consiste en hacer un triggers ser capaz de lo que pido porque no se hacerlo. Cualquier duda que no entienda me avisa para explicarlo lo mejor posible para que lo entiendan. Un cordial saludo.
53
« en: Jueves 18 de Junio de 2009, 10:57 »
Hola: Presento manual de cómo montar un servidor Web casero para hacer pruebas bajo Apache, PHP, MySQL, foro phpBB, Web prefabricada Joomla, Blog Wordpress, SMTP para enviar e-mail, comunicación Base de datos con Visual C#, etc. Puedes descargarlo en PDF. DESCARGARMás manuales en: http://electronica-pic.blogspot.comUn cordial saludo.
54
« en: Lunes 15 de Junio de 2009, 07:27 »
Gracias por la ayuda. Hice en Visual C# esta interfaz para que lea la base de datos que me la lee. Con estos datos recibido de MySQL ya puedo controlar el puerto serie y un PIC don ya puedo encender otores, ventiladores, luces, la temperatura de casa, alarmas, etc... [youtube:32j9ay22]http://www.youtube.com/watch?v=8koidQrv4Kg[/youtube:32j9ay22] Claro que el control se hace desde PHP, Visual C# lo lee y controla los RELÉ por puerto serie. Voy a investigar.
55
« en: Domingo 14 de Junio de 2009, 07:41 »
Hola: Instalé MySQL 5.1.34 de Windows y creé una base de datos y su tabla con phpMyAdmin. CREATE TABLE `tabla01` ( `RELE_1` tinyint(1) DEFAULT NULL, `RELE_2` tinyint(1) DEFAULT NULL, `RELE_3` tinyint(1) DEFAULT NULL, `RELE_4` tinyint(1) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Una vez creado la tabla de arriba, quiero diseñar una página web sólo básica para comprobar su funcionamiento bajo PHP 5. Consiste en la página principal llamado inde.php que te aparezca insertar Nombre y contraseña, una vez introducido accede a MySQL mientras llega otra página llamada nombre01.php si ha tenido éxito, si ha dado error en la conexión o otro motivo que vaya a otra página llamada error.php diciendo que se ha producido un error. Una vez dentro satisfactoriamente, la página nombre01.php debe haber algo que se le parezca a esto: Ya que está leyendo por cada segundo la página para actualizar y ver que hay en la base de datos. En la misma página, más abajo, poner 4 bonotes que sus nombres son RELE_1_ON, RELE_2_ON hasta el 4. Otros 4 botones algo más abajo igual pero en OFF. Un ejemplo hecho que hice en Word pero debe ser en php claro. Ya con la imagen ayuda más que las palabras, desde que pulse cualquier botón de control, acceda a la base de datos que está en otro lugar de Internet, con esto modifica la base de datos al mismo tiempo lo lee para que muestre los datos actuales. Me imagino que debe refrezcarse la web por cada 5 segundos para que se vea actualizado o con un botón. Espero que se entienda lo que quiero expresar, en resusmen, saber el código php5 para aprender hacer esto. Un cordial saludo.
56
« en: Martes 9 de Junio de 2009, 08:49 »
Hola: Me gustaría saber todo sobre instalar el blog wordpress, saber su web oficial que me imagino que será en inglés y si hay alguna en espanish como ocurre con Joomla. Hice un manual sobre montar un servidor casero con Apache, PHP, MySQL, etc bajo Windows, (En el futuro será con Linux). DESCARGAR PDF. Espero que me den información posible de lo que pido para incluirlo. Un cordial saludo.
57
« en: Domingo 22 de Marzo de 2009, 09:13 »
Hola: Tengo hecho algo de Cliente-Servidor muy básico. Me gustaría saber que si el PC1 se conecta al PC2, envía al PC1 un mensaje que advierta si su conexión ha sido un éxito y que se mantenga en línea como el messenger. Cuando PC1 cierra la conexión mediante un buttón o botón, el PC2 muestra un mensaje indicando su conexión. NOTA: Los botones de Control,por ahora no hablamos de ellos y aún no es funcional. DESCARGAR PC1-Cliente: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Net; using System.Net.Sockets; namespace PC1_Cliente { public partial class Form_principal : Form { public Form_principal() { InitializeComponent(); } private void button_Conectar_Click(object sender, EventArgs e) { UdpClient udpClient = new UdpClient(); udpClient.Connect(textBox1.Text, 8888); Byte[] sendBytes = Encoding.ASCII.GetBytes(textBox2.Text); udpClient.Send(sendBytes, sendBytes.Length); } } }
PC2-Servidor: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.IO.Ports; using System.Net; using System.Net.Sockets; using System.Threading; namespace PC2_Servidor { public partial class Form1 : Form { public Form1() { InitializeComponent(); if (!serialPort1.IsOpen) { try { serialPort1.Open(); } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); } } } public void serverThread() { UdpClient udpClient = new UdpClient(8888); while(true) { IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0); Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint); string returnData = Encoding.ASCII.GetString(receiveBytes); lbConnections.Items.Add(RemoteIpEndPoint.Address.ToString() + ":" + returnData.ToString() ); } } private void Form1_Load(object sender, EventArgs e) { Thread thdUDPServer = new Thread(new ThreadStart(serverThread)); thdUDPServer.Start(); } } }
Un cordial saludo.
58
« en: Sábado 14 de Marzo de 2009, 19:39 »
59
« en: Miércoles 11 de Marzo de 2009, 17:24 »
Manual Puerto serie con PIC16F84A bajo Visual C++ y Visual BasicPresento este manual en PDF para el manejo del puerto serie mediante el microcontrolador PIC16F84A bajo Visual C++ y Visual Basic. http://www.abcdatos.com/tutoriales/tutorial/v12.htmlUn cordial saludo.
60
« en: Domingo 8 de Marzo de 2009, 15:02 »
Hola: He hecho manuales en PDF sobre el puerto serie sobre Visual C#, Visual C++ y Visual Basic con el serialPort. Me gustaría saber si en el Visual Web Developer tiene el componente serialPort para poder manejar el puerto serie mediante vía web ya que puedo usar el C# para programarlo. Descarga Visual Web Developer EspañolUn cordial saludo.
61
« en: Jueves 12 de Febrero de 2009, 23:04 »
62
« en: Jueves 12 de Febrero de 2009, 22:27 »
Hola:
Aún no me he metido en el campo de RF para PIC.
Saludo.
63
« en: Sábado 17 de Enero de 2009, 07:57 »
Es conectar dos PC con ello y enviar mensajes de texto tipo chat. Ese es el objetivo.
64
« en: Martes 23 de Diciembre de 2008, 04:25 »
Hola: En Visual C# quiero hacer un pequeño Loader que se carga en el inicio de Windows. Es un formulario Form1 normal y corriente con sólo 4 botones. Este Loader (Cargador) lo que hace es al ser ejecutado, verse una ventana con 4 botones. Debe ser capaz de iniciarse el Loader desde que arranque Windows. Se que hay que poner los parámetros desde el editor de registro regedit. Mi PC-->HKEY_CURRENT_USER-->Software-->Microsoft-->Wondows-->CurrentVersion-->Run Me gustaría que al ejecutar el Loader.exe por primera vez, haya una opción que grabe las entradas en el regedit necesarias del Windows para que a la próxima vez que inicie windows se carge el Loader.exe. Por ahora necesito eso, según vamos avansando y logre este objetivo, seguimos con más cosas. Para que entiendan lo que me refiero, pongo este vídeo. EL Loader.exe sólo se ve en el principio del vídeo. http://es.youtube.com/watch?v=tcpFkmXqojE[youtube]http://es.youtube.com/watch?v=tcpFkmXqojE[/youtube] Un cordial saludo.
65
« en: Lunes 22 de Diciembre de 2008, 23:06 »
Lo se, me olvidé de actualizar el tema aquí. 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.pdfPuedes 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?opti ... &Itemid=59Contraseñ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/co ... arp-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 SettingsHunterMis documentosVisual Studio 2008Projectsprueba1prueba1Form1.vb 34 40 prueba1 Otro error. Error 2 'Form1' no es un miembro de 'prueba1'. C:Documents and SettingsHunterMis documentosVisual Studio 2008Projectsprueba1prueba1My ProjectApplication.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.
66
« en: Lunes 22 de Diciembre de 2008, 11:59 »
Hola: Tengo un Pentium IV 2600MHz, 768 MB de RAM. Me gustaría actualizar la BIOS cosa que nunca ha sido actualizada desde que salió. Me da pánico actualizarla y que ya no me funcione más. Hay web por ahí que te explica todo ya muy viejas y como que no es igual. Me gustaría una ayudita. La información que le puedo dar es esta en fotos. Quiero sacar toda información para saber la BIOS correcta y no cometer ningún error y saber si hay versión nueva de BIOS. El motivo que quiero actualizar es que tenga el arranque por USB para poner un pendriver. Quizás me venga ya incluido en la nueva BIOS y si no, da igual, al menos actualizarla. Un cordial saludo.
67
« en: Lunes 22 de Diciembre de 2008, 05:36 »
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.pdfPuedes 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?opti ... &Itemid=59Contraseñ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.
68
« en: Martes 9 de Diciembre de 2008, 22:17 »
Hola: Quiero cambiar el código de VB6 a C# y/o VB .net en esta web pero me da error porque solo acepta VB .net http://www.developerfusion.com/tools/co ... arp-to-vb/El código que deseo cambiar de VB6 a C# es este de aquí abajo. Private Sub conectar_Click() 'comprueva que el puerto este cerrado para poder abrirlo If MSComm1.PortOpen = False Then 'determina el puerto que hemos seleccionado. If COM_sel.ListIndex = 0 Then MSComm1.CommPort = 1 End If If COM_sel.ListIndex = 1 Then MSComm1.CommPort = 2 End If If COM_sel.ListIndex = 2 Then MSComm1.CommPort = 3 End If If COM_sel.ListIndex = 3 Then MSComm1.CommPort = 4 End If If COM_sel.ListIndex = 4 Then MSComm1.CommPort = 5 End If If COM_sel.ListIndex = 5 Then MSComm1.CommPort = 6 End If If COM_sel.ListIndex = 6 Then MSComm1.CommPort = 7 End If If COM_sel.ListIndex = 7 Then MSComm1.CommPort = 8 End If If COM_sel.ListIndex = 8 Then MSComm1.CommPort = 9 End If If COM_sel.ListIndex = 9 Then MSComm1.CommPort = 10 End If If COM_sel.ListIndex = 10 Then MSComm1.CommPort = 11 End If End If MSComm1.OutBufferSize = 1 'tamaño del dato a transmitir. MSComm1.InBufferSize = 23 MSComm1.InputMode = comInputModeText 'los datos se recuperan en modo texto. MSComm1.InputLen = 23 ' BUFFER DE ENTRADA SE PUEDE DEJAR AL MAXIMO. MSComm1.PortOpen = True MSComm1.RThreshold = 23 'son 23 caracteres. End Sub Private Sub Form_Load() COM_sel.AddItem "COM1" COM_sel.AddItem "COM2" COM_sel.AddItem "COM3" COM_sel.AddItem "COM4" COM_sel.AddItem "COM5" COM_sel.AddItem "COM6" COM_sel.AddItem "COM7" COM_sel.AddItem "COM8" COM_sel.AddItem "COM9" COM_sel.AddItem "COM10" COM_sel.AddItem "COM11" COM_Sel.ListIndex = 0 End Sub Private Sub MSComm1_OnComm() Dim InBuff As String Select Case MSComm1.CommEvent Case comEvReceive InBuff = MSComm1.Input Debug.Print InBuff Texto.Text = "" Texto.Text = Left$(InBuff, 23) ' se recorta los caracteres basura MSComm1.PortOpen = False 'cierra el puerto y vacia el buffer End Select End Sub
Saludo.
69
« en: Martes 9 de Diciembre de 2008, 00:35 »
Hola: Hice un manual para del puerto serie controlado con Visual C# .net Express 2008. Al menos hay códigos que deseo pasarlo a Linux con MonoDevelop GTK# (C#). El manual es este: Ver manual El código fuente al que deseo pasar a Linux es este (de la página 162 del manual): Descargar FUENTE 1 Contraseña = D.P.E.Si no pueden descargarlo, me avisan. Necesito colaboradores para ampliar el manual. Por otra parte estoy pasándolo con Visual Basic y Visual C++ 2008. Ver vídeo: http://www.youtube.com/watch?v=niWAbQ-HVnYQuiero que los usuarios de Windows, también entren a Linux y vean sus mismas posibilidades. Un cordial saludo. EDITO:El código de Visual C# es este y quiero pasarlo a GTK# de MonoDevelop. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO.Ports; namespace PicRS232 { public partial class Form1_Principal : Form { public Form1_Principal() { InitializeComponent(); // Abrir puerto mientra se ejecute la aplicación if (!serialPort1.IsOpen) { try { serialPort1.Open(); } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); } } } private void button_t_Click(object sender, EventArgs e) { byte[] mBuffer = new byte[1]; mBuffer[0] = 0x74; //ASCII letra "t". serialPort1.Write(mBuffer, 0, mBuffer.Length); } private void button_b_Click(object sender, EventArgs e) { byte[] miBuffer = new byte[1]; miBuffer[0] = 0x62; //ASCII letra "b". serialPort1.Write(miBuffer, 0, miBuffer.Length); } private void button_a_Click(object sender, EventArgs e) { byte[] mBuffer = new byte[1]; mBuffer[0] = 0x61; //ASCII letra "a". serialPort1.Write(mBuffer, 0, mBuffer.Length); } private void button_l_Click(object sender, EventArgs e) { byte[] mBuffer = new byte[1]; mBuffer[0] = 0x6C; //ASCII letra "l". serialPort1.Write(mBuffer, 0, mBuffer.Length); } private void button_Espacio_Click(object sender, EventArgs e) { byte[] mBuffer = new byte[1]; mBuffer[0] = 0x20; //ASCII letra "Espacio". serialPort1.Write(mBuffer, 0, mBuffer.Length); } } }
Dejo claro que el Visual C# uso un componente llamado serialPort1 en el que MonoDevelop no incluye. Ese es el problema que tengo. En Visual C# su configuración del componente serialPort1 está en la página 143 de este MANUAL. Saludo.
70
« en: Domingo 7 de Diciembre de 2008, 05:31 »
Hola: Estoy trabajando con MonoDevelop en openSUSE 11.0 y me gustaría saber si esto está bien configurado así, ya que me da error. serialPort1 = new SerialPort("/dev/ttyS0",9600, Parity.None, 8, StopBits.Two);
Un cordial saludo.
71
« en: Sábado 6 de Diciembre de 2008, 14:38 »
Hola:
En clase el profesor, hoy nos explicó que cuando hacía programas en sus tiempos libres para empresas sobre base de datos, etc. Al proncipio le pagaba algo de dinero, con el tiempo le pagaba el resto.
¿Qué pasó con esa empresa bebidas refrescantes?
Que pasaron 8 meses y no pagaba hasta que el programa dejó de funcionar, se abrió otra ventana y soltaba un mensaje que llamara el administrador.
La empresa llamó al creador del programa por el teléfono y él respondió que no ha pagado el resto. La emrpesa responde que no tiene dinero y en estos momentos hay pérdidas porque el programa no funciona.
El profesor responde que tiene que pagar, va hacia allí y lo activa.
¿Qué técnica usó?
Que el programa principal tiene un contador de fecha hasta 8 meses con el reloj del sistema. Se detiene el programa y ejecuta un .exe en que sale un mensaje de aviso que no funciona hasta que pague y llame el adm. Ese .exe lo tiene oculto.
¿Qué técnicas usarías?
La mia sería algo parecido pero llamado con otra extención, por ejemplo, aviso.dll. En realidad es un exe pero lo llamo así para que no lo descubran. Cuando se ejecute la acción del fin de tiempo, busca esa dll y cambia de extensión y lo mmalo aviso.exe, luego lo ejecuta y aparece ese mensaje de aviso.
Saludo.
72
« en: Jueves 4 de Diciembre de 2008, 23:39 »
Hola: En primer lugar pido perdón si esto no va aquí.Presento Manual Puerto serie RS232 Con PIC16F84A controlado por Visual C# en el que podrás aprender a controlar un PIC mediante una Interfaz en el PC bajo Visual C# .net. Aún así, por falta de tiempo no he acabado la parte de MonoDevelop en Linux cosa que haré en el futuro ya en el 2009. Que sepan que también continuaré solo las primeras 200 páginas con Visual Basic .net (depende de la demanda lo haré también con Visual Basic 6) y Visual C++ otras 200. Por ahora no he encontrado un lugar donde poder descargarlo directamente en PDF. Ver ManualSi estás registrado, hay una opción para bajarlo en PDF. Ver vídeo: [youtube:1vt6a4u6]http://www.youtube.com/watch?v=niWAbQ-HVnY[/youtube:1vt6a4u6] Espero cualquier opinión, duda, preguntas sobre errores que puedan encontrar y mejoras del manual. Un cordial saludo.
73
« en: Sábado 22 de Noviembre de 2008, 19:48 »
Hola de nuevo. He logrado algo. Creé un nuevo Form y lo llamé Logo.cs, cambié en Program.cs lo marcado en rojo abajo para que me arranque primero este logo. using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace ControlPic { static class Program { /// <summary> /// Punto de entrada principal para la aplicación. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Logo()); } } }
Dentro del logo.cs, puse un timer. y en él puse este nuevo código para ejecutar el programa principal que se llama Form1.cs. En lo marcado en azul parece ignorarlo. He logrado que aparezca el Logo 1 segundo o 1000 silisegundo y por fin aparece la segunda ventana principal del programa, pero hay un problema, que siempre se pone a aparecer la misma ventana en cada segundo, cuando debería sólo aparecer una sóla vez y al mismo tiempo desaparecer la ventana del logo que tampoco se como se hace. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace ControlPic { public partial class Logo : Form { public Logo() { InitializeComponent(); } private void timer_inicio_Tick(object sender, EventArgs e) { timer_inicio.Enabled = true; Form f = new Form1(); f.ShowDialog(); timer_inicio.Enabled = false; } } }
Saludo.
74
« en: Domingo 9 de Noviembre de 2008, 03:05 »
Hola: Ya me funciona, muchas gracias. private int uno = 0; private void Form1_SizeChanged(object sender, EventArgs e) { if (WindowState == FormWindowState.Minimized) { notifyIcon1.Visible = true; //Justo aquí abajo cada vez que minimizo aparece este mensaje. //¿Hay una manera que sólo se muestre la priemra vez? if (uno == 0) { notifyIcon1.ShowBalloonTip(3000, "Prueba", "Puede acceder a la aplicación desde este icono", ToolTipIcon.Info); uno = 1; } Hide(); } else { Show(); } } private void notifyIcon1_DoubleClick(object sender, EventArgs e) { if (WindowState == FormWindowState.Minimized) { Show(); WindowState = FormWindowState.Normal; } // ¿Eto para qué es? No noto ningún cambio. Activate(); Focus(); }
Saludos.
75
« en: Sábado 8 de Noviembre de 2008, 15:53 »
Hola: No me sale bien. Lo puse así. private void Form1_SizeChanged(object sender, EventArgs e) { if (WindowState == FormWindowState.Minimized) { notifyIcon1.Visible = true; //Justo aquí abajo cada vez que minimizo aparece este mensaje. //¿Hay una manera que sólo se muestre la priemra vez? int uno = 0; if (uno == 0) { notifyIcon1.ShowBalloonTip(3000, "Prueba", "Puede acceder a la aplicación desde este icono", ToolTipIcon.Info); uno = 1; } Hide(); } else { Show(); } }
Saludos.
|
|
|