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

 
 
 
Reply to this topicStart new topic
> Altera. Графический интерфейс SOPC-компонентов, Как сделать его динамически обновляющимся?
weirdcong
сообщение Jul 21 2011, 12:28
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 21-07-11
Пользователь №: 66 342



Сочинил я некий модуль на Verilog. Пытаюсь сделать из него компонент для SOPC Builder'а.
Мне нужно, чтобы окошко настройки компонента (GUI) динамически обновлялось, если я в нём что-то меняю.

В частности, есть параметр типа boolean и соответствующий ему checkbox, и нужно, чтобы при отсутствии галочки в чекбоксе какие-то поля параметров затенялись (не могли изменяться), и наоборот.
Ещё для одного параметра юзер должен выбирать значение из выпадающего списка, и в зависимости от выбранного значения какие-то поля ввода должны появляться или пропадать.

Я так понимаю, что в Tcl-скрипт нужно вводить editor callback? Кто-нибудь такое делал? В учебнике по SOPC Builder очень поверхностное объяснение, или же просто мне как НЕпрограммисту непонятное.
Я посмотрел на то, как сделаны библиотечные SOPC-компоненты Альтеры с динамическим GUI - их скрипты написаны на Perl или вроде того. wacko.gif На Perl я не умею... Можно ли сделать такой интерфейс, пользуясь только Tcl? На худой конец, может, можно на C вместо Perl???

Сообщение отредактировал weirdcong - Jul 21 2011, 12:33
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Jul 21 2011, 14:10
Сообщение #2


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



Какую версию квартуса Вы используете?


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jul 21 2011, 14:43
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Editor Callback подменяет стандартный гуй. на чем вы его напишете - дело ваше. главное чтобы он принимал на вход параметры из командной строки и выдавал их на стандартный вывод. сам гуй можно накидать на чем-то вроде PyQt (если нравится питон), можно и на перле аналогично.
Go to the top of the page
 
+Quote Post
weirdcong
сообщение Jul 21 2011, 16:10
Сообщение #4





Группа: Новичок
Сообщений: 4
Регистрация: 21-07-11
Пользователь №: 66 342



Цитата(Stewart Little @ Jul 21 2011, 16:10) *
Какую версию квартуса Вы используете?

9.0

Цитата(vadimuzzz @ Jul 21 2011, 16:43) *
Editor Callback подменяет стандартный гуй. на чем вы его напишете - дело ваше. главное чтобы он принимал на вход параметры из командной строки и выдавал их на стандартный вывод.

Почти всё это написано в UG, так я и говорю: мне непонятно; возможно, потому, что написано для программистов, а я не программист (разве что на Си что-то могу слепить для консоли).
И пример там какой-то слишком абстрактный (для меня).

Во-первых, пока непонятно, является ли editor callback тем, что мне нужно в описываемой ситуации?
Во-вторых, если действительно нужен именно он, то что вообще должно быть в файле Tcl, и что должен делать мой экзешник?
Что значит "выдавать на стандартный вывод"? - Это как через printf в Си? Кто будет читать этот вывод?
Загадочна сама фраза "editor callback подменяет гуй", причём не только у Вас, а и в английском оригинале. Editor callback - это же процесс, часть GUI, как он может его целиком подменить?..
В общем, попросту непонятно, о чём речь.
Может, у Вас есть работающие примеры такого дела?

Сообщение отредактировал weirdcong - Jul 21 2011, 16:12
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jul 22 2011, 00:20
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(weirdcong @ Jul 21 2011, 23:10) *
Во-первых, пока непонятно, является ли editor callback тем, что мне нужно в описываемой ситуации?

да. но, возможно, это не единственный вариант.
Цитата
Во-вторых, если действительно нужен именно он, то что вообще должно быть в файле Tcl, и что должен делать мой экзешник?

смотрите пример, там все тривиально. при попытке редактировать параметры вызывается (см. строчку exec) ваш исполняемый файл. на вход он принимает текущее значение параметров (или дефолтное, если это первый вызов). в терминах Си - через argv[].
Цитата
Что значит "выдавать на стандартный вывод"? - Это как через printf в Си? Кто будет читать этот вывод?

да. например через printf. скрипт компонента, где объявлен callback, и вызывает.
Цитата
Загадочна сама фраза "editor callback подменяет гуй", причём не только у Вас, а и в английском оригинале. Editor callback - это же процесс, часть GUI, как он может его целиком подменить?..

