powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Впихнуть структуру произвольных данных в 128 байт
25 сообщений из 52, страница 1 из 3
Впихнуть структуру произвольных данных в 128 байт
    #38223653
Nutz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть внешний носитель информации встроенный в один прибор.
Объем памяти 128 ячеек памяти. Нужно чтобы пользователь мог сохранять там свои данные вот таких форматов.

1. Строка символов произвольной длинны (размером не больше доступной памяти)
2. Дата
3. Целое беззнаковое число размером 2 байт
4. Бит или произвольное количество битов

Проблема придумать структуру заголовка, который будет описывать формат данных хранящихся в ячейках памяти. Размер структуры должен быть минимален, ведь он будет храниться в тех же 128 байтах памяти. Может есть примеры как это реализовать?
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223690
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
экономить нужно каждый бит или достаточно каждый байт?
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223692
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стандартно, вроде...

Тип переменной (1 байт):
1: Строка
2: Дата
3: Число
4: Массив битов

В случае 1 и 4 еще один байт, означающий длину последующих данных (символов или битов/байтов).
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223710
Nutz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftэкономить нужно каждый бит или достаточно каждый байт?

Желательно впихнуть как можно больше информации. Проблема в том, что данные в памяти могут сохраняться разных типов. Строки, целые числа, биты. В любом сочетании.
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223715
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nutzmiksoftэкономить нужно каждый бит или достаточно каждый байт?Желательно впихнуть как можно больше информации.Все же хотелось бы знать до какой степени ужимать? Ведь чем сильнее ужимать, тем сложнее будет оперировать с такими данными.
Например, под дату можно отвести два байта, а можно и полтора, если известно, что актуальный период дат укладывается в 11 лет.
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223718
Nutz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanСтандартно, вроде...
В случае 1 и 4 еще один байт, означающий длину последующих данных (символов или битов/байтов).

Использовать байт со строками слишком расточительно. Он ведь может адресовать 256 ячеек, а память максимум 128. А с битами его не хватит, потому как надо адресовать 1024 бита.
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223728
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NutzОн ведь может адресовать 256 ячеек
Превышение пределов должно контролироваться ПО, которое и обращается к этим 128-ми байтам.
Если строки строго в латинице, то на байт - 2 символа.

NutzА с битами его не хватит
А кто сказал, что ограничиваться нужно одним идентификатором?
0x04 0xFF (тут 32 байта с битами)
0x94 0xFF (тут еще 32 байта с битами)
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223734
Nutz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftНапример, под дату можно отвести два байта, а можно и полтора, если известно, что актуальный период дат укладывается в 11 лет.

Дата может отличаться на минус 500 лет, верхний предел допустим 20 лет.
Т.е. временной интервал от 1513 года до 2033 года.
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223737
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nutz,

И еще - снаружи вообще ничего не хранится, даже информации о структуре заголовка? Или все-таки какая-то метаинформация может храниться где-то еще (например, неявно в коде ПО) ?
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223743
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NutzmiksoftНапример, под дату можно отвести два байта, а можно и полтора, если известно, что актуальный период дат укладывается в 11 лет.Дата может отличаться на минус 500 лет, верхний предел допустим 20 лет.
Т.е. временной интервал от 1513 года до 2033 года.Это 18 бит нужно под дату. Если хранить ее в фиксированном формате.
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223745
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В любом случае, поскольку используются типы с переменной длиной (строка и массив), вам придется выделить 2 байта под описание структуры (2 бита - тип данных, 10 бит - длина, 4 бита - резерв), так что под данные у вас останется 126 байт. С другой стороны, можно расширить количество использумых типов, оперировать 7,6,5-битовым алфавитом для строк или массивом типов (чисел или дат) и т.п.
Самое главное - единовременно хранится только один набор данных (только дата или только строка или...)?
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223750
Nutz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

Метаинформация может храниться. Чтобы было понятней проясню ситуацию. Речь идет о RFID-метках на книги и документы. У нее 128 байт перепрограммируемой памяти. Туда желательно впихнуть максимум информации о документе.
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223757
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nutz, тогда проще полный штрих-код туда писать.
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223761
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или документы более нигде не идентифицируются?

Тогда присвоить ему этот самый код. Будет что-то вроде ID документа.
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223766
Nutz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

UID - в 7 байтов у этой метки уже есть. Он конечно может храниться в базе. Но какой срок жизни этой базы? Она может сгинуть через несколько лет. А исторический документ хранится в архиве десятки и сотни лет. RFID-метка может быть живой 30-40 лет. Поэтому важно впихнуть в нее максимум информации. Даже если база пропадет, чтобы что-то можно было вытащить из метки.
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223767
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А. тогда да... А то я сначала неправильно поспринял постановку.

