Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-09-2008
alebarto alebarto is offline
Registrado
 
Registrado: abr 2008
Posts: 3
Poder: 0
alebarto Va por buen camino
Exclamation Puerto Serie / Envio De Datos

ncesitaria saber como puedo hacer para enviar numero enteros al puerto serie para que me aplique algo en una placa que tengo conectada.. hay una forma¿¿¿¿?? estoy haciendolo en borland builder c++ 6.

me podran ayudar???
Responder Con Cita
  #2  
Antiguo 03-09-2008
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
en torry.net hay un componente llamado synaser, existe otro llamado serialng, que es el que más uso pero es para delphi, pero básicamente la idea es escribir en el archivo llamado COM1.

saludos
__________________
self.free;
Responder Con Cita
  #3  
Antiguo 03-09-2008
alebarto alebarto is offline
Registrado
 
Registrado: abr 2008
Posts: 3
Poder: 0
alebarto Va por buen camino
Exclamation

Primero gracias por la respuesta, pero no encuentro eso, yo estoy usando un componenente que se ComPort, que esta instalado dentro de los componente y la libreria se llama CportLib. Esto es lo que hice yo, me funciona perfecto, solo que me envia ascii, pero haciendo la conversion yo a mano, con lo que me muestra en la tabla verifico que los datos son correctos los que se envian y los que recibo, solo que necesitaria recibir y enviar numeros enteros. Te paso lo que hice mira...
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CPort"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnOpenClick(TObject *Sender)
{
if (ComPort1->Connected)
ComPort1->Close();
else
ComPort1->Open();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnSettingClick(TObject *Sender)
{
ComPort1->ShowSetupDialog();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnSendClick(TObject *Sender)
{
AnsiString Str;


Str = Edit1->Text;
if (CheckBox1->Checked)
Str = Str + "\r\n";
ComPort1->WriteStr(Str);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComPort1AfterOpen(TObject *Sender)
{
btnOpen->Caption = "Close";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComPort1AfterClose(TObject *Sender)
{
btnOpen->Caption = "Open";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComPort1RxChar(TObject *Sender, int Count)
{
AnsiString Str;
ComPort1->ReadStr(Str, Count);
//ComPort1->Count;
//Memo1->Text = Memo1->Text + Str;
Edit2->Text =Edit2->Text + Str;
}
//--------------------------------------------





***********************************/*******************
Esta es la parte que tendria que modificar algo, para poder hacer que envie los numeros entero creo que habria que hacer una conversion o enviar de otea forma nose? eso es lo que no encuentro.
if (CheckBox1->Checked)
Str = Str + "\r\n";
ComPort1->WriteStr(Str); ???????????? ACA NO SE PODRA HACER ALGO????
Responder Con Cita
  #4  
Antiguo 04-09-2008
yomismo24 yomismo24 is offline
Miembro
 
Registrado: oct 2007
Posts: 44
Poder: 0
yomismo24 Va por buen camino
Hola
a ver si he entendido bien, tu lo que necesitas es mandar un entero a una tarjeta, pero la comunicacion por el puerto serie se hace mediante cadenas.

Mi pregunta es si la tarjeta es capaz de hacer la conversión del caracter ascii que representa el digito, al valor del digito en si.

Me refiero a que si tu envias ComPort1->WriteStr("1\r\n");
Tu tarjeta recibe ese caracter 1, cuyo valor en ascii es 49.
Si ese es el caso, solo tendrias que restar 48 al caracter recibido y tendrias su valor.

No se si exactamente ese es tu problema. Si no es así danos un poco más de información de como trabaja la tarjeta para ver si se nos ocurre algo.

Un saludo!!
Responder Con Cita
  #5  
Antiguo 07-09-2008
alebarto alebarto is offline
Registrado
 
Registrado: abr 2008
Posts: 3
Poder: 0
alebarto Va por buen camino
Exclamation Serie

Si se puede usar caracteres, pero eso requiere el doble de comunicación, y necesitaria que se envien números directamente.
Ej: para mandar el número 20 en decimal, tengoq ue amndar el 2 en un byte con codigo ascii y el 0 en otro byte en ASCII, y eso me duplica el tiempo de comunación.
Con boland c++ en dos podia hacerlo mandar en hexadecimal.
pero aca como se podría hacer para mandar por el serie un hexa o decimal? o como convertirlo.?antes te pase mi codigo.. fijate si con eso podes darme alguna pequeña ayuda.
Desde ya muchisimas gracias.
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
Quiero tomar datos de puerto serie con Delphi4PHP lsg PHP 1 09-08-2008 03:24:37
Quiero tomar datos de puerto serie con Lazarus y PocketPC lsg Lazarus, FreePascal, Kylix, etc. 0 08-08-2008 21:26:42
Capturar datos por el puerto serie mierda Varios 8 05-12-2007 18:23:29
¿Se puede capturar los datos de un puerto serie de otra aplicación? NPIdea Varios 2 06-06-2006 13:45:19
Envio de datos al puerto serie COM1 Niko Varios 5 15-03-2005 18:38:21


La franja horaria es GMT +2. Ahora son las 12:12:35.


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