[C con Clase] Enviar bytes puerto serie Visual C#

Hugo Rodríguez hugorplp en gmail.com
Vie Abr 1 15:35:37 CEST 2011


Hola,

Estoy creando una Aplicación WindowsForm para crear un programa con 
interfaz gráfica para el control de un motor paso a paso.

Tengo que mandar la información bajo un protocolo de comunicación 
preestablecido que tiene una trama de 18 bytes.

Mi principal problema es que quiero que el usuario introduzca un valor 
númerico (la distancia de movimiento del motor) en un TextBox   y luego 
ese valor númerico (pasado a número de pasos con 6 cifras) quiero 
enviarlo en una trama de 6 bytes. Es decir:

Tengo un número entero: 100000
y quiero enviar cada uno de esas cifras por separado en un byte en 
Código ASCII:
byte[0]=0x30
byte[1]=0x30
byte[2]=0x30
byte[3]=0x30
byte[4]=0x30
byte[4]=0x31

El principal problema que tengo es que no se como teniendo un entero 
puedo meterlo en un byte ya codificado.

He buscado y he visto muchas cosas parecidas en la web pero no soy capaz 
de hacerlo.

¿Me pueden dar alguna sugerencia?

Gracias, saludos

El 01/04/2011 13:22, unpocolocos escribió:
> Estoy comenzando a con el curso y estoy tratando de resolver los problemas propuestos con alguna que otra variante.
>
> Concretamente, estoy intentando (sin conseguirlo) detener la introducción de caracteres (cuando se pulse la tecla "INTRO" sin haber introducido un número o letra) en un array dinámico de caracteres. Es decir:
>
>
>    char *numero; // Puntero "numero" a tipo char
>    int i = 0, j;
>
>    // Declaración de prototipos
>    bool Incrementa (char);
>
>    int main()
>    {
>        // Reservamos en memoria dinámica una cadena de caracteres
>        // a la que apunta "numero"
>        numero = new char [10];
>
>        // Inicializamos la cadena dinámica con caracteres '0'
>        for (j = 0; j<  10; j++) numero [j] = '0';  numero [9] = '\0';
>
>        // Introducción del número de dígitos
>        cout<<  "Introduce los digitos de un numero HASTA UN MAXIMO DE 8"<<  endl;
>        cout<<  "Para salir pulsar directamente [INTRO]"<<  endl;
>
>        // Introducción de los caracteres de "numero"
>        while (i<  8) {
>            cout<<  "  Introduce digito "<<  j-9<<  ": "; j++;
>            cin>>  numero [i];
>            if (numero [i] == '\n') break;
>            i++;
>        }
>
> ¿Qué es lo que estoy haciendo mal?
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ




Más información sobre la lista de distribución Cconclase