ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
6 июля
164579 Топик полностью
Vladimir Ljaschko (25.08.2009 18:06, просмотров: 104) ответил Vit на Мне кажется путается святое с праведным;) - описание + хранение настроек и описание + хранение архива вмешательств - и то и то смесь ужа и ежа.
А я частный случай совпадения размеров записи структуры и использую. Все достаточно удобно. Функции промежуточного уровня доступа к архиву имеет два параметра - тип записи (enum одного из параметров макросов) и номер записи этого типа (например, находится последняя по времени запись в массиве, или индекс этой записи хранится в другой структуре). Но вот внутри этой функции действительно есть некрасивое место определения параметров для функции уже записывающей EEPROM: char GetRecordParametersError(uchar area, uchar index) { switch (area) { case SETUP_DATA: record_parameters.eeprom_offset=OFFSET(EEPROM_TYPE,se[index]); record_parameters.bytes_qty=sizeof(SETUP_DATA_TYPE); record_parameters.ram_address=(uchar *) &se; record_parameters.checksum_address=&se.checksum; break; case FULL_STATISTIC: record_parameters.eeprom_offset=OFFSET(EEPROM_TYPE,stat[index]); record_parameters.bytes_qty=sizeof(FULL_STATISTIC_TYPE); record_parameters.ram_address=(uchar *) &stat; record_parameters.checksum_address=&stat.checksum; break; ... Можно перевести все на константные массивы. Но пока не буду - и так инструментарий много времени занял.