Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > .NET
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-12-2023
REHome REHome is offline
Miembro
 
Registrado: jul 2003
Ubicación: España
Posts: 454
Poder: 21
REHome Va por buen camino
Buenas.

Funciona tu código. Me di cuenta que esos caracteres no hay que hacerles caso, debo recoger los datos tal cual como vienen en el puerto serie. Por ejemplo he hecho el de string, hexadecimal y binario como puedes ver aquí abajo.

Cita:
#I223.4O223.6L007B100V26.0F50.2H50.2R0080S??????

23493232332E344F3232332E364C303037423130305632362E304635302E324835302E325230303830533F3F3F3F3F3F0D

1000111001001110010110010110011101110110100100111111001011001011001110111011011010011001100001100001 1011110000101100011100001100001010110110010110110101110110000100011011010111000010111011001010010001 1010111000010111011001010100101100001100001110001100001010011111111111111111111111111111111111111110 1
La idea es tal cual como incida en la imagen de abajo.


Marqué en rojo en la captura de arriba exactamente los seis bytes que quiero, luego tengo que guardarlos ya en un array, matriz o como quiera para luego mostrar en su label correspondiente el resultado.

Código que he hecho con string, hexadecimal y binario con Windows Form.
Código:
private void Actualizar(object sender, EventArgs e)
{

    // Asignar el valor de la trama al richTextBox.
    richTextBox1.Text += recibidos;
    // Nueva línea.
    richTextBox1.Text += Environment.NewLine;

    // Pasar a hexadecimal.
    //foreach (byte item in recibidos)
    foreach (byte item in recibidos.Select(v => (byte)v))
    {
        // x = minúscula, X = mayúscula.
        richTextBox1.Text += item.ToString("X2");
    }

    // Nueva línea.
    richTextBox1.Text += Environment.NewLine;
    richTextBox1.Text += Environment.NewLine;

    // Pasar a binario.
    foreach (string leer in recibidos.Select(c => Convert.ToString(c, 2)))
    {
        richTextBox1.Text += leer.ToString();
    }

    // Nueva línea.
    richTextBox1.Text += Environment.NewLine;
    richTextBox1.Text += Environment.NewLine;

    // Selecciona la posición final para leer los mensajes entrantes.
    richTextBox1.SelectionStart = richTextBox1.Text.Length;

    // Mantiene el scroll en la entrada de cada mensaje.
    richTextBox1.ScrollToCaret();

    // Limpiar.
    recibidos = "";
}
No me sale tal como indica en el Real Term de la primera imagen.

Espero que así de entrada no tenga que trabajar usando codificaciones ni nada. Han hecho el error para mi, trabajar con distintos tipos de datos en una misma trama.

¿Se puede hacer lo que quiero?

Saludos.
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino.
Responder Con Cita
  #2  
Antiguo 03-12-2023
tsk tsk is offline
Miembro
 
Registrado: dic 2017
Posts: 52
Poder: 7
tsk Va por buen camino
Ya veo cual es tu problema, pero si seleccionas la codificación adecuada, no deberías tener problemas con manejar los dos casos al mismo tiempo.

Código PHP:
using System;
using System.IO.Ports;
using System.Text;

public class 
TSer
{
    static 
SerialPort _serialPort;

    public static 
void Main()
    {
        
char[] c= {'a','b'};
        
        
_serialPort = new SerialPort("/dev/ttyACM0",115200Parity.None8StopBits.One);
        
_serialPort.Handshake Handshake.None;
        
_serialPort.Encoding Encoding.GetEncoding(28591);  //Aquí estoy seleccionando la codificación

        
_serialPort.WriteTimeout 500;
        
_serialPort.ReadTimeout 500;
        
_serialPort.Open();
        
_serialPort.Write(c,0,1);
        var 
readData _serialPort.ReadLine();
        
Console.WriteLine(readData);
        foreach(
char d in readData)
        {
            
byte b = (byte)d;
            
Console.WriteLine(b);
        }
    }


Código:
$ ./tser.exe 
S

 À
83
144
132
128
136
132
192
Responder Con Cita
  #3  
Antiguo 05-12-2023
REHome REHome is offline
Miembro
 
Registrado: jul 2003
Ubicación: España
Posts: 454
Poder: 21
REHome Va por buen camino
Me dice: El índice esta fuera de los límites de la matriz.


Ver imagen.

Al menos en la matriz internamente parece que funciona.
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino.
Responder Con Cita
  #4  
Antiguo 05-12-2023
REHome REHome is offline
Miembro
 
Registrado: jul 2003
Ubicación: España
Posts: 454
Poder: 21
REHome Va por buen camino
Funciona.

Código:
            uint[] numeros = new uint[6];
            uint contador = 0;

            foreach (uint elemento in salida[8])
            {
                //richTextBox1.Text += b.ToString();
                richTextBox1.Text += Environment.NewLine; // Nueva línea.
                richTextBox1.Text += $"Array: {numeros[contador] = elemento}";
                ++contador;
            }
Muchísimas gracias.
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Tengo un Problema con el DecimalSeparator jeremiselxi Varios 4 01-10-2015 20:20:00
TStringList y Delimitadores. ungrande87 Varios 8 05-03-2012 21:34:15
Tengo un Problema con el DecimalSeparator andiget Varios 2 20-06-2007 20:21:36
tengo un problema con el comando VAL perudelphi OOP 8 08-12-2004 03:31:30
Importar de Txt sin delimitadores de registro apicito Varios 7 14-06-2003 08:07:07


La franja horaria es GMT +2. Ahora son las 22:54:43.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi