FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Duda al leer el puerto serie
Hola, estoy realizando una aplicacion con el puerto serie. Desde un módulo externo envio por radiofrecuencia a traves de una UART un dato en binario. Este dato por ejemplo es 0010 0101 (el nº25) y lo quiero representar en una Label. Si yo he enviado 25, tengo que representar 25 pero me representa caracteres del codigo ASCII.
Para capturar por el puerto serie estoy usando el componente CPortLib y este es el codigo con el que leo el puerto: AnsiString a; // Declaro una variable ComPort1->ReadStr(a,Count); // Leo el puerto serie cargando el valor en 'a' Label8->Caption = a; // Represento el valor leido puerto en Label8 Creo que como la variable 'a' es de tipo String se representa como un caracter, pero no se como tratarla para que aparezcan 2 caracteres que formen 25 y se represente el valor que he enviado desde el exterior. Un saludo y gracias |
#3
|
|||
|
|||
Gracias por la contestacion, pero hay una cosa que me da error.
Al compilar me dice que esta indefinada la funcion 'Ord'. Hay que definirla de alguna forma especial o solo es una variable normal. |
#4
|
||||
|
||||
Ord no es una variable, es una función definida en la unit System, debes agregarla en la clausula uses.
para saber mas funciones de este tipo puedes encontrarlo en la ayuda que es bastante completa. apreta F1 teniendo el cursor sobre la palabra ord y te aparecera una explicación, la unit a la que pertenece y funciones similares.
__________________
[Crandel] |
#5
|
||||
|
||||
Hola foro!, tiempo sin poder aparecerme x-aqi.
Suponiendo q el método ReadStr sea de la forma Código:
void ReadStr(AnsiString &Str, unsigned int Count) Código:
ComPort1->ReadStr(a,Count); // Leo el puerto serie cargando el valor en 'a' Label8->Caption = AnsiString((int)(a.c_str()[0]));
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad." Simón Bolívar (Carta al Coronel Inglés Patricio Cambell 05/08/1829). |
#6
|
||||
|
||||
uyy, perdona alloger, te estaba contestando para Delphi y no C++Builder.
Prueba lo que te escribio OSKR
__________________
[Crandel] |
#7
|
|||
|
|||
Funcionando
Muchas gracias por vuastra ayuda, por fin lo he conseguido, tengo un pequeño error de baud-rate pero ese es otro tema. Este es el codigo con el cual leo el puerto serie:
//----------------------------------------------------------------------- void __fastcall TForm1::ComPort1RxChar(TObject *Sender, int Count) { if(x==0) { AnsiString a, dato1; ComPort1->ReadStr(a,Count); dato1 = AnsiString((int)(a.c_str()[0])); Label8->Caption = ""; Label8->Caption =dato1; temperatura= StrToInt(dato1); x=1; } } Gracias de nuevo, si sale alguna otra duda os la comento Un saludo |
#8
|
|||
|
|||
Tengo un problema con el componente CPortLib
tengo un problema al leer el puerto com1 desde DELPHI, utilizo este componente porque mi interfaz electrónica lee codigos de barra que son de 9 dígitos por ejemplo:
650001019 y todos los credenciales se han impreso de esa manera. ya logré instalar correctamente el componente, y este es el codigo fuente para capturar los datos: Código:
procedure TFTRegistrar.puertoserialRxChar(Sender: TObject; Count: Integer); var str: String; begin puertoserial.ReadStr(Str, Count); Edit1.Text := Edit1.Text + Str; end; Aún no entiendo muy bien como realiza la lectura por eso te pido una orientacion sobre como podría solucionar mi problema. Última edición por jhoncacru fecha: 15-11-2006 a las 14:06:58. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Componente Cportlib (puerto serie) Duda | tulio | Varios | 11 | 08-03-2011 00:28:17 |
Usb en puerto serie :p | D-MO | Humor | 10 | 30-06-2006 06:16:45 |
Imprimir a puerto serie | anduj | Impresión | 4 | 25-02-2005 12:18:39 |
Puerto serie | esquerda21 | Varios | 2 | 12-05-2004 23:58:52 |
Puerto serie y tcp | mercurio | Varios | 3 | 28-10-2003 01:21:59 |
|