Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Meta

#496
Buenas:

Fijándote bien justo la imagen de abajo. se muestra que algunos comentarios de alrededor está en doble cuadro.




En el RichTextBox1 con Visual C#, me parece el símbolo de interrogación en su lugar como este ??????????????



Pongo en HEX los valores que puedes ver en la tabla de abajo.




¿Hay alguna solución de pasarlo bien al ASCII al RichTextBox?



Saludo.
#497
[size=18]Primeros Microcontroladores PIC® con Núcleo Mejorado de Gama Media de 8 bit [/size]





Microchip anuncia los seis primeros miembros de la familia de microcontroladores PIC16F193X, que incorporan un núcleo mejorado de gama media de 8 bit desarrollado por Microchip. El incremento de la capacidad de memoria y del núcleo proporcionan un mejor soporte a programadores de C y Ensamblador, mientras que los componentes de la familia 'LF' incorporan la Tecnología nanoWatt XLP de Microchip para trabajar con un consumo extremadamente bajo.



Los PIC16F1934, PIC16LF1934, PIC16F1936, PIC16LF1936, PIC16F1937 y PIC16LF1937 amplían la oferta de microcontroladores PIC® de Microchip formada por más de 550 dispositivos compatibles, destinados a una amplia variedad de aplicaciones en los mercados de electrodomésticos, consumo, industrial, médico y automoción. Continuando con la tradición de los microcontroladores PIC de integrar un gran número de periféricos, la nueva familia ofrece controladores Directos para LCD y soporte a soluciones táctiles capacitivas mTouchTM.



Los nuevos dispositivos permiten nuevos niveles de funcionalidad con un menor coste del sistema. Entre las restantes características de la familia PIC16F193X se encuentran:

·   Memoria de programa Flash hasta 14 KB

·   RAM de datos hasta 512 Bytes

·   EEPROM de datos de 256 Bytes

·   Controlador para LCD (96 segmentos)

·   Tecnología nanoWatt XLP en las versiones "LF"

·   Periféricos para Soluciones Táctiles mTouch

·   Oscilador interno de 32MHz

·   Hasta 5 periféricos PWM de Captura y Comparación Mejorada con bases de tiempos independientes

·   Latencia de Interrupción Reducida

·   Pila de hardware de 16 niveles, con interrupción de rebose/subdesbordamiento (overflow/underflow)

·   Funcionamiento de bajo consumo entre 1,8 y 5,5V, incluyendo funcionamiento completo de periféricos analógicos

·   SPI/I2C™ Maestro y soporte a EUSART para RS-232/RS-485, así como soporte LIN

·   Hasta 14 canales de conversión A/D de 10 bit

·   Dos comparadores de doble entrada de carril a carril (rail-to-rail) con funcionamiento de Temporizador 555

·   Temporizadores de 4x8 bit y 1x16 bit, con soporte a Reloj en Tiempo Real de Bajo Consumo eXtreme

·   Monitores operativos robustos y fiables, como POR, BOR y WDT de bajo consumo



Con un total de 49 instrucciones, los microcontroladores PIC16F193X optimizan el código de programa y el manejo de datos, al tiempo que incrementan la eficiencia y reducen los ciclos de reloj.



Microchip ofrece a los ingenieros un conjunto completo de herramientas de desarrollo estándar para diseñar con los microcontroladores PIC16F193X.

Fuente:
http://www.elektor.es/noticias/primeros-microcontroladores-pic-con-nucleo.1028149.lynkx?utm_source=ES&utm_medium=email&utm_campaign=news


Opinión personal:

Ya iba siendo hora de que tantos años ya cambiaron algo del nícleo del PIC. Me sorprende que ya vengan con 49 instrucciones, esto si que no me lo esperaba. Vendrán más nuevos en el futuro como también mejorar los PIC18F, el esperado por muchos y famoso USB 3.0 tanto en PIC18F hsta los PIC32, etc...

PIC16F1934, PIC16LF1934, PIC16F1936, PIC16LF1936, PIC16F1937 y PIC16LF1937.

Nota, en el futuro aparecerán, al menos eso dicen algunas Web que vienen timer de 32 bits.

Saludo.
#498
Juegos y Consolas / Cosas de PS3 y 360
25 Julio 2009, 11:48 AM
Buenas:

Tanto en PS3 y/o 360 quiero saber si realmente se puede hacer estas cosas de alguna manera.

1- Guardar copias de seguridad en el PC de las partidas guardadas de los juegos.
2- Cuando te bajas las demos, ¿hay alguna manera de guardarlo en tu PC?
3- ¿Realmente hace falta disco duro de tanta capacidad? Si hiciera falta algún día, puedo pasar los datos del disco duro viejo al nuevo para no tener que empezar todo otra vez.
4- ¿Las partidas guardadas se pueden guardar en un pendriver? Ya los hay de 256GB y pronto de 512GB.
5- ¿Algún comentario? Recuerda, que consola hablas.

