_Pasha 0 13 февраля, 2009 Опубликовано 13 февраля, 2009 · Жалоба минусы: - назовите сами :) Да не переживайте так, нету минусов :) Вообще, выкладывать юзеру параметры в плавучке - это не есть хорошо. Значит, что-то в консерватории не так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 121 13 февраля, 2009 Опубликовано 13 февраля, 2009 · Жалоба минусы: - назовите сами :) Сам так делал, еще на асме и на 74 пике :) У меня была структура "параметры редактирования", которая включала в себя: - количество знакомест при редактировании - количество знаков после запятой (если 0 - точка не выводится) - знаковое/беззнаковое число - минимальное и максимальное допустимое значение. Если при сохранении число выходит за диапазон - сохранение не происходит, выдается злобный сигнал, число заменяется максимумом или минимумом, пользователю предлагается продолжить редактирование. Функции передавался указатель на число и указатель на такую структуру. Таким образом одна процедура использовалась для редактирования самых разнообразных параметров. Недостаток только один - этот метод не подходит, если положение точки не фиксировано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 13 февраля, 2009 Опубликовано 13 февраля, 2009 · Жалоба Функции передавался указатель на число и указатель на такую структуру. Таким образом одна процедура использовалась для редактирования самых разнообразных параметров. Недостаток только один - этот метод не подходит, если положение точки не фиксировано. +1 То же самое плюс флаг read_only, селектор источника, откуда берется число (SRAM/EEPROM/FLASH/SPECIAL) SPECIAL - в этом случае будет указатель на функцию, возвращающую требуемое число В особо извращенных случаях добавлялись хинтовые строки для выдачи в UART, что это за параметр еще и на двух языках: английском и матерном родном. :) Ужас У человека в цеху несколько необслуживаемых железяк, а пульт программирования один - подошел, воткнулся, исправил, выткнулся - продолжение работы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 13 февраля, 2009 Опубликовано 13 февраля, 2009 · Жалоба А когда редактируешь строку и потом переводишь в флоат разьве точность не теряется ? Даже если она и "теряется", но лишь единожды, а у Вас на каждое нажатие кнопки. По моему скромному мнению, при помощи atof достигается максимальная точность из возможных... И уж не хуже чем при целочисленном способе редактирования. В этом смысле Ваш вариант самый неудачный. atof - ведь библиотечная функция и отшлифована она не одним поколением программистов, поэтому недоверия у меня она никогда не вызывает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
singlskv 0 13 февраля, 2009 Опубликовано 13 февраля, 2009 · Жалоба Даже если она и "теряется", но лишь единожды, а у Вас на каждое нажатие кнопки. По моему скромному мнению, при помощи atof достигается максимальная точность из возможных... И уж не хуже чем при целочисленном способе редактирования. В этом смысле Ваш вариант самый неудачный. atof - ведь библиотечная функция и отшлифована она не одним поколением программистов, поэтому недоверия у меня она никогда не вызывает. Ну давайте рассмотрим такой пример на Вашем алгоритме: Было число 1.44999999 Выводим с одним разрядом после запятой: 1.4 хотим уменьшить это число на 1 минимальный шаг(типа чего-нить регулируем) жмем кнопку вниз на младшем разряде получаем: 1.3 жмем ввод ИТОГО: было 1.44999999 стало 1.3 вместо регулирования на 0.1 получили на 0.14999999 Это правильно ? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ARV 0 13 февраля, 2009 Опубликовано 13 февраля, 2009 · Жалоба Ну давайте рассмотрим такой пример на Вашем алгоритме: Было число 1.44999999 Выводим с одним разрядом после запятой: 1.4 хотим уменьшить это число на 1 минимальный шаг(типа чего-нить регулируем) жмем кнопку вниз на младшем разряде получаем: 1.3 жмем ввод ИТОГО: было 1.44999999 стало 1.3 вместо регулирования на 0.1 получили на 0.14999999 Это правильно ? :) это неправильно. однако, если только один знак после запятой в редактируемом параметре - откуда там возьмется "хвостик"? редактируется, как я понимаю, входной параметр для некоего алгоритма, но никак не выходной, т.е. получаемый в результате вычислений... то есть никакого 1.449999 быть не может (не должно по определению)? может быть только 1.4 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
singlskv 0 13 февраля, 2009 Опубликовано 13 февраля, 2009 · Жалоба это неправильно. однако, если только один знак после запятой в редактируемом параметре - откуда там возьмется "хвостик"? редактируется, как я понимаю, входной параметр для некоего алгоритма, но никак не выходной, т.е. получаемый в результате вычислений... то есть никакого 1.449999 быть не может (не должно по определению)? может быть только 1.4Ну а если этот пареметр рассчетный(например через деление) ? и его результат получается совсем в другом месте ? А потом нужно его подредактировать? На самом деле эти споры насчет округлений можно вести до бесконечности, ИМХО, правда заключается в единичке младшего разряда который Вы позволили редактировать, +- эта 1 это и есть точность... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 13 февраля, 2009 Опубликовано 13 февраля, 2009 · Жалоба А чтоб не спорить, должно быть правило: система параметров прибора должна быть квадратно-гнездовой как и голова воображаемого пользователя. И если на юзера падают результаты промежуточных вычислений, то это не хорошо. ЗЫ Есть исключение, например, когда параметр движется по экспоненте от точки А до точки В. Но юзеру совсем не обязательно сие редактировать по циферкам - шаг приращения должен выбираться автоматически, чтобы создать некоторое подобие слайдера или иного регулятора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
singlskv 0 13 февраля, 2009 Опубликовано 13 февраля, 2009 · Жалоба А чтоб не спорить, должно быть правило: система параметров прибора должна быть квадратно-гнездовой как и голова воображаемого пользователя. И если на юзера падают результаты промежуточных вычислений, то это не хорошо.Ok, только никуда пока не уходите, :) будете связующим звеном между пультом который получает значения по модбас их редактирует и отправляет их обратно(или в другой модуль :) ), боюсь без Вашей помощи они квадратно-гнездовым не договорятся... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 13 февраля, 2009 Опубликовано 13 февраля, 2009 · Жалоба Ok, только никуда пока не уходите, :) В таком случае пульт будет не устройство, а должность :) И думаю, что в конце концов у пользователя такого пульта может возникнуть сильная жажда сервиса. Вплоть до денег за работу по модернизации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
singlskv 0 13 февраля, 2009 Опубликовано 13 февраля, 2009 · Жалоба В таком случае пульт будет не устройство, а должность :) И думаю, что в конце концов у пользователя такого пульта может возникнуть сильная жажда сервиса. Вплоть до денег за работу по модернизации. Это еще почему ? получили извне флоат отредактировали отправили назад почему мой вариант будет хуже чем: >ИТОГО: было 1.44999999 стало 1.3 >вместо регулирования на 0.1 получили на 0.14999999 ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 13 февраля, 2009 Опубликовано 13 февраля, 2009 · Жалоба получили извне флоат отредактировали отправили назад Отредактировали калькулятороподобной клавой - вааще вопросов нету. А 2/4/6 кнопок... фрагмент не вписывается в Геракла (ЦЕ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
singlskv 0 13 февраля, 2009 Опубликовано 13 февраля, 2009 · Жалоба Отредактировали калькулятороподобной клавой - вааще вопросов нету. А 2/4/6 кнопок... фрагмент не вписывается в Геракла (ЦЕ) -4 кнопки -5 семисегментников(+точка) разрядов (но можно сколько надо) -вывод/ввод целых/флоат -ввод/контроль пароля на определенные параметры -режим ввода по приращениям не совпадающим с разрядом -режим задания значений по умолчанию все редактируемые параметры удаленные, через модбас (ЦЕ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ARV 0 13 февраля, 2009 Опубликовано 13 февраля, 2009 · Жалоба Отредактировали калькулятороподобной клавой - вааще вопросов нету. А 2/4/6 кнопок... фрагмент не вписывается в Геракла (ЦЕ)+5! и нечего голову всем морочить! редактируйте в символьном виде с клавы типа PS/2 и будет вам счастье :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
clpe 0 13 февраля, 2009 Опубликовано 13 февраля, 2009 · Жалоба +5! и нечего голову всем морочить! редактируйте в символьном виде с клавы типа PS/2 и будет вам счастье :) Да была бы вообще тема!!! А редактирование делать примерно так: Это конечно упрощенно, но идея я думаю ясна. Вот такое решение вообще офигенно! Суперрррррр!.......... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться