Go Down

Topic: Transfere de SD sur tableau (Read 12686 times) previous topic - next topic

tricotin

bon je verrais ça demain  :smiley-roll-blue: :smiley-roll-blue:
merci quand même

tricotin

Bonjour
Je doit être bête j'ai cherché toute l'apres midi je n'ai pas trouvé
J'ai convertie mon fichier SD en bin
Je suis sur qu'avec quelques lignes de code je comprendrais  :smiley-eek-blue:

voici mon fichier SD

Code: [Select]
totobin.txt:
110110000010111,
100100111010,
1001011011,
1000110110,
1001011010,
1000110110,
1001011011,
1000110110,
1001011011,
1000110110,
1001011010,
1000110110,
1001011011,
1000110110,
1001011010,
1000110101,
1001011011,
10011000000,
1001000001,
1001010000,
1001000000,
1001010001,
1001000000,
1001010000,
1001000000,
1000110110,
110110000100110,

Artouste

#17
Mar 03, 2014, 12:28 pm Last Edit: Mar 03, 2014, 06:22 pm by Artouste Reason: 1

Bonjour
Je doit être bête j'ai cherché toute l'apres midi je n'ai pas trouvé
J'ai convertie mon fichier SD en bin
Je suis sur qu'avec quelques lignes de code je comprendrais  :smiley-eek-blue:

voici mon fichier SD

Code: [Select]
totobin.txt:
110110000010111,


bonjour
pour les lignes de codes , pas mieux que celles de B@tto exposée plus haut.
Je crois surtout que tu n'a pas compris certaines notions
là ce que tu fait avec des 0 et des 1 ce n'est pas faire un fichier facilement exploitable "typé informatique"
tu rentre simplement des caracteres ascii 0 et 1 , ce ne sont pas  des valeurs numeriques directement  exploitables, comme ce ne l'etait pas plus avec l'ancien.
une tentative d'explication d'un fichier utilisant 2 bytes (poid fort/faible)
les 2 premiers byte (pour faire un INT)  representant la longueur utile du fichier à lire ensuite = là 8 byte à suivre soit 4 INT au final.
le fichier toto2.txt est prechargé avec les valeurs decimales 200,300,400,500
explication de la conversion de 500 pour enregistrement vers le fichier.


toto2.txt
http://cjoint.com/14ma/DCdmvj1aGSI.htm

et un bout de code rapide
Code: [Select]
#include <SD.h>

File myFile;

int valeurs[256];
int val01;
int lfile=0;
byte Bytemsb;
byte Bytelsb;
void setup()
{
  Serial.begin(115200);
 
  SD.begin(4);

  // Transfert valeurs de SD vers Tableau
  myFile = SD.open("toto2.txt",FILE_READ);
  if (myFile!=false) {


    while (myFile.available()) {
      //------------ recherche int longueur tableau
      Bytemsb=myFile.read(); // lecture byte MSB
      Bytelsb=myFile.read(); // lecture byte LSB
      lfile = Bytemsb<<8 | Bytelsb; // reconstitution INT à partir des 2 byte MSB LSB
      lfile=lfile/2; // pas s'emmerder avec un modulo 2 pour test :D
      Serial.print(" A lire : ");
      Serial.print(lfile);
      Serial.println(" INT ");
      for (int lect =0; lect <lfile; lect++) {
        Bytemsb=myFile.read(); // lecture byte MSB
        Bytelsb=myFile.read(); // // lecture byte LSB
        valeurs[lect] = Bytemsb<<8 | Bytelsb; // reconstitution INT à partir des 2 byte MSB LSB

      }



      // lecture des valeurs du tableau chargé de la SD vers moniteur
      for (int i =0; i <lfile; i++) {

        val01=( valeurs[i]);
        Serial.print(val01); 
        Serial.print(" ---> HEX  ");
        Serial.println(val01,HEX);
                   
      }
    }
  }
}
void loop()
{

}




tricotin

Bonjour
C'est super sympa de me consacrer quelle que moments
Je vais essayer ça
Juste un petit problème je n'arrive pas à lire toto2.txt à cette adresse
http://cjoint.com/14ma/DCdmvj1aGSI.htm
Merci beaucoup

Artouste


Bonjour
C'est super sympa de me consacrer quelle que moments
Je vais essayer ça
Juste un petit problème je n'arrive pas à lire toto2.txt à cette adresse
http://cjoint.com/14ma/DCdmvj1aGSI.htm
Merci beaucoup

faire enregistrer la cible du lien  sous sur le lien web
sinon , je l'ai mis en attachement

tricotin

:)
bonjour et merci
je crois que j'ai compris il faut que je travaille sur la sd en HEX

ya quand même un truc que je ne comprend pas

pour ouvrir toto2 je suis obligé de passer par un éditeur HEX ou ya une autre solution?

vue que si je veux lire toto2 directement ça me donne ça   »,êÙ

:smiley-roll-sweat:

Artouste