Saludo.
#499
.NET (C#, VB.NET, ASP) / Traducir programas.
25 Julio 2009, 03:41 AM
Hola:

Tengo un programa hecho con Visual Studio por alguien en inglés, no se si usa el VB .net o el VC#.

El .exe es de unos 24Kb. ¿Hay alguna manera de traducir los label del Inglés al español?

Saludo.
#500
Hola:

Curiosamente he encontrado códigos de libre distribución de la época de Apolo 11 que usaron el día que fueron en la Luna (si es que realmente fueron) hace 40 años.



La verdad que nunca he visto en mi vida estos ASM. Abro este tema por curiosidad.

Código (asm) [Seleccionar]

# Copyright:    Public domain.
# Filename:     ALARM_AND_ABORT.agc
# Purpose:      Part of the source code for Luminary 1A build 099.
#               It is part of the source code for the Lunar Module's (LM)
#               Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler:    yaYUL
# Contact:      Ron Burkey <info@sandroid.org>.
# Website:      www.ibiblio.org/apollo.
# Pages:        1381-1385
# Mod history:  2009-05-10 SN   (Sergio Navarro).  Started adapting
#                               from the Luminary131/ file of the same
#                               name, using Luminary099 page images.
#               2009-06-05 RSB  Fixed a type.
#
# This source code has been transcribed or otherwise adapted from
# digitized images of a hardcopy from the MIT Museum.  The digitization
# was performed by Paul Fjeld, and arranged for by Deborah Douglas of
# the Museum.  Many thanks to both.  The images (with suitable reduction
# in storage size and consequent reduction in image quality as well) are
# available online at www.ibiblio.org/apollo.  If for some reason you
# find that the images are illegible, contact me at info@sandroid.org
# about getting access to the (much) higher-quality images which Paul
# actually created.
#
# Notations on the hardcopy document read, in part:
#
#       Assemble revision 001 of AGC program LMY99 by NASA 2021112-61
#       16:27 JULY 14, 1969

# Page 1381
# THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION.  IT MAY BE CALLED
# EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL.
#
# CALLING SEQUENCE IS AS FOLLOWS:
#               TC      ALARM
#               OCT     AAANN           # ALARM NO. NN IN GENERAL AREA AAA.
#                                       # (RETURNS HERE)

                BLOCK   02
                SETLOC  FFTAG7
                BANK

                EBANK=  FAILREG

                COUNT*  $$/ALARM

# ALARM TURNS ON THE PROGRAM ALARM LIGHT, BUT DOES NOT DISPLAY.

ALARM           INHINT

                CA      Q
ALARM2          TS      ALMCADR
                INDEX   Q
                CA      0
BORTENT         TS      L

PRIOENT         CA      BBANK
        +1      EXTEND
                ROR     SUPERBNK        # ADD SUPER BITS.
                TS      ALMCADR +1

LARMENT         CA      Q               # STORE RETURN FOR ALARM
                TS      ITEMP1

CHKFAIL1        CCS     FAILREG         # IS ANYTHING IN FAILREG
                TCF     CHKFAIL2        # YES TRY NEXT REG
                LXCH    FAILREG
                TCF     PROGLARM        # TURN ALARM LIGHT ON FOR FIRST ALARM

CHKFAIL2        CCS     FAILREG +1
                TCF     FAIL3
                LXCH    FAILREG +1
                TCF     MULTEXIT

FAIL3           CA      FAILREG +2
                MASK    POSMAX
                CCS     A
                TCF     MULTFAIL
                LXCH    FAILREG +2
                TCF     MULTEXIT

# Page 1382

PROGLARM        CS      DSPTAB +11D
                MASK    OCT40400
                ADS     DSPTAB +11D


MULTEXIT        XCH     ITEMP1          # OBTAIN RETURN ADDRESS IN A
                RELINT
                INDEX   A
                TC      1

MULTFAIL        CA      L
                AD      BIT15
                TS      FAILREG +2

                TCF     MULTEXIT

# PRIOLARM DISPLAYS V05N09 VIA PRIODSPR WITH 3 RETURNS TO THE USER FROM THE ASTRONAUT AT CALL LOC +1,+2,+3 AND
# AN IMMEDIATE RETURN TO THE USER AT CALL LOC +4.  EXAMPLE FOLLOWS,
#               CAF     OCTXX           # ALARM CODE
#               TC      BANKCALL
#               CADR    PRIOLARM
#               ...     ...
#               ...     ...
#               ...     ...             # ASTRONAUT RETURN
#               TC      PHASCHNG        # IMMEDIATE RETURN TO USER.  RESTART
#               OCT     X.1             # PHASE CHANGE FOR PRIO DISPLAY

                BANK    10
                SETLOC  DISPLAYS
                BANK

                COUNT*  $$/DSPLA
PRIOLARM        INHINT                  # * * * KEEP IN DISPLAY ROUTINES BANK
                TS      L               # SAVE ALARM CODE

                CA      BUF2            # 2 CADR OF PRIOLARM USER
                TS      ALMCADR
                CA      BUF2 +1
                TC      PRIOENT +1      # * LEAVE L ALONE
-2SEC           DEC     -200            # *** DONT MOVE
                CAF     V05N09
                TCF     PRIODSPR

                BLOCK   02
                SETLOC  FFTAG7
                BANK

                COUNT*  $$/ALARM
BAILOUT         INHINT
                CA      Q
# Page 1383
                TS      ALMCADR

                INDEX   Q
                CAF     0
                TC      BORTENT
OCT40400        OCT     40400

                INHINT
WHIMPER         CA      TWO
                AD      Z
                TS      BRUPT
                RESUME
                TC      POSTJUMP        # RESUME SENDS CONTROL HERE
                CADR    ENEMA
P00DOO          INHINT
                CA      Q
ABORT2          TS      ALMCADR
                INDEX   Q
                CAF     0
                TC      BORTENT
OCT77770        OCT     77770           # DON'T MOVE

                CAF     OCT35           # 4.35SPOT FOR GOP00DOO
                TS      L
                COM
                DXCH    -PHASE4
GOP00DOO        INHINT
                TC      BANKCALL        # RESET STATEFLG, REINTFLG, AND NODOFLAG.
                CADR    FLAGS
                CA      FLAGWRD7        # IS SERVICER CURRENTLY IN OPERATION?
                MASK    V37FLBIT
                CCS     A
                TCF     STRTIDLE
                TC      BANKCALL        # TERMINATE GRPS 1, 3, 5, AND 6
                CADR    V37KLEAN
                TC      BANKCALL        # TERMINATE GRPS 2, 4, 1, 3, 5, AND 6
                CADR    MR.KLEAN        #       (I.E., GRP 4 LAST)
                TCF     WHIMPER
STRTIDLE        CAF     BBSERVDL
                TC      SUPERSW
                TC      BANKCALL        # PUT SERVICER INTO ITS "GROUND" STATE
                CADR    SERVIDLE        # AND PROCED TO GOTOP00H.
CCSHOLE         INHINT
                CA      Q
                TC      ABORT2
OCT21103        OCT     1103
CURTAINS        INHINT
                CA      Q
                TC      ALARM2
OCT217          OCT     00217
# Page 1384
                TC      ALMCADR         # RETURN TO USER

BAILOUT1        INHINT
                DXCH    ALMCADR
                CAF     ADR40400
BOTHABRT        TS      ITEMP1
                INDEX   Q
                CAF     0
                TS      L
                TCF     CHKFAIL1
P00DOO1         INHINT
                DXCH    ALMCADR
                CAF     ADR77770
                TCF     BOTHABRT

ALARM1          INHINT
                DXCH    ALMCADR
ALMNCADR        INHINT
                INDEX   Q
                CA      0
                TS      L
                TCF     LARMENT


ADR77770        TCF     OCT77770
ADR40400        TCF     OCT40400
DOALARM         EQUALS  ENDOFJOB
                EBANK=  DVCNTR
BBSERVDL        BBCON   SERVIDLE

# CALLING SEQUENCE FOR VARALARM
#               CAF     (ALARM)
#               TC      VARALARM
#
# VARALARM TURNS ON PROGRAM ALARM LIGHT BUT DOES NOT DISPLAY

VARALARM        INHINT

                TS      L               # SAVE USER'S ALARM CODE

                CA      Q               # SAVE USERS Q
                TS      ALMCADR

                TC      PRIOENT
OCT14           OCT     14              # DONT MOVE

                TC      ALMCADR         # RETURN TO USER

ABORT           EQUALS  WHIMPER
                BANK    13
                SETLOC  ABTFLGS
                BANK
# Page 1385
                COUNT*  $$/ALARM

FLAGS           CS      STATEBIT
                MASK    FLAGWRD3
                TS      FLAGWRD3
                CS      REINTBIT
                MASK    FLGWRD10
                TS      FLGWRD10
                CS      NODOBIT
                MASK    FLAGWRD2
                TS      FLAGWRD2
                TC      Q


Fuentes:
http://code.google.com/p/virtualagc/source/browse/trunk/Comanche055

http://code.google.com/p/virtualagc/source/browse/trunk/Luminary099/

http://softlibre.barrapunto.com/softlibre/09/07/21/148250.shtml
#501
Electrónica / Revista electrónica
12 Julio 2009, 05:22 AM
Estoy buscando nuevas revistsa si existen y que sean buenas. Si sabe algunas me las dicen por aquí.


- http://todoelectronica.com/revista-todoelectronica-revistas-c-32_360.html Mi favorita y la dejaron de hacer hace poco porque dicen que no se vende y no tienen intención de editarla más.

Por ello estoy buscando más revistas como estas que puedas entragar tus propios proyectos (y si no se puede pues nada).


- http://www.elektor.es muy famosa y se puede entregar tus propios proyectos.


- http://www.revistasprofesionales.com/principal.php?id_revista=10 Muy buena con muchas cosas para montar.

Si encuentran más revista (en España) avisan por aquí, al menos su nombre.
#502
Hola:

Estoy intentando hacer un nuevo manual sobre el control del puerto paralelo bajo C#, C++ y VB. Por ahora empiezo con C#.



Fijándome en esta Web aquí:
http://www.codeproject.com/KB/cs/csppleds.aspx

Copié la Interfaz a mi manera ya que este está hecho con el primer Visual Studio y como que todo cambia, los de ahora están mejor preparados y cómodos.

De igual modo, esta interfaz no me funciona o no se enciende ningún led y fijándome en el diagrama.


Si lo comprueban ustedes y me loconfirman, mejor que mejor. La interfaz que rediseñé de nuevo el código por dentro es avismal. Quiero probar el original antes de meterme con el mio.

¿Hay que tocar la BIOS para configurar el puerto paralelo? Se que en algunos PC hay que hacerlo.
Mi Pc es un Pentium 4 a 2.8GBHz.

Fotos de la BIOS.









Saludo.

Un cordial saludo.
#503
Hola:

Uso el Visual C# Express 2008. He incrustado un PictureBox y un CheckBox en el Form principal. Eligo dos gif llamado off.gif y off.gif y lo incrusto como indica la imagen. No se si es el método adecuado peo lo hice así.



Al final debe quedar algo similar a esto:



Lo que no se es el código exacto para activar el off.gif y el on.gif.


Código (csharp) [Seleccionar]
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 PParalelo01
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (algo)
            {
                // Se activa la imagen de la bombilla apagada.
            }
            else
            {
                // Se activa la imagen de la bombilla encendida.
            }
        }
    }
}

