Архитектура такая какая есть. И есть задача написать ПО для панели. И альтернатив у меня нет.Сразу. У автора исходных данных (в том "не Овен" ПЛК) лажовая архитектура данных.
Если уж на то пошло, то с точки зрения разработчика ПО с графическим интерфейсом, вместо такого рода панели лучше выбрать решение в таком же форм-факторе, но на базе например Astra Linux. Писать ПО для этой платформы в разы быстрее и вносить изменения проще. А когда я пытаюсь реализовать пожелания заказчика в Конфигураторе, то кажется что он не помогает мне, а сопротивляется....
Мой изначальный вопрос был не про то как мне читать телеметрию, и не то как изменить её структуру, а про возможность указать компилятору, что поля структуры надо выравнивать не по 4-ем, а по 2-ум или 1-му байту.
И ответ был получен - в большинстве случаев никак.
Валенок, я ещё вчера предложил два варианта, в том числе сделать структуру из 4 регистров и один откинуть, на что был ответ: НИЗЯЯЯЯ!
Ну на нельзя и спроса нет....
Последний раз редактировалось kondor3000; 30.10.2021 в 17:51.
Валенок, сообщение #12.
Не надо ничего удалять, тут не борьба за авторство. Может у ТС изменятся обстоятельства и ваш код пригодится или ещё кому то).
Последний раз редактировалось kondor3000; 03.11.2021 в 02:05.
А критерий лажовости - это отсутствие в телеметрии ПЛК неиспользуемых регистров, которые воткнуты туда только для выравнивания по 4-ех байтовому адресу?Так я и сказал - есть лажовая аритектура данных.
Именно. Почему тогда панель считает себя центром мира и готова работать только с данными, выровненными по 4-ем байтам?Лажовость архитектур данных не является чем-то необычным.
Моим мнением не интересовались. А даже если бы интересовались - узнать заранее из документации на Конфигуратор о том, что выравнивание для полей структур не поддерживается, нельзя. Там об этом ни слова.Ну это ж Ваша проблема что не убедили до принятия ключевых решений
Мне кажется это вы меня не поняли - о том что можно переставлять поля структур и читать с другим смещением мне известно. Я ищу нормальное решение, а не костыли. Но как выяснилось (#5) его нет.Дык ничего и не поняли. Ширше смотрите, ширше - если б возможность и была то ничем бы не помогло ибо Вариант 1, но с Вариантом 2 (см.выше) и любое действие с полем флоата (за исключением, возможно, просто копирования) привело бы к вышеуказанным "воплям в ночи". Т.е. все равно придете к "как мне читать телеметрию, и ... изменить её структуру". Или думаете Вы 1-ый с такого рода проблемой ? ))) Приведён был простейший (имхо) способ решения, причем таки без изменения структуры - или тоже не поняли ?
Но не с инструментом разработки!Все прогерство это борьба с чем-то.
Последний раз редактировалось andemeno; 31.10.2021 в 18:37.
Да ну нет же! Получилось бы {мой ворд; мой флоат;}! И все, и больше ничего неявного и ненужного. Но сделать так нельзя, можно только с неявным вордомВы хоть думаете что говорите ? Ну поддерживалось бы - и что ? Получили бы {ваш_ворд, неявный_ворд, флоат}.