:)
bonjour et merci
je crois que j'ai compris il faut que je travaille sur la sd en HEX

ya quand même un truc que je ne comprend pas

pour ouvrir toto2 je suis obligé de passer par un éditeur HEX ou ya une autre solution?

vue que si je veux lire toto2 directement ça me donne ça   »,êÙ

:smiley-roll-sweat:


vu que tu travaille en HEX , il faut au moins  un editeur HEX (ce n'est pas ce qui manque)
quand tu lis directement le toto2 , ce que tu vois c'est l'affichage en ascii correspondant à la valeur du byte

tricotin

#22
Mar 05, 2014, 12:42 pm Last Edit: Mar 05, 2014, 12:44 pm by tricotin Reason: 1
Bonjour

C'est bien ce que j'avais compris
Tu va dire que je suis fenian mais si j'ai ,on va dire une trame de 50 valeurs il faut,après les avoirs converties en hex, que je remplisse les bits un à un dans l'éditeur
Si je remplissais la sd directement avec des valeur en hex ça pourrais fonctionner ou pas ?
Vue que tu n'a pas procédé de la sorte avec le fichier toto2 j'ai un petit doute
Sinon merci encore pour les lignes de codes je comprend nettement mieux avec un exemple
:)


Artouste


Bonjour

C'est bien ce que j'avais compris
Tu va dire que je suis fenian mais si j'ai ,on va dire une trame de 50 valeurs il faut,après les avoirs converties en hex, que je remplisse les bits un à un dans l'éditeur
Si je remplissais la sd directement avec des valeur en hex ça pourrais fonctionner ou pas ?
Vue que tu n'a pas procédé de la sorte avec le fichier toto2 j'ai un petit doute
Sinon merci encore pour les lignes de codes je comprend nettement mieux avec un exemple
:)



Pas bits mais byte  8)
pas bien compris ce que tu veux faire, mais si au final le fichier de la SD est correctement rempli , pas de probleme pour que ça foncfionne, peu importe la methode .

tricotin

#24
Mar 05, 2014, 02:54 pm Last Edit: Mar 05, 2014, 03:05 pm by tricotin Reason: 1
Oui "byte" pardon  :smiley-roll-sweat:

En fait la question c'était de savoir si je pouvais remplacer le fichier toto2 qui es en ascii par des valeures en hex comme ça "0x08,0xc8,0x12c,0x190,0x1F4" sur la sd.

Si il fallait séparer les valeurs hex sur la sd avec une virgule ou pas ?

Et aussi si les 2 premiers bytes ici "0x08" sont reservés pour dimensionner le tableau,

la ligne " int valeurs[256]; " est elle toujours utile?





Artouste

#25
Mar 05, 2014, 03:07 pm Last Edit: Mar 05, 2014, 03:10 pm by Artouste Reason: 1

Oui "byte" pardon  :smiley-roll-sweat:

En fait la question c'était de savoir si je pouvais remplacer le fichier toto2 qui es en ascii par des valeures en hex comme ça "0008,00C8,012C,0190,01F4" sur la sd.

Si il fallait séparer les valeurs hex sur la sd avec une virgule ou pas ?


je crois finalement que tu n'a toujours pas compris les notions , si tu evoque une separation par virgule c'est que tu raisonne toujours et encore là ASCII,  une virgule en ascii ça equivaut à un byte HEX=2C DEC=44.

sois tu te tape la construction d'un fichier facilement exploitable en "valeurs"
sois tu gere le "parsing"  (selection/reconstruction) pour faire de la chaine ascii --->  des valeurs numeriques

il y a des choix à faire

tricotin

Ok je vais étudier les deux possibilités et je te dirais

Ça commence à rentrer mais faux le temps

:smiley-red:


tricotin

#27
Mar 05, 2014, 06:42 pm Last Edit: Mar 05, 2014, 06:45 pm by tricotin Reason: 1
En fait c'est tout bête

Les timing en milliseconde que j'ai sont en décimales je les converties en hex je les rentrent dans l'éditeur hex je sauvegarde le tout dans toto2 par exemple
Il me ressort un fichier en ASCII  "toto2" je transfère le tout sur la SD et voilà
Quand pense tu?

Artouste


En fait c'est tout bête

1- Les timing en milliseconde que j'ai sont en décimales je les converties en hex je les rentrent dans l'éditeur hex je sauvegarde le tout dans toto2 par exemple
2- Il me ressort un fichier en ASCII  "toto2" je transfère le tout sur la SD et voilà
3- Quand pense tu?

1- C'est exactement ce que j'ais fais dans mon explication.
2- Tu recupere un fichier, pas un fichier ASCII , la notion ASCII n'existe pas là , n'a aune utilité.
3- Le plus souvent possible !  :smiley-mr-green:

tricotin

Bonjour

Mais alors pourquoi lorsque j'essaye d'ouvrir toto2 en dehors d'un éditeur hex j'obtiens des caractère qui ressemble à des caractère ASCII ,
:(

Go Up