A la recherche GPS sans port Serie

Bonjour,

un truc comme cela pour le code string

String anss = String(ans);
  anss.remove(0,(anss.indexOf("DIST1 3F800000 00000000 FFEDB080 2710 F1 ")+41));
  for (int index = 1; index < 1001; index++)
    {
      String Value = anss.substring(0,anss.indexOf(" "));
      char value[4];
      Value.toCharArray(value,4);
      int number = (int)strtol(value,NULL,16);
      anss.remove(0,anss.indexOf(" ")+1);
    }

mais en commentant ces lignes, on gagne seulement 1% ...

Cordialement

A quoi ressemble la string et que voulez vous extraire ?

la dsrtign est longue, avec des meta données.

Le seule intérêt c'est l'extraction des numbers (int) .

Cordialement

quand vous faites celaString anss = String(ans);vous doublez le besoin en mémoire puisque vous créez une String qui va recopier le buffer ans

Quand vous faites cela anss.remove(0,(anss.indexOf("DIST1 3F800000 00000000 FFEDB080 2710 F1 ")+41));vous créez (temporairement) une nouvelle String pour faire l'extraction. Si la string est très longue vous avez donc déjà fait quasiment x3 sur le besoin mémoire

Quand ensuite vous faites cela String Value = anss.substring(0,anss.indexOf(" "));vous recréez encore une fois une String en mémoire...

et idem pour la String temporaire à la fin quand vous faites

 anss.remove(0,anss.indexOf(" ")+1);

qui est à nouveau couteux.

Toutes ces opérations mettent de la pression sur la RAM et ne sont sans doute pas nécessaire.

Vous pouvez sans doute utiliser plus avantageusement strtok(), strchr(), strstr() et strtol() pour extraire les valeurs.

Si vous me donnez un exemple du buffer ans[] je peux jeter un oeil

Re bonjour,

je vais regarder ... la trame est compliquée mais avec un strtok je devrais m'en sortir (seul les " " divise la trame").
Je reviens à vous au besoin.

Aucune fonction remove pour les char ?

Cordialement

Aucune fonction remove pour les char ?

Non mais elle n'est généralement pas nécessaire.

Avec strtok() sur les séparateurs ou strstr() vous allez parcourir le chaîne et vous positionner au bon endroit pour la prochaine analyse.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.