Что такое CMIString4096 и как я могу извлечь данные из него?

StackOverflow https://stackoverflow.com/questions/944582

  •  09-09-2019
  •  | 
  •  

Вопрос

У меня есть эта строка, которую я получаю обратно из Adobe Presenter 7.Он называется suspend_data и имеет тип CMIString4096 (по документам)

CMIString4096 Набор символов ASCII максимальной длины из 4096 символов.

Это и есть строка:

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

Это выглядит как base64 с некоторыми urlencoded символами.Когда я urldecode() строки, последние несколько символов напоминают некоторые данные, но они в utf8, тогда я utf8_decode это и вижу это.

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

Хорошо, я ближе к некоторым данным (в конце), но все равно похоже, что это беспорядок.Когда я использую base64_decode(), я получаю некоторый двоичный беспорядок, но я не знаю, что это такое.

Кто-нибудь знает, что это за данные и как я могу извлечь из них какой-то смысл?Кстати, я использую PHP, поэтому применимы только функции внутри него.

Это было полезно?

Решение

Данные, хранящиеся в поле cmi.suspend_data, - это просто набор данных, которые SCO (содержимое) может использовать для сохранения своего текущего состояния.У данных нет семантического значения или определенной структуры.Во многих случаях значение данных можно угадать или сконструировать наоборот, но, по-видимому, это не относится к контенту, созданному Adobe Presenter.

Поле suspend_data ограничено 4096 символами ASCII.Для некоторых SCOS это не обеспечивает достаточного объема памяти для полного сохранения текущего состояния.Во многих случаях разработчик контента, столкнувшийся с таким затруднением, применяет алгоритм сжатия к данным состояния, чтобы втиснуть их в ограниченный размер.Похоже, именно этим здесь занимается Adobe Presenter.Я предполагаю, что они сжали свои данные до найденного вами некодированного состояния, затем применили кодировку URL, чтобы гарантировать, что все результирующие символы были безопасны для отправки в LMS.

Строка из 1 и 0 в начале данных suspend может быть чем-то значимым.Скорее всего, это может соответствовать тому, какой из слайдов курса был ранее просмотрен учащимся.Чтобы убедиться в этом, может быть полезно запустить курс с помощью такого инструмента, как SCORM TestTrack (свободно доступен по адресу scorm.com) и используйте сгенерированные журналы отладки, чтобы наблюдать, как изменяются данные приостановки по мере прохождения пользователем курса.

SCORM предоставляет довольно много других элементов модели данных, которые имеют конкретное значение, относящееся к текущему статусу курса.Вот такой список всех доступных элементов модели данных.Журналы отладки SCORM TestTrack также покажут вам, какие из этих элементов модели данных использует контент, представленный Adobe.

Другие советы

Я не думаю, что SCORM определяет, что содержит поле suspend_data или в каком формате оно находится.Это полностью зависит от содержания / урока (в вашем случае Adobe Presenter), но это может быть только текст, размер которого ограничен 4096 символами.

Это поле может использоваться содержимым для хранения любого состояния, которое должно быть передано обратно содержимому при следующем его запуске.

Найденный

13.cmi.приостановить_данные

Чтение / Запись

Предназначен для использования в качестве местоположения для хранения любой информации, которую хотел бы получить SCO сохраняться до следующего сеанса.

в здесь.Так как Мартин написал, что SCORM определяет только тип данных, а не кодировку или содержимое cmi.приостановить_данные.Возможно это мог бы помочь вам в определении кодировки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top