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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Система меню, Меню для встраиваемых систем
_artem_
сообщение Oct 29 2005, 19:50
Сообщение #16


учащийся
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249



Rekursiya ochen elegantnoe resenie dlya prostix menyu , v prtotivnom sluchae vam pridetsya ili dla kazdogo vidgeta ego view state pisat (polozenie, fokus ..) ili ze rezervirovat dinamiceski strukturu dlya etogo posredstvom malloc ili tomu podobnoe . No pri rekusrii nelzja ubivat okna kotorie gde to poseredine dereva gui .

Da ese nasel , vot posmotrite po etoy ssilke . On vidgeti sam napisal . Mozno ego kak ideyu dlya tekstovoy gui ispolzovat . Edinstvennoe avtor tam menu ispolzuet iz windoza a vse ostalnie widgeti delaet sam . Po moemu xorosiy source dlya osmisleniya vnutrennostey gui .

http://utenti.lycos.it/dcg/alfagui.html


--------------------
Зачем лаять на караван , когда на него можно плюнуть?

Go to the top of the page
 
+Quote Post
bialix
сообщение Oct 30 2005, 23:15
Сообщение #17


Частый гость
**

Группа: Свой
Сообщений: 174
Регистрация: 4-11-04
Из: zp.ua
Пользователь №: 1 046



Цитата(_artem_ @ Oct 29 2005, 21:50)
Rekursiya ochen elegantnoe resenie dlya prostix menyu , v prtotivnom sluchae vam pridetsya ili dla kazdogo vidgeta ego view state pisat (polozenie, fokus ..) ili ze rezervirovat dinamiceski strukturu dlya etogo posredstvom malloc ili tomu podobnoe . No pri rekusrii nelzja ubivat okna kotorie gde to poseredine dereva gui .


Не уверен я насчет элегантности. Даже в виндовсе не используется рекурсия для построения графического интерфейса. Там используются callback функции. Рекурсия очень плохая штука, если у вас многозадачная система. Редкая система может быть однозадачной, а при построении пользовательского интерфейса я себе плохо представляю как ее можно нормально сделать не многозадачной и при этом не только заниматься рисованием менюшек, но еще и производить обмен по паре-тройке интерфейсов, производить измерения в каналах АЦП и выводить результаты на экран, не говоря про то, что органы управления (кнопки или проч.) надо тоже опрашивать.

"Баба-яга против" (с)


--------------------
Имей мужество пользоваться своим собственным разумом! (с) И.Кант
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Oct 31 2005, 00:09
Сообщение #18


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Вот решил выложить свое творение, может быть кто и оценит, если есть свободное время. Конечно там до оптимизации далеко, но это первый опыт!
Прикрепленные файлы
Прикрепленный файл  menu.rar ( 3.22 килобайт ) Кол-во скачиваний: 314
 


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
_artem_
сообщение Oct 31 2005, 00:35
Сообщение #19


учащийся
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249



Цитата(bialix @ Oct 31 2005, 01:15)
Не уверен я насчет элегантности. Даже в виндовсе не используется рекурсия для построения графического интерфейса. Там используются callback функции. Рекурсия очень плохая штука, если у вас многозадачная система. Редкая система может быть однозадачной, а при построении пользовательского интерфейса я себе плохо представляю как ее можно нормально сделать не многозадачной и при этом не только заниматься рисованием менюшек, но еще и производить обмен по паре-тройке интерфейсов, производить измерения в каналах АЦП и выводить результаты на экран, не говоря про то, что органы управления (кнопки или проч.) надо тоже опрашивать.

"Баба-яга против" (с)
*


Pod elegantnostyu ya imel vvidu prostotu. V windows i drugix GUI sistemax konechno nelzya ispolzovat rekursiyu. Ya popdrazumeval tekstoviy LCD i obyazatelnoe ispolzovanie RTOS'a - mozno odnu zadachu s nizkim prioritetom videlit na nee, pri uslovii esli razmer dereva menyu izvesten ( kolichestvo urovney) chtobi izbezat perepolneniya steka.
Chto libo bolee seryeznoe uze ne predpolagaet ispolzovanie rekursii.


--------------------
Зачем лаять на караван , когда на него можно плюнуть?

Go to the top of the page
 
+Quote Post
ObitJr
сообщение Oct 31 2005, 11:43
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 23-07-05
Пользователь №: 7 043



Цитата(bialix @ Oct 31 2005, 01:15)
Цитата(_artem_ @ Oct 29 2005, 21:50)
Rekursiya ochen elegantnoe resenie dlya prostix menyu , v prtotivnom sluchae vam pridetsya ili dla kazdogo vidgeta ego view state pisat (polozenie, fokus ..) ili ze rezervirovat dinamiceski strukturu dlya etogo posredstvom malloc ili tomu podobnoe . No pri rekusrii nelzja ubivat okna kotorie gde to poseredine dereva gui .


Не уверен я насчет элегантности. Даже в виндовсе не используется рекурсия для построения графического интерфейса. Там используются callback функции. Рекурсия очень плохая штука, если у вас многозадачная система. Редкая система может быть однозадачной, а при построении пользовательского интерфейса я себе плохо представляю как ее можно нормально сделать не многозадачной и при этом не только заниматься рисованием менюшек, но еще и производить обмен по паре-тройке интерфейсов, производить измерения в каналах АЦП и выводить результаты на экран, не говоря про то, что органы управления (кнопки или проч.) надо тоже опрашивать.

"Баба-яга против" (с)
*



Что Вы понимаете под многозадачностьсю ?
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Oct 31 2005, 12:06
Сообщение #21


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата
Что Вы понимаете под многозадачностьсю ?


Наверно тут все-таки говорится не о многозадачности как таковой, т.е. о выделении отдельных задач, их переключении, сохранении контекста и т.д. А о своеобразной псевдомногозадачсти (прошу прощения за такое выражение). Здесь я полностью согласен с bialix. Действительно, нужно и меню выводить, и (в моем случае) температуру измерять, да еще и за UART'ом следить. Но не встраивать же туда ОС. Просто, в холостом цикле опрашиваются кнопки для нужд меню + вызывается функция снятия показаний с термодатчиков + функция обработки сообщений от UART. И все отлично работает. В прилагаемых мной исходниках (выше на странице) это видно, там вызывается функция msr_wake_service(), которая опрашивает датчики и выполняет сервис связи по UART.
Ну и конечно прерывания от таймера используются, а кудаж без них:-)


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
GrayCat
сообщение Nov 1 2005, 08:31
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 7-10-05
Из: UA
Пользователь №: 9 342



Цитата(ObitJr @ Oct 31 2005, 13:43)
Что Вы понимаете под многозадачностьсю ?
*

Например, простенькая "кооперативная" многозадачность а-ля Salvo или JacOS. Что интересно -- работает!!! blink.gif biggrin.gif


--------------------
Gray©at
Go to the top of the page
 
+Quote Post

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

 


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


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