а что непонятного? есть стандартный гуй. возможно, есть способ получить то, что вам требуется и с его помощью (изучайте тикль и API). но можно и подменить своим, тут можно извращаться как угодно.
Цитата
Может, у Вас есть работающие примеры такого дела?

поищу, но для винды точно нет
Go to the top of the page
 
+Quote Post
weirdcong
сообщение Jul 22 2011, 09:23
Сообщение #6





Группа: Новичок
Сообщений: 4
Регистрация: 21-07-11
Пользователь №: 66 342



Цитата(vadimuzzz @ Jul 22 2011, 03:20) *
смотрите пример, там все тривиально. при попытке редактировать параметры вызывается (см. строчку exec) ваш исполняемый файл. на вход он принимает текущее значение параметров (или дефолтное, если это первый вызов). в терминах Си - через argv[].


Всё-таки, что именно должен выдавать мой экзешник? Текст скрипта, написанный полностью с нуля и учитывающий дефолтные или введенные числа?

Тогда переменная result - это строка?
Что должна делать процедура, упоминаемая как "parse_for_new_value"? Искать в переменной result (т.е. тексте скрипта) значения нужных параметров?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jul 22 2011, 10:59
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(weirdcong @ Jul 22 2011, 16:23) *
Всё-таки, что именно должен выдавать мой экзешник? Текст скрипта, написанный полностью с нуля и учитывающий дефолтные или введенные числа?

параметры он должен выдавать. допустим, у вас параметром ширина регистра в битах. дефолт - 32бита. запускаете исполняемый файл, на вход ему даете 32. он рисует красивые картинки, юзер через контролы меняет значение параметра, жмет ОК. программа завершается, выплюнув то, что ввел юзер, в stdout
Go to the top of the page
 
+Quote Post
weirdcong
сообщение Jul 22 2011, 11:21
Сообщение #8





Группа: Новичок
Сообщений: 4
Регистрация: 21-07-11
Пользователь №: 66 342



Цитата(vadimuzzz @ Jul 22 2011, 13:59) *
параметры он должен выдавать. допустим, у вас параметром ширина регистра в битах. дефолт - 32бита. запускаете исполняемый файл, на вход ему даете 32. он рисует красивые картинки,

Стало быть, не только параметры выдавать, а ещё и графику рисовать должен? То есть окно будет моё самописное, а не генерируемое SOPC'ом???

Цитата(vadimuzzz @ Jul 22 2011, 13:59) *
юзер через контролы меняет значение параметра, жмет ОК. программа завершается, выплюнув то, что ввел юзер, в stdout

Так это не динамически изменяющийся гуй.
Картинка должна меняться (поля должны пропадать/появляться) без всяких нажатий на ОК, а как только юзер поставил какую-нибудь галочку или изменил цифру в выпадающем списке.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jul 22 2011, 12:13
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(weirdcong @ Jul 22 2011, 18:21) *
Стало быть, не только параметры выдавать, а ещё и графику рисовать должен? То есть окно будет моё самописное, а не генерируемое SOPC'ом???

ну да
Цитата
Так это не динамически изменяющийся гуй.
Картинка должна меняться (поля должны пропадать/появляться) без всяких нажатий на ОК, а как только юзер поставил какую-нибудь галочку или изменил цифру в выпадающем списке.

почему не динамически меняющийся? не вижу проблемы, в любом современном тулките это в несколько тычков мыши можно сделать
Go to the top of the page
 
+Quote Post
wpost
сообщение Jul 29 2011, 07:49
Сообщение #10


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 1-04-10
Из: СПб
Пользователь №: 56 354



Вот вам пример скрипта компонента с динамической GUI

PS: расширение txt нужно заменить на tcl
Редактировать блокнотом или WordPad
Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  DiscretSignals_hw.txt ( 12.49 килобайт ) Кол-во скачиваний: 191
 
Go to the top of the page
 
+Quote Post
torik
сообщение Apr 19 2012, 07:16
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Парни, а как объявить параметр в топлевеле модуля, чтобы при создании SOPC компонента он сам его увидел в качестве boolean (и чекбокс наверняка тогда сам сделает).
Почему-то
Код
parameter bit param1 = 0;

видится как string


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
torik
сообщение Apr 20 2012, 04:36
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



ну или где подробно описано написание этих скриптов? В даташите на SOPC как-то не очень подробно.


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Apr 20 2012, 14:53
Сообщение #13


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



Цитата(torik @ Apr 20 2012, 07:36) *
ну или где подробно описано написание этих скриптов? В даташите на SOPC как-то не очень подробно.

Component Interface Tcl Reference


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 21:52
Рейтинг@Mail.ru


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