Foros del Web » Soporte técnico » Ofimática »

Intentando controlar puerto COM con Excel

Estas en el tema de Intentando controlar puerto COM con Excel en el foro de Ofimática en Foros del Web. Hola: Quiero lograr comunicar mediante el Excel 2007 (o con Calc del openOffece gratuito) recibir o enviar tramas de byte al puerto serie. Enviar tramas ...
  #1 (permalink)  
Antiguo 09/11/2009, 19:38
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 727
Antigüedad: 16 años, 11 meses
Puntos: 8
Intentando controlar puerto COM con Excel

Hola:



Quiero lograr comunicar mediante el Excel 2007 (o con Calc del openOffece gratuito) recibir o enviar tramas de byte al puerto serie. Enviar tramas de byte puede ser un mensaje de texto, también al recibir.

He investigado por ahí en www.google.com que directamente no se puede hacer al puerto serie. Pero me he informado que con Visual Studio .net 2008/2010 se puede crear un plugins, Add-on o como se llame bajo para el Excel.

1- ¿Se puede programar con cualquier lenguaje Visual Basic .net o Visual C# para hacer un plugins para Office Excel 2007? Sólo tiene que controlar el puerto serie, esa es la programación que quiero saber si es posible hacerlo en realidad.

2- ¿Cómo se programa o dónde hay buenos tutoriales básicos para programar un plugins sobre el puerto serie con C# o VB .net 2008? El tutorial es básico como empezar a aprender hacer tu primer plugins al Excel, cómo usarlo una vez acabado y como activarlo cuando se lo pases a un amigo y lo pruebe sin tener Visual Studio instaldo.

He hecho un programa sobre controlar el puerto serie bajo C# (gracias a este foro) con su manual correspondiente.



Código:
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);
        }
    }
}
Ver manual en pdf. (22 MB)

Os dejo esto de momento por si hay personas que sepan información sobre este tema como enlaces a otras web, etc.

Por otro lado intentaré aprenderhacer cualquier plugins para Excel para luego pasar el código de arriba al formulario. A ver si hay suerte.

Un coridal saludo.
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:18.