реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Редактирование значения типа float, Как организовать такое?
_Pasha
сообщение Feb 13 2009, 09:21
Сообщение #31


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(ARV @ Feb 13 2009, 13:12) *
минусы:
- назовите сами smile.gif


Да не переживайте так, нету минусов smile.gif Вообще, выкладывать юзеру параметры в плавучке - это не есть хорошо. Значит, что-то в консерватории не так.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 13 2009, 10:52
Сообщение #32


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(ARV @ Feb 13 2009, 11:12) *
минусы:
- назовите сами smile.gif
Сам так делал, еще на асме и на 74 пике smile.gif У меня была структура "параметры редактирования", которая включала в себя:
- количество знакомест при редактировании
- количество знаков после запятой (если 0 - точка не выводится)
- знаковое/беззнаковое число
- минимальное и максимальное допустимое значение. Если при сохранении число выходит за диапазон - сохранение не происходит, выдается злобный сигнал, число заменяется максимумом или минимумом, пользователю предлагается продолжить редактирование.

Функции передавался указатель на число и указатель на такую структуру. Таким образом одна процедура использовалась для редактирования самых разнообразных параметров. Недостаток только один - этот метод не подходит, если положение точки не фиксировано. 


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 13 2009, 11:42
Сообщение #33


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Сергей Борщ @ Feb 13 2009, 14:52) *
Функции передавался указатель на число и указатель на такую структуру. Таким образом одна процедура использовалась для редактирования самых разнообразных параметров. Недостаток только один - этот метод не подходит, если положение точки не фиксировано. 

+1
То же самое плюс флаг read_only, селектор источника, откуда берется число (SRAM/EEPROM/FLASH/SPECIAL)
SPECIAL - в этом случае будет указатель на функцию, возвращающую требуемое число
В особо извращенных случаях добавлялись хинтовые строки для выдачи в UART, что это за параметр еще и на двух языках: английском и матерном родном. smile.gif Ужас
У человека в цеху несколько необслуживаемых железяк, а пульт программирования один - подошел, воткнулся, исправил, выткнулся - продолжение работы
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Feb 13 2009, 11:57
Сообщение #34


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(singlskv @ Feb 13 2009, 11:41) *
А когда редактируешь строку и потом переводишь в флоат разьве точность не теряется ?

Даже если она и "теряется", но лишь единожды, а у Вас на каждое нажатие кнопки.
По моему скромному мнению, при помощи atof достигается максимальная точность из возможных...
И уж не хуже чем при целочисленном способе редактирования. В этом смысле Ваш вариант самый неудачный.
atof - ведь библиотечная функция и отшлифована она не одним поколением программистов, поэтому недоверия у меня она никогда не вызывает.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
singlskv
сообщение Feb 13 2009, 16:28
Сообщение #35


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(demiurg_spb @ Feb 13 2009, 14:57) *
Даже если она и "теряется", но лишь единожды, а у Вас на каждое нажатие кнопки.
По моему скромному мнению, при помощи atof достигается максимальная точность из возможных...
И уж не хуже чем при целочисленном способе редактирования. В этом смысле Ваш вариант самый неудачный.
atof - ведь библиотечная функция и отшлифована она не одним поколением программистов, поэтому недоверия у меня она никогда не вызывает.
Ну давайте рассмотрим такой пример на Вашем алгоритме:
Было число 1.44999999
Выводим с одним разрядом после запятой: 1.4
хотим уменьшить это число на 1 минимальный шаг(типа чего-нить регулируем)
жмем кнопку вниз на младшем разряде
получаем: 1.3
жмем ввод
ИТОГО: было 1.44999999 стало 1.3
вместо регулирования на 0.1 получили на 0.14999999

Это правильно ? smile.gif
Go to the top of the page
 
+Quote Post
ARV
сообщение Feb 13 2009, 16:58
Сообщение #36


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(singlskv @ Feb 13 2009, 19:28) *
Ну давайте рассмотрим такой пример на Вашем алгоритме:
Было число 1.44999999
Выводим с одним разрядом после запятой: 1.4
хотим уменьшить это число на 1 минимальный шаг(типа чего-нить регулируем)
жмем кнопку вниз на младшем разряде
получаем: 1.3
жмем ввод
ИТОГО: было 1.44999999 стало 1.3
вместо регулирования на 0.1 получили на 0.14999999

Это правильно ? smile.gif

это неправильно. однако, если только один знак после запятой в редактируемом параметре - откуда там возьмется "хвостик"? редактируется, как я понимаю, входной параметр для некоего алгоритма, но никак не выходной, т.е. получаемый в результате вычислений... то есть никакого 1.449999 быть не может (не должно по определению)? может быть только 1.4


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Feb 13 2009, 17:52
Сообщение #37


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(ARV @ Feb 13 2009, 19:58) *
это неправильно. однако, если только один знак после запятой в редактируемом параметре - откуда там возьмется "хвостик"? редактируется, как я понимаю, входной параметр для некоего алгоритма, но никак не выходной, т.е. получаемый в результате вычислений... то есть никакого 1.449999 быть не может (не должно по определению)? может быть только 1.4
Ну а если этот пареметр рассчетный(например через деление) ? и его результат получается совсем в другом месте ?
А потом нужно его подредактировать?

