El 16/07/2013 09:28, "Antonio �vora" <aevorar en gmail.com> escribi�:
El 15/07/13 21:54, Maxi escribi�:
>
> El d�a 14 de julio de 2013 09:09, Antonio �vora <aevorar en gmail.com>
escribi�:
Show quoted text 8 lines
>>
>> El 12/07/13 14:41, Maxi escribi�:
>>
>>> El d�a 12 de julio de 2013 09:19, Antonio �vora <aevorar en gmail.com>
>>> escribi�:
>>>>
>>>> Estimados compa�eros,
>>>> Estoy depurando una aplicaci�n que recibe informaci�n de un GPS
usando el
>>>> protocolo NMEA y configurado para que envie solamente tramas GGA y
GSA.
>>>> La
>>>> conexion con el pc es mediante usb (usando un conversor COM-USB pues
el
>>>> puerto original de GPS es COM, esta conversi�n es necesaria pues el
pc no
>>>> tiene puerto COM) y es reconocido como un COM virtual. En mi
aplicaci�n
>>>> uso
>>>> synaser (ultima version disponible en sus repositorios) para la
>>>> comunicaci�n
>>>> llamando al m�todo Recvstring de la clase TBlockSerial llamada desde
un
>>>> timer (probado con distintos intervalos de tiempo) y me encuentro con
los
Show quoted text 8 lines
>>>> siguientes problemas:
>>>>
>>>> * Problema de inicializaci�n:
>>>> Si arranco la aplicaci�n no recibe ning�n dato del GPS, para que
>>>> empiece
>>>> a recibir datos tengo que:
>>>> - Cerrar la aplicaci�n
>>>> - Abrir hyperterminal, conectarme al GPS (este empieza a
recibir
>>>> tramas) y cerrar hyperterminal
>>>> - Abrir la aplicaci�n y empiezo a recibir tramas
>>>> Con esto intuyo que hyperterminal hace alg�n tipo de
inicializaci�n
Show quoted text 7 lines
>>>> del
>>>> dispositivo que no hace TBlockSerial
>>>>
>>>> * Problema en la recepci�n de tramas:
>>>> Hay tramas que llegan solapadas unas con otras, por ejemplo:
>>>>
>>>>
$GPGSA,M,3,11,03,16,06,18,22,08,19,01,,,,3.14,1.72,2$GPGGA,194255.90,xxxx.xxxxxxx,N,yyyyy.yyyyyyy,W,4,09,2.09,144.4792,M,49.7596,M,0.9,0000*68
Show quoted text 12 lines
>>>>
>>>> * Inversi�n del orden de las tramas:
>>>> Supuestamente la recepci�n de tramas deber�a ser:
>>>> TramaGGA
>>>> TramaGSA
>>>> ...
>>>> TramaGGA
>>>> TramaGSA
>>>> ...
>>>> TramaGGA
>>>> TramaGSA
>>>> Sin embargo durante la recepci�n se ven invertidas, esto no se si
puede
>>>> ser
>>>> debido problema anterior.
>>>>
>>>> El problema debe de estar en la implementaci�n del TBlockSerial o en
el
Show quoted text 32 lines
>>>> conversor COM-USB. Yo personalmente me inclino por el conversor (estoy
>>>> trabajando a 115200 baudios) que no da a bastos.
>>>>
>>>> Un cordial saludo y gracias de antemano.
>>>>
>>>>
>>>> _______________________________________________
>>>> Lazarus-es mailing list
>>>> Lazarus-es en lists.lazarus.freepascal.org
>>>>
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>>>>
>>> No es el conversor, de seguro.
>>> Primero, quien enia datos? el gps? lo consultas o solo transmite?
>>> Si lo consultas si es valido el timer, pero ten en cuanta de
>>> inhabilitar el timer para no solapar llamadas y datos hasta que
>>> termine de recibir.
>>> Si el gps transmite solo a intervalos, no uses el timer, deja que
>>> synaser reciba datos cuando llegan realmente y debes controlar que se
>>> cumpla el bloque esperado sino lo descartas, aveces pasa que se
>>> pierden bits y hasta que no llega otro paquete no se completa el
>>> bloque y recibes informacion falsa.
>>> Verifica que tipo de handshake usa el gps, es el unico caso en que el
>>> adaptador pueda fallar porque no siempre implementan algunos de estos
>>> DTR,RTS,CTS,DSR.
>>>
>>> Cuenta un poco mas
>>> --
>>> El que pregunta aprende, y el que contesta aprende a responder.
>>>
>>> No a la obsolecencia programada:
>>>
>>>
http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml
Show quoted text 11 lines
explico
>> mejor lo que pretendo hacer:
>> Tengo un GPS el cual debe darme la posici�n, la cual debo sincronizar
con la
>> lectura de un term�metro (conectado tambi�n mediante COM), para asignar
>> temperatura a una posici�n concreta.
>> Otro problema con el que me encuentro es el de poder sincronizar estas
>> lecturas, ya que el term�metro es capaz de darme una medida por segundo
y el
>> GPS 10.
>> Supongo que para hacer lo que me cuentas debo de usar el evento
OnStatus (lo
Show quoted text 26 lines
>> acabo de ver). �Puedes instruirme con un ejemplo sencillo?
>>
>>
>> Un cordial saludo y gracias de antemano.
>>
>> _______________________________________________
>> Lazarus-es mailing list
>> Lazarus-es en lists.lazarus.freepascal.org
>>
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
> 10 veces por segundo me parece mucho, pero deberias llevar 2 registros
> 1 con los datos del gps y otro con los del termometro, puedes tomar el
> de menor tiempo como base o el del gps y repetir el valor de la
> lectura del termometro.
> Dependiendo que prioridad tienes.
> Yo leeria el termometro, despues habilito la lectura del gps, hago una
> sola lectura y deshabilito. anoto esos datos y espero la proxima
> lectura del termometro. a los fines practicos una lectura por segundo
> en mas que suficiente incluso para ir marcando en un mapa, a menos que
> se trate de algo muy preciso.
>
> --
> El que pregunta aprende, y el que contesta aprende a responder.
>
> No a la obsolecencia programada:
>
http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml
Show quoted text 11 lines
teniendo es el problema de inicializaci�n, copio y pego de mi primer post:
* Problema de inicializaci�n: Si arranco la aplicaci�n no recibe
ning�n dato del GPS, para que empiece a recibir datos tengo que: - Cerrar la aplicaci�n - Abrir hyperterminal, conectarme al GPS (este empieza a recibir tramas) y cerrar hyperterminal - Abrir la aplicaci�n y empiezo a recibir tramas Con esto intuyo que hyperterminal hace alg�n tipo de inicializaci�n del dispositivo que no hace TBlockSerial
Es decir sin arrancar previamente Hyperterminal no hay tramas que valga
:-(
Show quoted text 39 lines
Inicializo los puertos COM con el siguiente codigo:
FCOM.Connect(FPuerto);
ConfiguraPuerto();
Inicializa();
Siendo FCOM del tipo TBlockSerial y:
procedure TMamboSensorCOMBase.ConfiguraPuerto;
var
ParidadText: char;
begin
if not FConnected then
begin
exit;
end;
case FParidad of
ptEven:
begin
ParidadText:='E';
end;
ptOdd:
begin
ParidadText:='O';
end;
ptMarked:
begin
ParidadText:='M';
end;
ptSpaced:
begin
ParidadText:='S';
end;
else
ParidadText:='N';
end;
FCOM.Config(FBaudios,FBitsDatos,ParidadText,FBitsParada,FControlFlujoSoftware,FControlFlujoHardware);
Show quoted text 27 lines
end;
procedure TMamboSensorCOMBase.Inicializa;
var
n: integer;
begin
if not FConnected then
begin
exit;
end;
for n:=0 to FScriptInicializacion.Count-1 do
begin
if FCOM.CanWrite(2000) then
begin
FCOM.SendString(FScriptInicializacion[n]);
end;
end;
end;
Gracias de antemano.
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
Revisa los ejemplos de synaser, me parece que estas conectando y despu�s configuras el puerto y es al revez.
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130716/434cff60/attachment-0001.html>