Un cordial saludo.
#504
Hola:

Quiero saber si con la consola de CMD puedo crear un archivo *.bat o *.cmd para controlar el puerto serie y/o el paralelo.

¿Realmente se puede?

Un cordial saludo.
#505
Hola:

Quiero hacer una especie de minotoreo al guardar datos al MySQL 5.1.34, es decir, por cada dato nuevo que se modifique en cualquier estado de 1 ó 0 de los campos RELE_1 al RELE_4 se guarde los datos. Ejemplo:

Creamos como indica en la imagen de abajo una tabla llamada datos .

Código (sql) [Seleccionar]
--
-- 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,
 `COMENTARIO` varchar(300) COLLATE latin1_spanish_ci NOT NULL,
 PRIMARY KEY (`ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci AUTO_INCREMENT=3 ;

--
-- Volcar la base de datos para la tabla `datos`
--

INSERT INTO `datos` (`ID`, `RELE_1`, `RELE_2`, `RELE_3`, `RELE_4`, `FECHA_HORA`, `COMENTARIO`) VALUES
(1, 1, 0, 1, 0, '2009-07-03 15:01:37', ''),
(2, 1, 0, 1, 1, '2009-07-03 15:21:48', '');





Como puedes ver en l aimagen de abajo:



La idea es que al detectar cualquier cambio de los estados de RELE_x, se cree una ID nueva con los valores añadidos sin borrar la anterior, además de guardar la fecha y hora como muestra la imagen, en comentarios normalmente no se guardan datos, se queda en blanco.

En el archivo de descarga está más  o menos diseñado la interfaz, sólo falta programarlo.




DESCARGA Código fuente Visual C#.

Un cordial saludo.
#506
PHP / Leer MySQL
14 Junio 2009, 09:53 AM
Quiero diseñar una página llamada index.php que lea los datos de una base de datos MySQL.

En la base de datos tengo uno creado que se llama prueba01 y una tabla llamada tabla01.

En MySQL creé una tabla:
Código (sql) [Seleccionar]
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;


Quiero crear código necesario bajo php que lea esa tabla01 y se muestre en index.php.

¿Cómo puedo hacerlo?
#507
Hola:

Instalé MySQL 5.1.34 de Windows y creé una base de datos y su tabla con phpMyAdmin.



Código (sql) [Seleccionar]
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.
#508
Hola:

Estoy haciendo una interfaz sobre Visual C# Express 2008, que lea una bases de datos MySQL 5.1. Creé una base de datos llamada PRUEBA01, después deseo que aún no lo he hecho, crear una tabla llamada TABLA01 y en su interior que léa sólo 1 ó 0, true o false, activado o desactivado, es decir, sólo datos booleanos.

Ejemplo:


Hay una explicación aquí en la página 312 como comunicar Visual C# con MySQL.

Quiero programarlo que no se como empezar ni su código base, es intentar leer los datos buleanos desde Visual C# que hay en MySQL de la tabla TABLA01. Ya dentro de Visual C#, en cada checkBox se muestre True o False que tiene la TABLA01 de MySQL en cada momento. ME imagino que utilizando el TIMER de Visual C# en cada segundo, se actualiza y se muestra los datos actuales en la interfaz.



Espero haberme explicado bien.

Un cordial saludo.
#509
Hola:

Quiero hacer que al ejecutar este archivo .bat una función. Como tengo el código de abajo, me funciona bien en un sentido que es, que siempre cuando te equivocas en la contraseña, siempre te lo vuelve a pedir.

Me gustaría hacer que si te equivocas tres veces la contraseña, el archivo bat sale de ella.

¿Cómo puedo hacerlo?

Código (dos) [Seleccionar]

@ECHO OFF
TITLE MySQL
ECHO Bienvenido a la base de datos MySQL
ECHO.
:Main
CD C:\Archivos de programa\MySQL\MySQL Server 5.1\bin
mysql.exe -h localhost -u Usuario -p
GOTO Main


Saludos.
#510
.NET (C#, VB.NET, ASP) / De bat a C#
3 Junio 2009, 22:07 PM
Hola:

Tengo un código hecho en BAT que se llama BD.cmd y otro BD.bat que es exactamente lo mismo. Su contenido tiene unos comandos para simplificar lo que yo quiero usar.

Código (dos) [Seleccionar]
@ECHO OFF
TITLE MySQL
CD C:\Archivos de programa\MySQL\MySQL Server 5.1\bin
mysql.exe -h localhost -u Usuario -p


Código (csharp) [Seleccionar]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MySQL_CMD
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}


¿Puedo hacer lo mismo bajo C# en línea de comandos?

El motivo, que no se modifique el ejecutable ya en C# ni que se vea lo que tiene dentro como el BD.bat.

Saludo.
#511
Hola:

Dejé el MySQL para que puedan entrar (3306), entren a la base de datos Prueba01 y Tabla01, usuario Prueba y contraseña Prueba. Espero que el router les deje entrar y no les pare. Esto es temporal.

Una vez dentro, creen tablas, hagan algún comentario, etc, al menos para saber que me han entrado a mi PC y han escrito algo.

http://79.146.255.243/phpmyadmin

Estoy haciendo un tutorial haber si me sale bien.
http://electronicapic.iespana.es/manual/servidor_web.pdf

Saludo.
#512
Buenas:

Estoy intentado comunicar el SQL Server Express 2008 y el MySQL 5.1 con el Visual C# Express 2008.

Sólo lo quiero para crear un atabla como esta, sea con SQL server o MySQL.




1º) ¿Cuál base de dato me recomienda y por qué?

2º) Habrá más preguntas según respondan.

Un cordial saludo.
#513
.NET (C#, VB.NET, ASP) / Guardar en XML.
22 Mayo 2009, 13:33 PM
Hola:

Tengo un pequeño código. Se trata de cambiar los valores de Location y Size al pulsar el mismo botón.

Lo que no se hacer y quiero aprender, es saber como guardar los valores en un XML.

Código (csharp) [Seleccionar]

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.Xml;

namespace Tamaño_Boton
{
   public partial class Form1 : Form
   {
       public Form1()
       {
           InitializeComponent();
       }

       private void button1_Click(object sender, EventArgs e)
       {
           button1.Location = new Point(52, 12);
           button1.Size = new Size(75, 65);
       }

       private void button2_Click(object sender, EventArgs e)
       {
           try
           {
               XmlWriter w = XmlWriter.Create("Config.xml");
               w.WriteStartElement("Form1");
                // Código aquí.
               w.WriteEndElement();
               w.Close();
           }
           catch (IOException)
           {
               // bla, bla, bla...
           }
       }

       private void Form1_Load(object sender, EventArgs e)
       {
           try
           {
               XmlReader r = XmlReader.Create("Config.xml");
               r.ReadStartElement("Form1");
                // Código aquí.
               r.ReadEndElement();
               r.Close();
           }
           catch
           {
               // No se encuentra el archivo.
           }
       }
   }
}



Saludo.
#514
Buenas:
He hecho un programa con Visual C# Express 2008. Puedo enviar tramas desde Internet.
Cliente: Introduces un buuton1 y un textBox1.
Código (csharp) [Seleccionar]

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 Client
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            UdpClient udpClient = new UdpClient();
            udpClient.Connect(textBox1.Text, 60000);
            Byte[] sendBytes = Encoding.ASCII.GetBytes("Hola a todo el mundo...");
            udpClient.Send(sendBytes, sendBytes.Length);
        }
    }
}


Server:
Introduces un listBox1.
Código (csharp) [Seleccionar]

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.Threading;
using System.Net.Sockets;
using System.Net;

namespace Server
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public void serverThread()
        {
            UdpClient udpClient = new UdpClient(60000);
            while(true)
            {
                IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);
                Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint);
                string returnData = Encoding.ASCII.GetString(receiveBytes);
                 listBox1.Items.Add(RemoteIpEndPoint.Address.ToString() +
                    ":" + returnData.ToString());
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Thread thdUDPServer = new Thread(new
            ThreadStart(serverThread));
            thdUDPServer.Start();
        }
    }
}


Mi idea es que necesito encriptrar estas tramas que se envía a través  de Internet para que los sniffer (husmeadores) no cojan libremente los datos enviados. Los datos puedes ser textos de un chat.

He encontrado algo aquí, pero no entiendo nada.
http://msdn.microsoft.com/es-es/library/system.security.cryptography.des.aspx

Código (csharp) [Seleccionar]

private static void EncryptData(String inName, String outName, byte[] desKey, byte[] desIV)
{   
     //Create the file streams to handle the input and output files.
     FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);
     FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);
     fout.SetLength(0);

     //Create variables to help with read and write.
     byte[] bin = new byte[100]; //This is intermediate storage for the encryption.
     long rdlen = 0;              //This is the total number of bytes written.
     long totlen = fin.Length;    //This is the total length of the input file.
     int len;                     //This is the number of bytes to be written at a time.

     DES des = new DESCryptoServiceProvider();         
     CryptoStream encStream = new CryptoStream(fout, des.CreateEncryptor(desKey, desIV), CryptoStreamMode.Write);

     Console.WriteLine("Encrypting...");

     //Read from the input file, then encrypt and write to the output file.
     while(rdlen < totlen)
     {
         len = fin.Read(bin, 0, 100);
         encStream.Write(bin, 0, len);
         rdlen = rdlen + len;
         Console.WriteLine("{0} bytes processed", rdlen);
     }

     encStream.Close(); 
     fout.Close();
     fin.Close();                   
}


http://msdn.microsoft.com/es-es/library/system.security.cryptography.aspx
#515
Hello.

Trabajo con el Visual C# Express 2008. ¿Se puede hacer con un Firm1 y dos button abrir y cerrar la bandeja de un lector de disco del PC?

Si es posible. ¿Cómo se hace?

Adiós.
#516
Buenas a todos y todas:

Tengo la idea que tengo medio hecho y está en experimentación de hacer un programa para poder generar los códigos necesarios rápidamente. Quizás sea una tontería y pérdida de tiempo, al menos sólo para un PIC. Lo haré con el PIC16F84A, más adelante lo haré para 16F876A/877A/886/887/88/628A y también en ASM para los 18F2550/4550 (también se puede para C).

Generaría la tabla de la verdad al menos que estoy haciendo es del 3 últimos bit, ya haré de 16 combinaciones.

Se generaría un archivo.asm o txt como se muestra abajo.

; ZONA DE DATOS **********************************************************************

LIST P=16F84A
INCLUDE <P16F84A.INC>
__CONFIG _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC

; ZONA DE CÓDIGOS ********************************************************************

ORG 0 ; El programa comienza en la dirección 0.
Inicio
clrf PORTB ; Debe estar a cero cuando el puerto se configure como salida.
bsf STATUS,RP0 ; Acceso al Banco 1.
clrf TRISB ; Las líneas del Puerto B se configuran como salida.
movlw b'00011111' ; Las 5 líneas del Puerto A se configuran como entrada.
movwf TRISA
bcf STATUS,RP0 ; Acceso al Banco 0.
Principal
movf PORTA,W ; Lee los sensores.
andlw b'00000111' ; Máscara para quedarse con el valor de los sensores.
addwf PCL,F ; Salta a la configuración adecuada.
goto Configuracion0
goto Configuracion1
goto Configuracion2
goto Configuracion3
goto Configuracion4
goto Configuracion5
goto Configuracion6
goto Configuracion7
Configuracion0
movlw b'01100001' ; Estado "Vacio" (configuración 0).
goto ActivaSalida
Configuracion1
movlw b'01100010' ; Estado "Llenándose" (configuración 1).
goto ActivaSalida
Configuracion2
movlw b'00010000' ; Estado "Alarma" (configuración 2).
goto ActivaSalida
Configuracion3
movlw b'00100100' ; Estado "Lleno" (configuración 3).
goto ActivaSalida
Configuracion4
movlw b'00010000' ; Estado "Alarma" (configuración 4).
goto ActivaSalida
Configuracion5
movlw b'00010000' ; Estado "Alarma" (configuración 5).
goto ActivaSalida
Configuracion6
movlw b'00010000' ; Estado "Alarma" (configuración 6).
goto ActivaSalida
Configuracion7
movlw b'00001000' ; Estado "Rebose" (configuración 7).
ActivaSalida
movwf PORTB ; Visualiza por el puerto de salida.
goto Principal

END


El programa aún no es funcional del todo, estoy con pruebas y diseño de la Interfaz primero, para luego programarlo al final.



Abajo se puede descargar el programa hecho, pero aún no es funcional, sólo cositas de diseño.
Saludo.
#517
Electrónica / Pasar de 16F84A a 16F627
10 Abril 2009, 12:14 PM
Hola:

Me gustaría pasar del PIC16F84A al 16F627 (no 16F628A porque no lo tienen en el local).
¿Qué configuraciones debo usar para que me funcione el mismo circuito y con oscilador interno?


Código (asm) [Seleccionar]
; Repetición del ejercicio Indexado_02.asm sobre la forma de implementar una tabla de
; verdad, pero resuelto con más eficacia.
;
; ZONA DE DATOS **********************************************************************

LIST P=16F84A
INCLUDE <P16F84A.INC>
__CONFIG _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC

; ZONA DE CÓDIGOS ********************************************************************

ORG 0 ; El programa comienza en la dirección 0.
Inicio
bsf STATUS,RP0 ; Acceso al Banco 1.
clrf TRISB ; Las líneas del Puerto B se configuran como salida.
movlw b'00011111' ; Las 5 líneas del Puerto A se configuran como entrada.
movwf TRISA
bcf STATUS,RP0 ; Acceso al Banco 0.
Principal
bcf STATUS,C ; Lee los sensores y los multiplica por 2
rlf PORTA,W ; añadiendo un "0" y desplazando hacia la izquierda.
andlw b'00001111' ; Se queda con los cuatro bits más bajos
addwf PCL,F ; Salta a la configuración adecuada.
movlw b'01100001' ; Estado "Vacio" (configuración 0).
goto ActivaSalida
movlw b'01100010' ; Estado "Llenándose" (configuración 1).
goto ActivaSalida
movlw b'00010000' ; Estado "Alarma" (configuración 2).
goto ActivaSalida
movlw b'00100100' ; Estado "Lleno" (configuración 3).
goto ActivaSalida
movlw b'00010000' ; Estado "Alarma" (configuración 4).
goto ActivaSalida
movlw b'00010000' ; Estado "Alarma" (configuración 5).
goto ActivaSalida
movlw b'00010000' ; Estado "Alarma" (configuración 6).
goto ActivaSalida
movlw b'00001000' ; Estado "Rebose" (configuración 7).
ActivaSalida
movwf PORTB ; Visualiza por el puerto de salida.
goto Principal

END

   


Un cordial saludo.
#518
.NET (C#, VB.NET, ASP) / Cliente -Servidor.
22 Marzo 2009, 09:12 AM
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.
#519
Hola:

Tengo la idea de hacer dos programas en cada PC controlado mediante Internet y puerto serie.

1- EL PC1 hago la Interfaz de control para controlar por vía Internet mediante button (botones) el otro programa del PC que ahí está el PIC16F84A.

2- El PC2 tiene otro programa o Interfaz que puede controlar el puerto serie donde está conectado el PIC. Se controla como puedes ver en este vídeo...

http://www.youtube.com/watch?v=niWAbQ-HVnY

...con la diferencia que yo lo quiero hacer mediante control por IP y que ustedes sean capaces de controlarlo desde sus casas mientras ves como se mueve una webcam por poner un ejemplo.

Ahora la pregunta. ¿Con Visual C# se puede hacer esto?

Aquí hay un ejemplo directo de una Interfaz básico con su código fuente, conectado al puerto serie. En realidad esta Interfaz no tiene que ir con el puerto serie, sólo la conexión a Internet mediante una IP que debemos conocer para poder llegar al PC2 que si se puede conectar al puerto serie.

Las órdenes a enviar al PC2 para el puerto serie es algo parecido a esto.

Código (csharp) [Seleccionar]

            byte[] mBuffer = new byte[1]; 
            mBuffer[0] = 0x20; //ASCII letra "Espacio". 
            serialPort1.Write(mBuffer, 0, mBuffer.Length);







Necesito información y cómo se programa. Poco a poco lo intentaré, al menos como se envía esta trama de bytes en hex para que lo entienda el PC2 desde el PC1. De momento sigo buscando en www.google.com

¿Sugerencias?

Un cordial saludo.
#520
Electrónica / Manejos de pulsadores con PIC
16 Marzo 2009, 18:29 PM
Hola:

Con un PIC16F84A-04 en ASM, quiero lograr programar un botón que haga cosas diferentes dependiendo de cómo lo pulses.

Puedes elegir para tu ejemplo los puertos In/Out que desees, las salidas es sólo hay 3  diodos Led. Led_Verde, Led Ambar y otro Led_Rojo.

1º)  Si el pulsador (P en adelante) no se está pulsando, ningún Led se enciende, en cambio de que se pulse se enciende el Led Rojo.

2º) Si dejas pulsado el P durante 3 segundos, se apaga el Led Rojo y acto seguido se enciende Led Verde, al final cuando dejes de pulsar el P, se quedará encendido el Led Verde.

3º) Si dejas pulsado el P durante 10 segundos, se apagan todos los Led, acto seguido parpadea el Led Ambar. 200ms y 200ms, ese el el tiempo de parpadeo del Led Ambar y se queda ahí.

4º) Después del punto 3º), en la EEPROM se almacena un valor que identifique si se pierde la energía, pila o batería al iniciar el PIC de nuevo, siga el Led Ambar parpadeando.

Un cordial saludo.
#521
.NET (C#, VB.NET, ASP) / Manejar ComboBox
15 Marzo 2009, 16:04 PM
Hola:

En un Form1, incluí el serialPort1 y un comboBox1. El serialPort1 tiene el serialPort1.PortName = "COM1"; , es decir, que tiene el puerto COM1 predeterminado.

En el comboBox, puse en Items dos valores llamadas COM1 y COM2. Al ejecutar el programa aparece el comboBox aparece en blanco así que debo seleccionar uno de los dos que aparece, el COM1 o el COM2.

1) ¿Cómo hago que al ejecutar la aplicación ya se ve el comboBox con el COM1 seleccionado y no en blanco?

Otra cosa que quiero hacer es, que en el comboBox, sea capaz de cambiar de COM1 a COM2 el componente serialPort1 para seleccionar el puerto 1 o 2 que desee.

2) ¿Cuál es el código necesario?

Un cordial saludo.
#522
Electrónica / Comandos AT para Nokia N70
14 Marzo 2009, 18:22 PM
Hola:

Tengo un Nokión N70 para su época, el cable es de USB. Me gustaría saber si hay alguna manera de manejar el Movil con Comandos AT y probar. Los de antes funcionan con el puerto serie y el HyperTerminal de Windows, ahora no tengo idea.

Si saben algo de información sobre esto mediante USB o con un microcontrolador, mejor que mejor. En www.google.com hay proyectos pero no enseñan mucho como se hace.

Un cordial saludo.
#523
Hola:

Me gustaría encontrar el Visual Basic 6, el .net lo puedo bajar aquí.

Quiero hacer este manual que está hecho en .net a VB6.
http://www.abcdatos.com/tutoriales/tutorial/v12.html

Un cordial saludo.
#525
[size=18]Manual Puerto serie con PIC16F84A bajo Visual C++ y Visual Basic[/size]

Presento 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.html

Un cordial saludo.
#526
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ñol

Un cordial saludo.
#527
Hola:

Estoy haciendo la continuación del manual sobre Visual C# de la parte de MonoDevelop 1 bajo Linux, por otro lado algo de Visual C++ y Visual Basic.

El único código funcional es el VC++, el VB funciona aunque no está publicado porque está hecho a la chapuza. Cuando lo haga seriamente lo publico en el manual. Si alguien quiere ese código ya, me lo dicen y lo pongo aquí, funciona, pero no es el adecuado, hay otro método que estoy averiguando en hacerlo más cómodo y con menos código.

El manual no está acabado, sólo verán su estilo a ver si les gusta y yo mismo ver sus sugerencias.

DESCARGAR Manual PDF

Un cordial saludo.
#528
Hola:

Tengo un código hecho con Visual C#  Express. Se trata de que uso el puerto serie, si pulso un botón dejo la comunicación activa, si cierro el programa principal, el dato enviado por el puerto serie que lleva hasta un PIC16F84A está activo, antes de cerrar el programa debo pulsar el otro botón para desactivar el PIC por el puerto serie. Me gustaría saber si hay una posibilidad de que se cuando cierre la aplicación, envíe un comando del mismo botón que hace que se desactive el PIC. Espero averiguar o al menos saber si existe hacer esa posibilidad.

Código (csharp) [Seleccionar]
            byte[] mBuffer = new byte[1];
            mBuffer[0] = 0x20; //ASCII letra "Espacio".
            serialPort1.Write(mBuffer, 0, mBuffer.Length);


Un cordial saludo.
#529
.NET (C#, VB.NET, ASP) / Puerto serie RS232
23 Febrero 2009, 21:39 PM
Hola:

Estoy con MonoDevelop con el openSUSE 11.1. Mirando esta web http://www.mono-project.com/HowToSystemIOPorts quiero configurar el puerto serie como a mi me de la gana.

Lo he puesto así:

Código (csharp) [Seleccionar]
mySerial new SerialPort("/dev/ttyS0", 9600, None, 8, Two);

La otra manera con comillas así:

Código (csharp) [Seleccionar]
mySerial new SerialPort("/dev/ttyS0", 9600, "None", 8, "Two");

Código completo:

Código (csharp) [Seleccionar]
// MainWindow.cs created with MonoDevelop
// User: metaconta at 17:46 23/02/2009
//
// To change standard headers go to Edit->Preferences->Coding->Standard Headers
//
using System;
using Gtk;
using System.IO.Ports;

public partial class MainWindow: Gtk.Window
{
public MainWindow (): base (Gtk.WindowType.Toplevel)
{
Build ();
}

protected void OnDeleteEvent (object sender, DeleteEventArgs a)
{
Application.Quit ();
a.RetVal = true;
}

protected virtual void OnButton1Clicked (object sender, System.EventArgs e)
{
mySerial new SerialPort("/dev/ttyS0", 9600, None, 8, Two);
}
}


Me da error en la línea 25. ¿Qué puede ser?

Estoy intentando pasar este código de Visual C# a Mono, puedes ver el código en las páginas 153 y 154 en este manual en PDF.

http://www.abcdatos.com/tutoriales/tutorial/z9521.html

Saludos.

EDITO:
He logrado abrir el puerto pero no he sido enviar el código al puerto serie.
Código (csharp) [Seleccionar]

// MainWindow.cs created with MonoDevelop
// User: metaconta at 17:46 23/02/2009
//
// To change standard headers go to Edit->Preferences->Coding->Standard Headers
//
using System;
using Gtk;
using System.IO.Ports;

public partial class MainWindow: Gtk.Window
{
private SerialPort mySerial;

public MainWindow (): base (Gtk.WindowType.Toplevel)
{
Build ();
}

protected void OnDeleteEvent (object sender, DeleteEventArgs a)
{
Application.Quit ();
a.RetVal = true;
}

protected virtual void OnButton1Clicked (object sender, System.EventArgs e)
{
mySerial = new SerialPort("/dev/ttyS0", 9600, Parity.None, 8, StopBits.Two);

if(mySerial == null) return;

mySerial.Open();

if(!mySerial.IsOpen)
{
label1.Text = "Error abriendo";
mySerial.Dispose();
return;
}

byte[] buffer = new byte[1];
buffer[0] = 0x74;
mySerial.Write(buffer, 0, 1);

try
{
mySerial.Write(buffer, 0, 1);
}
catch(Exception ex)
{
//label1.Text = ex.Message;// + " " + ex.StackTrace;
mySerial.Close();
mySerial.Dispose();
return;
}

mySerial.Close();
}
}


Un cordial saludo.
#530
Hola:

Intentando pasar de VC# a VC++ esta parte que parece que no sirve.

Código (csharp) [Seleccionar]
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
8 using System.Windows.Forms;
9 using System.IO.Ports;
10
11 namespace PicRS232
12 {
13     public partial class Form1_Principal : Form
14     {
15         // Utilizaremos un string como buffer de recepcion
16         string Recibidos;
17         public Form1_Principal()
18         {
19             InitializeComponent();
20             // Abrir puerto mientra se ejecute la aplicación
21             if (!serialPort1.IsOpen)
22             {
23                 try
24                 {
25                     serialPort1.Open();
26                 }
27                 catch (System.Exception ex)
28                 {
29                     MessageBox.Show(ex.ToString());
30                 }
31             }
32             // Ejecutar la funcion Recepcion por disparo del Evento 'DataReived'
33             serialPort1.DataReceived += new
34             System.IO.Ports.SerialDataReceivedEventHandler(Recepcion);
35         }
36         // Al recibir los datos
37         private void Recepcion(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
38         {
39             // Acumular los carácteres recibidos a nuestro 'buffer' (string)
40             Recibidos += serialPort1.ReadExisting();
41             // Invocar o llamar al proceso de tramas
42             this.Invoke(new EventHandler(Actualizar));
43         }
44         // Procesar los datos recibidos en el buffer y extraer tramas completas
45         private void Actualizar(object s, EventArgs e)
46         {
47             // Asignar el valor de la trama al textBox
48             textBox_visualizar_mensaje.Text = Recibidos;
49         }
50         private void button_t_Click(object sender, EventArgs e)
51         {
52             byte[] mBuffer = new byte[1];
53             mBuffer[0] = 0x74; //ASCII letra "t".
54             serialPort1.Write(mBuffer, 0, mBuffer.Length);
55         }
56
57         private void button_b_Click(object sender, EventArgs e)
58         {
59             byte[] miBuffer = new byte[1];
60             miBuffer[0] = 0x62; //ASCII letra "b".
61             serialPort1.Write(miBuffer, 0, miBuffer.Length);
62         }
63
64         private void button_a_Click(object sender, EventArgs e)
65         {
66             byte[] mBuffer = new byte[1];
67             mBuffer[0] = 0x61; //ASCII letra "a".
68             serialPort1.Write(mBuffer, 0, mBuffer.Length);
69         }
70
71         private void button_l_Click(object sender, EventArgs e)
72         {
73             byte[] mBuffer = new byte[1];
74             mBuffer[0] = 0x6C; //ASCII letra "l".
75             serialPort1.Write(mBuffer, 0, mBuffer.Length);
76         }
77
78         private void button_Espacio_Click(object sender, EventArgs e)
79         {
80             byte[] mBuffer = new byte[1];
81             mBuffer[0] = 0x20; //ASCII letra "Espacio".
82             serialPort1.Write(mBuffer, 0, mBuffer.Length);
83         }
84
85         private void timer1_Tick(object sender, EventArgs e)
86         {
87             statusStrip1.Items[0].Text = DateTime.Now.ToLongTimeString();
88         }
89     }
90 }


Código completo de Visual C# Express. Descargar aquí.

Por ahora he hecho el código en Visual C++ pero me faltan hacer cosas que no he incuido.
Código (cpp) [Seleccionar]

1 #pragma once
2
3
4 namespace PicRS232VCPP_Prueba01 {
5
6     using namespace System;
7     using namespace System::ComponentModel;
8     using namespace System::Collections;
9     using namespace System::Windows::Forms;
10     using namespace System::Data;
11     using namespace System::Drawing;
12     using namespace System::IO::Ports;
13
14     /// <summary>
15     /// Resumen de Form1
16     ///
17     /// ADVERTENCIA: si cambia el nombre de esta clase, deberá cambiar la
18     ///          propiedad 'Nombre de archivos de recursos' de la herramienta de compilación de recursos administrados
19     ///          asociada con todos los archivos .resx de los que depende esta clase. De lo contrario,
20     ///          los diseñadores no podrán interactuar correctamente con los
21     ///          recursos adaptados asociados con este formulario.
22     /// </summary>
23     public ref class Form1 : public System::Windows::Forms::Form
24     {
25     public:
26         Form1(void)
27         {
28             InitializeComponent();
29             //
30             //TODO: agregar código de constructor aquí
31             //
32             // Abrir puerto mientrase ejecute la aplicación
33             if(!serialPort1->IsOpen)
34             {
35                 try
36                 {
37                 serialPort1->Open();
38                 }
39                 catch (Exception ^ex)
40                 {
41                     MessageBox::Show(ex->ToString());
42                 }
43             }
44         }
45
46     protected:
47         /// <summary>
48         /// Limpiar los recursos que se estén utilizando.
49         /// </summary>
50         ~Form1()
51         {
52             if (components)
53             {
54                 delete components;
55             }
56         }
57     private: System::Windows::Forms::Button^  button_t;
58     private: System::Windows::Forms::Button^  button_b;
59     private: System::Windows::Forms::Button^  button_a;
60     private: System::Windows::Forms::Button^  button_l;
61     private: System::Windows::Forms::Button^  button_Espacio;
62     private: System::IO::Ports::SerialPort^  serialPort1;
63     private: System::ComponentModel::IContainer^  components;
64
65     protected: 
66
67     private:
68         /// <summary>
69         /// Variable del diseñador requerida.
70         /// </summary>
71
72
73 #pragma region Windows Form Designer generated code
74         /// <summary>
75         /// Método necesario para admitir el Diseñador. No se puede modificar
76         /// el contenido del método con el editor de código.
77         /// </summary>
78         void InitializeComponent(void)
79         {
80             this->components = (gcnew System::ComponentModel::Container());
81             this->button_t = (gcnew System::Windows::Forms::Button());
82             this->button_b = (gcnew System::Windows::Forms::Button());
83             this->button_a = (gcnew System::Windows::Forms::Button());
84             this->button_l = (gcnew System::Windows::Forms::Button());
85             this->button_Espacio = (gcnew System::Windows::Forms::Button());
86             this->serialPort1 = (gcnew System::IO::Ports::SerialPort(this->components));
87             this->SuspendLayout();
88             // 
89             // button_t
90             // 
91             this->button_t->Location = System::Drawing::Point(109, 38);
92             this->button_t->Name = L"button_t";
93             this->button_t->Size = System::Drawing::Size(75, 23);
94             this->button_t->TabIndex = 0;
95             this->button_t->Text = L"t";
96             this->button_t->UseVisualStyleBackColor = true;
97             this->button_t->Click += gcnew System::EventHandler(this, &Form1::button_t_Click);
98             // 
99             // button_b
100             // 
101             this->button_b->Location = System::Drawing::Point(109, 67);
102             this->button_b->Name = L"button_b";
103             this->button_b->Size = System::Drawing::Size(75, 23);
104             this->button_b->TabIndex = 1;
105             this->button_b->Text = L"b";
106             this->button_b->UseVisualStyleBackColor = true;
107             this->button_b->Click += gcnew System::EventHandler(this, &Form1::button_b_Click);
108             // 
109             // button_a
110             // 
111             this->button_a->Location = System::Drawing::Point(28, 67);
112             this->button_a->Name = L"button_a";
113             this->button_a->Size = System::Drawing::Size(75, 23);
114             this->button_a->TabIndex = 2;
115             this->button_a->Text = L"a";
116             this->button_a->UseVisualStyleBackColor = true;
117             this->button_a->Click += gcnew System::EventHandler(this, &Form1::button_a_Click);
118             // 
119             // button_l
120             // 
121             this->button_l->Location = System::Drawing::Point(190, 67);
122             this->button_l->Name = L"button_l";
123             this->button_l->Size = System::Drawing::Size(75, 23);
124             this->button_l->TabIndex = 3;
125             this->button_l->Text = L"l";
126             this->button_l->UseVisualStyleBackColor = true;
127             this->button_l->Click += gcnew System::EventHandler(this, &Form1::button_l_Click);
128             // 
129             // button_Espacio
130             // 
131             this->button_Espacio->BackColor = System::Drawing::Color::FromArgb(static_cast<System::Int32>(static_cast<System::Byte>(255)), static_cast<System::Int32>(static_cast<System::Byte>(128)), 
132                 static_cast<System::Int32>(static_cast<System::Byte>(0)));
133             this->button_Espacio->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 8.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point, 
134                 static_cast<System::Byte>(0)));
135             this->button_Espacio->Location = System::Drawing::Point(190, 96);
136             this->button_Espacio->Name = L"button_Espacio";
137             this->button_Espacio->Size = System::Drawing::Size(75, 23);
138             this->button_Espacio->TabIndex = 4;
139             this->button_Espacio->Text = L"Espacio";
140             this->button_Espacio->UseVisualStyleBackColor = false;
141             this->button_Espacio->Click += gcnew System::EventHandler(this, &Form1::button_Espacio_Click);
142             // 
143             // serialPort1
144             // 
145             this->serialPort1->StopBits = System::IO::Ports::StopBits::Two;
146             // 
147             // Form1
148             // 
149             this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
150             this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
151             this->ClientSize = System::Drawing::Size(292, 266);
152             this->Controls->Add(this->button_Espacio);
153             this->Controls->Add(this->button_l);
154             this->Controls->Add(this->button_a);
155             this->Controls->Add(this->button_b);
156             this->Controls->Add(this->button_t);
157             this->Name = L"Form1";
158             this->StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;
159             this->Text = L"PicRS232VCPP";
160             this->ResumeLayout(false);
161
162         }
163 #pragma endregion
164     private: System::Void button_t_Click(System::Object^  sender, System::EventArgs^  e) {
165                  cli::array<unsigned char> ^uno = gcnew cli::array<unsigned char>(1);
166                  uno[0] = 0x74; //ASCII letra "t".
167                  serialPort1->Write(uno, 0, 1);
168              }
169 private: System::Void button_b_Click(System::Object^  sender, System::EventArgs^  e) {
170                  cli::array<unsigned char> ^uno = gcnew cli::array<unsigned char>(1);
171                  uno[0] = 0x62; //ASCII letra "b".
172                  serialPort1->Write(uno, 0, 1);
173          }
174 private: System::Void button_a_Click(System::Object^  sender, System::EventArgs^  e) {
175              cli::array<unsigned char> ^uno = gcnew cli::array<unsigned char>(1);
176                  uno[0] = 0x61; //ASCII letra "a".
177                  serialPort1->Write(uno, 0, 1);
178          }
179 private: System::Void button_l_Click(System::Object^  sender, System::EventArgs^  e) {
180              cli::array<unsigned char> ^uno = gcnew cli::array<unsigned char>(1);
181                  uno[0] = 0x6C; //ASCII letra "l".
182                  serialPort1->Write(uno, 0, 1);
183          }
184 private: System::Void button_Espacio_Click(System::Object^  sender, System::EventArgs^  e) {
185              cli::array<unsigned char> ^uno = gcnew cli::array<unsigned char>(1);
186                  uno[0] = 0x20; //ASCII letra "Espacio".
187                  serialPort1->Write(uno, 0, 1);
188          }
189 };
190 }
191
   


Saludos.
#531
Juegos y Consolas / YaBasic en PS2.
26 Diciembre 2008, 15:23 PM
Hola:

Me encontré una demo de la PS2 que tenía guardada hace ya muchos años. Tiene YaBasic, en su día pasaba de él porque no lo entiendo pero me llamó la curiosidad y voy a probar a ver que se hace con él.

¿Hay algo parecido a PlayStation 3 o no tiene nada de eso?

Un cordial saludo.
#532
Scripting / Convertir bat en vbs
23 Diciembre 2008, 13:52 PM
Hola:

¿Se puede hacer esto de BAT a VSB? ¿Es posible?
Me gustaría que haga justo la misma función de este BAT pero en VBS.



@ECHO OFF
:INICIO
cls
ECHO.
ECHO  ----------------------------------------------------------------------------
ECHO                       HACK360 IX 1.4 SAMSUNG (XBOX 360)
ECHO  ----------------------------------------------------------------------------
ECHO.
ECHO   Pasos a realizar:
ECHO.
ECHO.
ECHO.     1 - Crear arranque del Pendrive ( Proceso Manual)
ECHO.     2 - Instalar archivos del Hack360 en Pendrive
ECHO.   
ECHO.
ECHO.     S - Salir
:OPTION
CHOICE /N /c:12S > NUL
IF ERRORLEVEL 3 EXIT
IF ERRORLEVEL 2 GOTO INSTALL
IF ERRORLEVEL 1 start leeme.htm
GOTO OPTION

:INSTALL
set a=xxx
:ELIGE
CLS
@ECHO.
@ECHO  ----------------------------------------------------------------------------
ECHO                       HACK360 IX 1.4 SAMSUNG (XBOX 360)
@ECHO  ----------------------------------------------------------------------------
@ECHO.
choice /n /C:ADEFGHIJKLMNOPQR Selecciona la unidad para instalar el HACK360:
if %errorlevel%==16 set a=r
if %errorlevel%==15 set a=q
if %errorlevel%==14 set a=p
if %errorlevel%==13 set a=o
if %errorlevel%==12 set a=n
if %errorlevel%==11 set a=m
if %errorlevel%==10 set a=l
if %errorlevel%==9 set a=k
if %errorlevel%==8 set a=j
if %errorlevel%==7 set a=i
if %errorlevel%==6 set a=h
if %errorlevel%==5 set a=g
if %errorlevel%==4 set a=f
if %errorlevel%==3 set a=e
if %errorlevel%==2 set a=d
if %errorlevel%==1 set a=a
if %a%==xxx GOTO ELIGE
if %a%==a CALL :DISQUETE

XCOPY HACK360\. %a%:\ /E /V /Q /H /R /Y > NUL
GOTO FIN

:DISQUETE
CHKDSK a: > CHKDSK.TXT
find "1.457.664" CHKDSK.TXT > NUL
if %errorlevel%==0 GOTO :eof
DEL CHKDSK.TXT > NUL
CLS
ECHO.
echo  ERROR: EL ESPACIO DETECTADO EN LA DISQUETERA NO ES EL ESPERADO
ECHO.
PAUSE
GOTO INICIO

:FIN
DEL CHKDSK.TXT > NUL
CLS
ECHO.
echo  PROCESO FINALIZADO CORRECTAMENTE
ECHO.
PAUSE
GOTO INICIO


http://www.elotrolado.net/hilo_hack360-samsung-8_812131

Descargar.

Saludo.

EDITO:

Otra modificación en azul.

Citar
@ECHO OFF
TITLE HACK360 IX 1.4 SAMSUNG (XBOX 360)
:INICIO
cls
ECHO.
ECHO  ----------------------------------------------------------------------------
ECHO                       HACK360 IX 1.4 SAMSUNG (XBOX 360)
ECHO  ----------------------------------------------------------------------------
ECHO.
ECHO   Pasos a realizar:
ECHO.
ECHO.
ECHO.     1 - Crear arranque del Pendrive ( Proceso Manual)
ECHO.     2 - Instalar archivos del Hack360 en Pendrive
ECHO.   
ECHO.
ECHO.     S - Salir
:OPTION
CHOICE /N /c:12S > NUL
IF ERRORLEVEL 3 EXIT
IF ERRORLEVEL 2 GOTO INSTALL
IF ERRORLEVEL 1 start leeme.htm
GOTO OPTION

:INSTALL
set a=xxx
:ELIGE
CLS
@ECHO.
@ECHO  ----------------------------------------------------------------------------
ECHO                       HACK360 IX 1.4 SAMSUNG (XBOX 360)
@ECHO  ----------------------------------------------------------------------------
@ECHO.
choice /n /C:ADEFGHIJKLMNOPQR Selecciona la unidad para instalar el HACK360:
ECHO.
ECHO Espere un momento, por favor...
ECHO.

if %errorlevel%==16 set a=r
if %errorlevel%==15 set a=q
if %errorlevel%==14 set a=p
if %errorlevel%==13 set a=o
if %errorlevel%==12 set a=n
if %errorlevel%==11 set a=m
if %errorlevel%==10 set a=l
if %errorlevel%==9 set a=k
if %errorlevel%==8 set a=j
if %errorlevel%==7 set a=i
if %errorlevel%==6 set a=h
if %errorlevel%==5 set a=g
if %errorlevel%==4 set a=f
if %errorlevel%==3 set a=e
if %errorlevel%==2 set a=d
if %errorlevel%==1 set a=a
if %a%==xxx GOTO ELIGE
if %a%==a CALL :DISQUETE

XCOPY HACK360\. %a%:\ /E /V /Q /H /R /Y > NUL
GOTO FIN

:DISQUETE
CHKDSK a: > CHKDSK.TXT
find "1.457.664" CHKDSK.TXT > NUL
if %errorlevel%==0 GOTO :eof
DEL CHKDSK.TXT > NUL
CLS
COLOR 0C
ECHO.
echo  ERROR: EL ESPACIO DETECTADO EN LA DISQUETERA NO ES EL ESPERADO
ECHO.
ECHO Pulse cualquier tecla para SALIR.
PAUSE>NUL
COLOR 07
GOTO INICIO

:FIN
DEL CHKDSK.TXT > NUL
CLS
COLOR 0A
ECHO.
echo  PROCESO FINALIZADO CORRECTAMENTE
ECHO.
ECHO Pulse cualquier tecla para SALIR.
PAUSE>NUL
COLOR 07
GOTO INICIO
#533
Scripting / SOBRE HACK360 IX 1.4 SAMSUNG (XBOX 360)
22 Diciembre 2008, 11:02 AM
Hola:

Me llamó la atención el archivo  HACK360 IX 1.4 SAMSUNG (XBOX 360). No recuerdo en que enlace lo saqué pero fue de estos foros aquí.


@ECHO OFF
:INICIO
cls
ECHO.
ECHO  ----------------------------------------------------------------------------
ECHO                       HACK360 IX 1.4 SAMSUNG (XBOX 360)
ECHO  ----------------------------------------------------------------------------
ECHO.
ECHO   Pasos a realizar:
ECHO.
ECHO.
ECHO.     1 - Crear arranque del Pendrive ( Proceso Manual)
ECHO.     2 - Instalar archivos del Hack360 en Pendrive
ECHO.   
ECHO.
ECHO.     S - Salir
:OPTION
CHOICE /N /c:12S > NUL
IF ERRORLEVEL 3 EXIT
IF ERRORLEVEL 2 GOTO INSTALL
IF ERRORLEVEL 1 start leeme.htm
GOTO OPTION

:INSTALL
set a=xxx
:ELIGE
CLS
@ECHO.
@ECHO  ----------------------------------------------------------------------------
ECHO                       HACK360 IX 1.4 SAMSUNG (XBOX 360)
@ECHO  ----------------------------------------------------------------------------
@ECHO.
choice /n /C:ADEFGHIJKLMNOPQR Selecciona la unidad para instalar el HACK360:
if %errorlevel%==16 set a=r
if %errorlevel%==15 set a=q
if %errorlevel%==14 set a=p
if %errorlevel%==13 set a=o
if %errorlevel%==12 set a=n
if %errorlevel%==11 set a=m
if %errorlevel%==10 set a=l
if %errorlevel%==9 set a=k
if %errorlevel%==8 set a=j
if %errorlevel%==7 set a=i
if %errorlevel%==6 set a=h
if %errorlevel%==5 set a=g
if %errorlevel%==4 set a=f
if %errorlevel%==3 set a=e
if %errorlevel%==2 set a=d
if %errorlevel%==1 set a=a
if %a%==xxx GOTO ELIGE
if %a%==a CALL :DISQUETE

XCOPY HACK360\. %a%:\ /E /V /Q /H /R /Y > NUL
GOTO FIN

:DISQUETE
CHKDSK a: > CHKDSK.TXT
find "1.457.664" CHKDSK.TXT > NUL
if %errorlevel%==0 GOTO :eof
DEL CHKDSK.TXT > NUL
CLS
ECHO.
echo  ERROR: EL ESPACIO DETECTADO EN LA DISQUETERA NO ES EL ESPERADO
ECHO.
PAUSE
GOTO INICIO

:FIN
DEL CHKDSK.TXT > NUL
CLS
ECHO.
echo  PROCESO FINALIZADO CORRECTAMENTE
ECHO.
PAUSE
GOTO INICIO


Me gustaría para aprender algo de esto, que explique línea por línea lo que hizo. La verdad funciona muy bien pasar los archivos al pendriver. LA idea principal, la quiero pasar a C#.

Un cordial saludo.
#534
.NET (C#, VB.NET, ASP) / Pasar de VC# a VB
22 Diciembre 2008, 06:10 AM
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.
#535
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/convert/csharp-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.
#536
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-HVnY

Quiero 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.
#537
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.
#538
Hola:

¿Alguien le interesa controlar puerto serie y paralelo con Visual Basic 6 o .net 2008 Express?

Lo incluiré en la parte II de este manual en C#.

Ver aqui:
http://foro.elhacker.net/electronica/manual_puerto_serie_rs232_con_pic16f84a_controlado_por_visual_c-t237403.0.html

Un cordial salido
#539
Hola:

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 Manual

Descargar 1ª parte
Descargar 2ª parte

Si estás registrado, hay una opción para bajarlo en PDF.

Ver vídeo:
http://www.youtube.com/watch?v=niWAbQ-HVnY

Espero cualquier opinión, duda, preguntas sobre errores que puedan encontrar y mejoras del manual.

Un cordial saludo.
#540

Hola:

Quiero hacer un cuadro de información que tiene todos los programas normalmente llamado "Acerca de...". Por ejemplo en el navegador Mozilla Firefox. Al pulsar Acerca de... y luego el botón Créditos, se ve una lista de colaboradores que sube hacia arriba. ¿Cómo se hace ese efecto?

Saludo.