![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Colaboremonos entonces...
Bueno, te cuento una buena..
tengo alguito de experiencia haciendo software para basculas, me facilitaria de harto saber si te estas comunicando directamente con la bascula o estas usando un indicador como intermediario...Yo he hecho la mayoria de estos software en Delphicito y el Java, pero para serte sincero, nunca use ese componente que mencionas...(commport) ... Mejor te sale hacer una cosa, create tu propia libreria de captura de datos por el puerto Serial usando las instrucciones del Window (SDK)... a continuacion te mando el codigo de la unidad que podrias usar... Código:
unit URS232;
interface
uses
Windows, SysUtils;
type
TRS232=class
private
hCommFile : THandle;
sPuerto : String;
public
constructor Create(lsPuerto: String; liBanda:Cardinal;
liByteSize, liParidad, liBitParada:Byte);
function LeerBuffer: string;
procedure EscribirBuffer(lsMensaje:string);
end;
implementation
{ TRS232 }
constructor TRS232.Create(lsPuerto: String; liBanda:Cardinal;
liByteSize, liParidad, liBitParada:Byte);
var CommTimeouts : TCommTimeouts;
CommConfig: TCommConfig;
sizeConfig : Cardinal;
begin
sPuerto := lsPuerto;
hCommFile := CreateFile(PChar(sPuerto),
GENERIC_READ or GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
with CommTimeouts do
begin
ReadIntervalTimeout := 0;
ReadTotalTimeoutMultiplier := 0;
ReadTotalTimeoutConstant := 300;
WriteTotalTimeoutMultiplier := 0;
WriteTotalTimeoutConstant := 200;
end;
if not SetCommTimeouts(hCommFile, CommTimeouts) then
raise Exception.Create(Problemas estableciendo CommTimeouts);
GetCommConfig(hCommFile, CommConfig, sizeConfig);
with CommConfig do
begin
dcb.BaudRate := liBanda;//9600;//38400;//<-- Se comunica a esa velocidad ????
dcb.ByteSize := liByteSize; //8;
dcb.Parity := liParidad;//NOPARITY; //EVENPARITY;
dcb.StopBits := liBitParada;;
end;
if not SetCommConfig(hCommFile, CommConfig, sizeConfig) then
raise Exception.Create(Problemas al querer establecer la configuracion);
end;
procedure TRS232.EscribirBuffer(lsMensaje: string);
var NumberWritten:dword;
begin
if hCommFile = INVALID_HANDLE_VALUE then
raise Exception.Create('No se puede enviar los datos');
WriteFile(hCommFile,
PChar(lsMensaje)^,
Length(lsMensaje),
NumberWritten,
nil);
end;
function TRS232.LeerBuffer: string;
var sTmp:string;
c1:integer;
chBuffer:array[0..255] of char;
NumberOfBytesRead : dword;
begin
if hCommFile=INVALID_HANDLE_VALUE then exit;
if not ReadFile (hCommFile, chBuffer, sizeof(chBuffer),
NumberOfBytesRead, Nil) then
raise Exception.Create('Imposible leer datos desde el puerto');
for c1:= 0 to NumberOfBytesRead - 1 do
sTmp:= sTmp+chBuffer[c1];
result:=sTmp;
end;
end.
Espero te sirva de ayuda cumpa, ami me funca... claro si es que estas trabajando en delphicito... ... cualquier cosa mantengamonos en contacto...Atte.. Jobev Lee |
|
#2
|
||||
|
||||
|
Hola,
Me he tomado la libertad de editar un tanto la unidad que ha publicado Jobev Lee para que esta compile (faltaban simplemente un par de comillas simples en alguna que otra cadena de caracteres) y para mostrarla dentro de las etiquetas DELPHI, tan oportunas en este caso como útiles para quien quiera echar un vistazo al código de la unidad que a continuación copio:
Actualización: Si a alguien le place, puede descargarse la unidad que puede verse más arriba en el archivo que se adjunta a este mensaje. Última edición por dec fecha: 25-08-2005 a las 16:23:27. Razón: (actualización) |
|
#3
|
|||
|
|||
|
Atentos como siempre
Gracias a todos x colaborar estoy probando la unidad que enviaron y la probare .. les comento que el dato es tomado directamente de la bascula en modo ininterrumpido es decir siempre la balanza esta enviado el dato por lo que se muestra en el display de esta se debe reflejar en la pantalla de mi pc Nuevamente gracias Espero que mas colaboren con nuevas ideas para avanzar todos De antemano, Gracias
__________________
IVAND |
|
#4
|
||||
|
||||
Ups.. gracias. cumpa por la correcciòn... jejeje... pero vale..... |
|
#5
|
|||
|
|||
|
Gracias a la invalorable ayuda de mi amigo Fidel por fin he utilizado correctamente los componentes Comport ... con el permiso otorgado por Fidel cualquier compañero que necesite el codigo puede pedirmelo con gusto se los enviare
Atentamente, Iván Dávila
__________________
IVAND |
|
#6
|
|||
|
|||
|
Tengo una balanza XWILD-15P y no consigo de ninguna manera capturar información de ella alguien conoce esta balanza y puede decirme algo se agradeceria la respuesta es bastante urgente.
Un saludo.
__________________
Katalan |
|
#7
|
||||
|
||||
|
Cita:
![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#8
|
||||
|
||||
|
saludos cordiales me parece importante que publiques el trabajo con las librerias y de partida indiques el web site donde se consiguen.
saludos |
|
#9
|
|||
|
|||
|
Hola:
He utilizado la libreria URS232, la cual me permitio usar el constructor Create para crear el puerto pero no logro escribir y leer del mismo alguien podria mandarme un ejemplo sencillo de como leer y escribir. Muchas Gracias |
|
#10
|
|||
|
|||
|
Usar comport
Cita:
******************Podrias facilitarme el codigo fuente para utilizar correctamente el componente comport en delphi 6 para una bascula Datalogic Magellan 8300 / 8400? |
|
#11
|
|||
|
|||
|
Buenas,
Equipo, este es el codigo que estoy utilizando pero no me funciona con la bascula DATALOGIC MAGELLAM 8300, alguien me puede colaborar.
Última edición por Casimiro Noteví fecha: 16-04-2020 a las 12:44:14. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|