COMPOSANTS GPS

sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 - 17 oct. 2012 à 10:05
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 - 17 oct. 2012 à 10:07
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52477-composants-gps

sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
17 oct. 2012 à 10:07
Bon, bé les balises de code ne fonctionnent pas ici...
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
17 oct. 2012 à 10:05
Salut,

Petite composant sympathique (TGPS) !

Je l'ai modifié pour mes besoins, mais peut être que ça peut intéresser du monde (et puis un avis sur ces modifs peut être le bienvenu...).

La modification consiste en l'ajout d'un filtre pour ne récupérer qu'un certain type de trames.

J'ai ajouté : (je ne sais pas si les balises de code fonctionnent ici... on va bien voir)
  TGPS = class (TComponent)
  private
    ...
    FMsgFilter : TMsgGP;
    FMsgFiltered : Boolean;
    ...
  published
    ...
    property MsgFilter : TMsgGP read FMsgFilter write FMsgFilter default msgGP;
    property MsgFiltered : Boolean read FMsgFiltered write FMsgFiltered default False;
    ...


et sur :

procedure TGPS.PacketRecv(Sender: TObject; const Str: String);
        ...
        // Get the message type
        TypeMsg := MidStr(Resultat[0], 4, 3);

        // initialisation 
        with FGPSDatas do begin
             Latitude := 0;
             Longitude := 0;
             HeightAboveSea := 0;
             Speed := 0;
             UTCTime := now;
             Valid := True;
             NbrSats := 0;
             NbrSatsUsed := 0;
        end;

        // Test sur filtre
        if (MsgFiltered and (IndexMsgGP(TypeMsg) = FMsgFilter))
           or not MsgFiltered then begin
           // Retrieves data based on message type
           case IndexMsgGP(TypeMsg) of
                msgGPGGA: begin



Je me pose une question sur l'initialisation de la variable valid (true par défaut...)
Rejoignez-nous