На самом деле эти споры насчет округлений можно вести до бесконечности,
ИМХО, правда заключается в единичке младшего разряда который Вы позволили редактировать,
+- эта 1 это и есть точность...
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 13 2009, 17:58
Сообщение #38


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



А чтоб не спорить, должно быть правило: система параметров прибора должна быть квадратно-гнездовой как и голова воображаемого пользователя. И если на юзера падают результаты промежуточных вычислений, то это не хорошо.
ЗЫ Есть исключение, например, когда параметр движется по экспоненте от точки А до точки В. Но юзеру совсем не обязательно сие редактировать по циферкам - шаг приращения должен выбираться автоматически, чтобы создать некоторое подобие слайдера или иного регулятора.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Feb 13 2009, 18:13
Сообщение #39


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(_Pasha @ Feb 13 2009, 20:58) *
А чтоб не спорить, должно быть правило: система параметров прибора должна быть квадратно-гнездовой как и голова воображаемого пользователя. И если на юзера падают результаты промежуточных вычислений, то это не хорошо.
Ok, только никуда пока не уходите, smile.gif
будете связующим звеном между пультом который получает значения
по модбас их редактирует и отправляет их обратно(или в другой модуль smile.gif ),
боюсь без Вашей помощи они квадратно-гнездовым не договорятся...
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 13 2009, 18:21
Сообщение #40


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(singlskv @ Feb 13 2009, 21:13) *
Ok, только никуда пока не уходите, smile.gif

В таком случае пульт будет не устройство, а должность smile.gif

И думаю, что в конце концов у пользователя такого пульта может возникнуть сильная  жажда сервиса. Вплоть до денег за работу по модернизации.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Feb 13 2009, 18:30
Сообщение #41


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(_Pasha @ Feb 13 2009, 21:21) *
В таком случае пульт будет не устройство, а должность smile.gif
И думаю, что в конце концов у пользователя такого пульта может возникнуть сильная  жажда сервиса. Вплоть до денег за работу по модернизации.

Это еще почему ?
получили извне флоат
отредактировали
отправили назад

почему мой вариант будет хуже чем:
>ИТОГО: было 1.44999999 стало 1.3
>вместо регулирования на 0.1 получили на 0.14999999

?
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 13 2009, 18:39
Сообщение #42


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(singlskv @ Feb 13 2009, 21:30) *
получили извне флоат
отредактировали
отправили назад

Отредактировали калькулятороподобной клавой - вааще вопросов нету. А 2/4/6 кнопок... фрагмент не вписывается в Геракла (ЦЕ)
Go to the top of the page
 
+Quote Post
singlskv
сообщение Feb 13 2009, 18:53
Сообщение #43


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(_Pasha @ Feb 13 2009, 21:39) *
Отредактировали калькулятороподобной клавой - вааще вопросов нету. А 2/4/6 кнопок... фрагмент не вписывается в Геракла (ЦЕ)

-4 кнопки
-5 семисегментников(+точка) разрядов (но можно сколько надо)
-вывод/ввод целых/флоат
-ввод/контроль пароля на определенные параметры
-режим ввода по приращениям не совпадающим с разрядом
-режим задания значений по умолчанию
все редактируемые параметры удаленные, через модбас
(ЦЕ)
Go to the top of the page
 
+Quote Post
ARV
сообщение Feb 13 2009, 18:54
Сообщение #44


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(_Pasha @ Feb 13 2009, 21:39) *
Отредактировали калькулятороподобной клавой - вааще вопросов нету. А 2/4/6 кнопок... фрагмент не вписывается в Геракла (ЦЕ)
+5!
и нечего голову всем морочить! редактируйте в символьном виде с клавы типа PS/2 и будет вам счастье smile.gif


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
clpe
сообщение Feb 13 2009, 22:00
Сообщение #45


Участник
*

Группа: Свой
Сообщений: 71
Регистрация: 23-10-08
Из: Набережные Челны
Пользователь №: 41 132



Цитата(ARV @ Feb 13 2009, 21:54) *
+5!
и нечего голову всем морочить! редактируйте в символьном виде с клавы типа PS/2 и будет вам счастье smile.gif

Да была бы вообще тема!!!

Цитата(singlskv @ Feb 13 2009, 00:33) *
А редактирование делать примерно так:

Это конечно упрощенно, но идея я думаю ясна.

Вот такое решение вообще офигенно! Суперрррррр!..........
Причина редактирования: Нарушение п.3.4 Правил форума.
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 14:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01497 секунд с 7
ELECTRONIX ©2004-2016