2009-06-03 1 views
4

J'ai cette chaîne que je reviens d'Adobe Presenter 7. Il est appelé suspend_data et est de type CMIString4096 (by the docs)Qu'est-ce que CMIString4096 et comment puis-je extraire les données qu'il contient?

CMIString4096 Un ensemble de caractères ASCII d'une longueur maximale de 4096 caractères.

C'est la chaîne:

aG1111111000000000BB001EC% 2EacC% 7E% 24GS% 2AayjHm110BKCBBB0B0EBAB1B1ED% 2EicC% 7E% 24GS% 2AlfkHm110BKDBCB0B0EBBB0B0EBAB1B1EE% 2EwcC% 7E% 24GS% 2ACBlHm100BKDB2BCBCDB1BABBDB0BBBADF% 2E7cC% 7E% 24GS% 2A4GmHm110BKBB0Ebl % C3% A1rRbl% C3% A1r% 3Bgr% C3% A6nn% 3Brau% C3% B0urB

Il ressemble à base64 avec quelques personnages urlencoded. Quand je urldecode() la chaîne, les derniers caractères ressemblent à des données mais c'est dans utf8, puis je l'utf8_decode et vois ça.

aG1111111000000000BB001EC.acC~$GS*ayjHm110BKCBBB0B0EBAB1B1ED.icC~$GS* 
lfkHm110BKDBCB0B0EBBB0B0EBAB1B1EE.wcC~$GS*CBlHm100BKDB2BCBCDB1BABBDB0BBBADF. 
7cC~$GS*4GmHm110BKBB0EblárRblár;grænn;rauðurB 

Ok, je suis plus proche de certaines données (à la fin), mais il semble toujours que c'est un gâchis. Quand je base64_decode() je reçois un binaire, mais je ne sais pas ce que c'est.

Est-ce que quelqu'un sait ce que ces données sont et comment je peux en avoir un sens? J'utilise PHP btw donc seules les fonctions en son sein sont applicables.

Répondre

4

Les données stockées dans le champ cmi.suspend_data sont simplement un ensemble de données que le SCO (le contenu) peut utiliser pour conserver son état actuel. Il n'y a pas de signification sémantique ou de structure définie pour les données. Dans de nombreux cas, la signification des données peut être devinée ou inversée, mais cela ne semble pas être le cas avec le contenu produit par Adobe Presenter.

Le champ suspend_data est limité à 4096 caractères ASCII. Pour certains SCO, cela ne fournit pas assez de stockage pour conserver complètement l'état actuel.Dans de nombreux cas, un développeur de contenu confronté à cette situation appliquera un algorithme de compression aux données d'état afin de le compresser dans la taille limitée. Il semble que c'est ce que fait Adobe Presenter ici. Ma supposition est qu'ils ont compressé leurs données à l'état non codé que vous avez trouvé, puis appliqué l'encodage d'URL pour s'assurer que tous les caractères résultants pouvaient être envoyés en toute sécurité au LMS.

La chaîne de 1 et 0 au début des données de suspension peut être quelque chose de significatif. Il pourrait probablement correspondre à quelles diapositives du cours ont déjà été vues par l'apprenant. Pour vérifier cela, il peut être utile de lancer le cours à travers un outil comme SCORM TestTrack (disponible gratuitement au scorm.com) et d'utiliser les journaux de débogage générés pour voir comment les données suspendues changent au fur et à mesure que l'utilisateur progresse dans le cours. SCORM fournit un certain nombre d'autres éléments de modèle de données qui ont une signification spécifique liée à l'état actuel du cours. Voici un list of all available data model elements. Les journaux de débogage SCORM TestTrack vous montreront également lequel de ces éléments de modèle de données utilise le contenu Adobe Presented.

+0

Super réponse, merci :) –

1

Je ne pense pas que SCORM définit ce que contient le champ suspension_data ou dans quel format. Ceci est entièrement à la hauteur du contenu/leçon (Adobe Presenter dans votre cas), mais il ne peut s'agir que de texte et est limité à 4096 caractères.

Ce champ peut être utilisé par le contenu pour stocker tout type d'état qui doit être retransmis au contenu au prochain démarrage.

+0

Donc, ce n'est que du courrier indésirable qu'Adobe Presenter utilise pour une raison quelconque? –

1

Trouvé

13. cmi.suspend_data

lecture/écriture

destiné à agir comme un emplacement pour stocker toute information qu'un SCO aimerait persister jusqu'à ce qu'un session suivante.

dans here. Alors que Martin a écrit SCORM ne définit que le type de données et non le codage ou le contenu de cmi.suspend_data. Peut-être this pourrait vous aider à déterminer l'encodage.

Questions connexes