Конечно, если ещё есть задача иметь возможность автономно считывать данные о книге/документе - так всё не надо навороченной структуры: ID/ШК + остальное место под простой текст.
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223773
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NutzРечь идет о RFID-метках на книги и документы. У нее 128 байт перепрограммируемой памяти. Туда желательно впихнуть максимум информации о документе.
При этом большинство данных (по размеру) всё-таки окажется строковым. Значит, весь пакет данных будет подвергаться сжатию (пусть и небольшому). Осталось прошерстить алгоритмы сжатия, которые наиболее компактно ужимают данные небольшого размера... Думаю, что представление всех данных в виде строкового литерала с разделителями (тот же CSV) будет более разумным вариантом. Сигнатура сжатым данным не требуется (отнесём её ко внешним метаданным). К внешним же метаданным отнесём и репарсер данных после декомпрессии. Последовательность битов придётся кодировать тем же UUE или Base64, но это вряд ли смертельно.
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223775
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NutzНо какой срок жизни этой базы?
При желании не меньше, чем у документа.
NutzА исторический документ хранится в архиве десятки и сотни лет.
Вот тут совсем не понятно... Если документ целый, но что такого полезного можно прочитать из метки? А если он уничтожен, то и метка не поможет особо. Хотя если она читается, то из базы можно поднять любую информацию о документе, которая была занесена ранее.
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223779
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanХотя если она читается, то из базы можно поднять любую информацию о документе, которая была занесена ранее.
Вплоть до самого документа, к которому тут-же наклепать новую метку (копию старой метки).
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223782
Nutz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алгоритм не должен быть слишком сложным. Это в некотором роде послание в будущее.
Он должен быть записан на бумаге и в случае необходимости легко восстановлен через десятки лет. Чтобы потомки могли прочитать данные с RFID-метки, если до них не дойдет база данных, или библиотеку сожгут, уничтожат в результате войн и катаклизмов. Останутся только отдельные документы с метками и описание алгоритма.
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223788
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NutzЧтобы потомки могли прочитать данные с RFID-метки, если до них не дойдет база данных, или библиотеку сожгут, уничтожат в результате войн и катаклизмов.
Ну... Тут только XML поможет...
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223794
Nutz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanЕсли документ целый, но что такого полезного можно прочитать из метки? А если он уничтожен, то и метка не поможет особо. Хотя если она читается, то из базы можно поднять любую информацию о документе, которая была занесена ранее.

Оклеиваются метками не только целые документы, а разрозненные листы связанные между собой, ветхие и т.д. В метку сохраняются специальные инвентарные библиотечные поля: EAS, AFI, ID, ISIL, учет комплектов, количество частей, номер части, дополнительные ID инвентаризации и т.д.
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223812
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nutzбиблиотеку сожгут, уничтожат в результате войн и катаклизмов. Останутся только отдельные документы с метками и описание алгоритма.
Метки по определению не являются хранилищем данных, а только идентификатором-связкой. Так что не надо на них возлагать несвойственные функции.

Ну и вообще - проще стразу оцифровывать документы и хранить ЭБД хоть в миллионах копий. Потомкам будет проще найти инфу на электронных носителях...
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223816
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nutz, разве что еще можно задействовать транскрипцию и хранить символы строк только в половине байта.
...
Рейтинг: 0 / 0
Впихнуть структуру произвольных данных в 128 байт
    #38223849
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Общие рецепты:
1) Часть полей, наличие которых обязательно (например, дата документа, количество страниц и т.п.) для всех документов и формат которых допускает запись фиксированной длины, располагать в начале и не сопровождать мета-информацией.
2) Строковое поле переменной длины расположить в конце и тоже не сопровождать мета-информацией, даже длиной. Лишние байты записывать фиксированным содержимым, например, нулями.
3) Для строк использовать сокращенные алфавиты в 6-7 бит. Можно, кстати, и дробное количество бит. Например, пару символов кодировать 13 битами.
4) Если алфавит использует не все возможные комбинации битов, то можно не хранить длину, а использовать определённую комбинацию битов как терминатор строки.
5) Можно строго документировать тип и порядок максимально возможного набора полей, но хранить не все, а только реально заполненные. Для всех необязательных для заполнения полей хранить маску битов для обозначения факта наличия поля. Потенциально, так можно будет сэкономить на указании типов полей.
...
Рейтинг: 0 / 0
25 сообщений из 52, страница 1 из 3
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Впихнуть структуру произвольных данных в 128 байт
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]