У меня есть структура C, которая позволяет пользователям настраивать параметры встроенной системы. В настоящее время графический интерфейс, который мы используем для этого, специально написан для каждой версии этой структуры конфигурации. Я хотел бы иметь возможность описывать элементы структуры в некотором формате, который может быть прочитан клиентским приложением конфигурации, что делает его универсальным для всех наших систем.
Я экспериментировал с описанием структуры в XML и заставлял клиента читать файл; это работает в большинстве случаев, кроме тех, где некоторые поля взаимозависимы. Таким образом, формат, который я использую, должен иметь способ их указать; например, элемент A всегда должен быть меньше или равен половине элемента B.
Заранее спасибо за ваши мысли и предложения.
ИЗМЕНИТЬ:
Прочитав первый ответ, я понял, что мой вопрос действительно слишком расплывчатый, поэтому вот еще одна попытка:
Встроенная система должна иметь доступ к данным в виде структуры C, запуск любого другого языка на процессоре невозможен. По сути, все, что мне нужно, это способ определить метаданные со структурой, эти метаданные будут загружены на флэш-память вместе с прошивкой. Утилита конфигурации клиента затем прочитает файл метаданных через RS-232, CAN и т. д. и заполнит окно (древовидное представление), которое пользователь может затем использовать для редактирования параметров.
XML-файл, о котором я упоминал, делал именно это, он содержал имя члена структуры, тип данных, количество элементов и т. д. Расположение члена в XML-файле неявно определяло его положение в структуре C. Этот файл находится на флэш-памяти и считывается программой конфигурации; единственное, чего не хватает, — это способа определения зависимостей между полями структуры.
Код генерируется автоматически с помощью MATLAB / Simulink, поэтому у меня есть доступ к языку сценариев, чтобы помочь с созданием структуры. Например, если я в конечном итоге использую XML, структура будет определена только в формате XML, и я буду использовать сценарий для создания структуры C во время генерации кода.
Надеюсь, это понятнее.