petit_switch | Bonjour à tous J'ai besoin d'aide pour décoder un bloc de données afin d'en extraire un message texte :
Ces blocs de données sont extraits de la mémoire de mon téléphone (SAMSUNG SGH E100), il s'agit de SMS non-reconnus par le logiciel de gestion mis à disposition par SAMSUNG.
Ce logiciel( EasyStudio ou PIMS & File manager ) permet d'archiver les SMS depuis un mobile samsung vers un PC mais il se limite aux SMS d'1 page maxi ( 160 caractères ). Les données des SMS d'une taille supérieure sont codées puis étalées sur autant de slot mémoire que nécessaire. Le logiciel de SAMSUNG ignore ces SMS (il n'affiche aucune donnée), le transfert des SMS se fait par port infrarouge, j'ai donc utilisé "HDD Serial Monitor" pour capturer les données échangées entre le logiciel de SAmsung et mon téléphone portable.
Après de longues heure de galère j'ai obtenu des données , un SMS de 2 pages se présente sous cette forme :
[...]
AT+CMGR=50
+CMGR: "STO UNSENT","","",0,65,0,241,"",68,161
0500030E020182C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0601
AT+CMGR=52
+CMGR: "STO UNSENT","","",0,65,0,241,"",49,19
0500030E020282C16030180C0683
[...] |
AT+CMGR=50 est la commande envoyée par le logiciel de SAMSUNG pour intérroger un slot mémoire.
+CMGR: est la réponse du téléphone suivi des données utiles :
"STO UNSENT","","",0,65,0,241,"",68,161 0500030E020182C16030 [...]
La partie soulignée est la partie qui m'intéresse. J'ai enregistré dans mon téléphone des messages de 2 pages : - 1 ne contenant que des A
- 1 ne contenant que des B
- 1 ne contenant que des C
- 1 ne contenant que des AB
- 1 ne contenant que des ABCDEFGHIJKLMNOPQRSTUVWXYZ
une fois ces messages récupérés grace à HDD Serial Monitor je les ai comparés : Le message ne contenant que des A est retourné ainsi:
+CMGR: "STO UNSENT","","",0,65,0,241,"",65,161
050003 7A 0201 82 C160 30180C06 83 C160 30180C06 83 C160 30180C06 83 C160 30180C06 83 C160 30180C06 83 C160 30180C06 83
C160 30180C06 83 C160 30180C06 83
C160 30180C06 83
C160 30180C06 83
C160 30180C06 83
C160 30180C06 83
C160 30180C06 83
C160 30180C06 83
C160 30180C06 83
C160 30180C06 83
C160 30180C06 83
C160 30180C06 83
C160 30180C06 01
+CMGR: "STO UNSENT","","",0,65,0,241,"",44,38
050003 7A 0202 82 C160 30180C06 83 C160 30180C06 83 C160 30180C06 83 C160 10 |
J'en ai conclu que :
050003 est commun à tous les messages de plus de 160 caractères
7A est un octet qui permet de lier les slots d'un même SMS (cet octet est différent pour chaque SMS)
0202 2 octets qui permettent d'organiser les slots (0201 pour page 1 de 2 et 0202 pour page 2 de 2)
pour le reste je suis perdu, 82 pourrait être la somme de 2 A (code ascii 0x41 ??? ) Je sais que ce serait surement plus rapide recopier tout les SMS à la main sur le PC mais j'aimerai trouver la solution de ce problème Avis aux amateurs de codage, un coup de pouce serait (extremement) bienvenu, s'il manque des infos necessaires au décodage (d'autres exemples de SMS etc...) demandez moi merci d'avance à ceux qui m'aideront
|