|
Stm32 emWin lwIp web |
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 32)
|
Feb 27 2015, 19:17
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(1234Alex @ Feb 26 2015, 02:19)  ...Идеальным было-бы повторить в web-интерфейсе наличные 3 ( сейчас ) экрана.Реально-ли это ?... имхо - надо двигаться в сторону одинаковости кода. т.е. проще сделать аля эмулятор вэб броузера(для тфт) с поддержкй минимального набора html-ля и гнать его родненького туда и сюда. плюс ява скрипт как нить по минмуму замутить. в своё время пришлось по задаче сделать интепретатор своего аля языка для пульта управления. кристалл маленький и не перепрограммируемый, но зато не зависил от прошивки центрального девайса и даже между различными устройствами перетыкался на ура. для писюка пришлось только создать канал связи и свой интепретатор и.... и окошечко с полной поддержкой вида пульта был готов и на писюке так-же  выгода и экономия очевидна. в вашем же случае - язык и правила описания команд - определен HTML и около вэбовские дела.
|
|
|
|
|
Feb 27 2015, 21:41
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(1234Alex @ Feb 26 2015, 02:19)  Идеальным было-бы повторить в web-интерфейсе наличные 3 ( сейчас ) экрана. Реально-ли это ? Если там не картины Пикассо, то более чем реально. Да и картины Пикассо через битмапы легко делаются. Цитата(1234Alex @ Feb 26 2015, 02:19)  В веб-программировании пока слаб. Ну и что? Главное, чтобы просто в программировании был не слаб. Потому что это веб-программирование - фигня, и учится легко и непринуждённо, благо материала в инете навалом.
|
|
|
|
|
Feb 28 2015, 13:58
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Цитата(kolobok0 @ Feb 28 2015, 02:17)  имхо - надо двигаться в сторону одинаковости кода. т.е. проще сделать аля эмулятор вэб броузера(для тфт) с поддержкй минимального набора html-ля и гнать его родненького туда и сюда. плюс ява скрипт как нить по минмуму замутить. веб-броузер, даже простейший, будет заметно сложнее чем простейший веб-сервер. Цитата(1234Alex @ Feb 28 2015, 04:59)  Картинки можно использовать и в web-сервере. Я пока не знаю как отдать событие указателя ( мыши ) из веб-страницы. С чего начали-бы изучение ? Можно для начала взять учебник по HTML и поставить денвер в качестве песочницы. Писать для начала можно и в блокноте. Забудьте пока про джаваскрипт, PHP, MySQL и прочее, на STM всего этого у Вас не будет. Только голый html, только CGI на стороне сервера, только хардкор!
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
Feb 28 2015, 14:28
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Цитата(1234Alex @ Feb 26 2015, 06:19)  Есть устройство с 7-дюймовым Tft, собранное на Stm32F4. Цитата(scifi @ Feb 28 2015, 21:19)  Ну уж нет. Жабаскрипт - наше всё! К тому же он сидит в браузере, так что не надо пугать, что в СТМ его не будет. Топикстартер хочет веб-страниц на 7-дюймовом экране. Увы, наше всё у него появится только если он сам его напишет.
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
Feb 28 2015, 14:59
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Цитата(scifi @ Feb 28 2015, 21:35)  А откуда же ещё оно возьмётся? Волшебник в голубом вертолёте привезёт? Вы предлагаете ради нескольких кнопок на экране реализовать интерпретатор джава-скрипта? Для начала всё равно придётся сделать обработку html-ных FORM, INPUT и пр. В этот момент выяснится, что возможностей FORM вполне достаточно для организации простого интерфейса без украшений. Есть и альтернативный путь - в имеющийся уже (как я понял) интерфейс о трёх экранах встроить перекодировку в HTML для отдачи его наружу. А прилетающие от удалённого браузера запросы GET превращать внутри в эмуляцию ввода с кнопок или сенсорного экрана.
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
Feb 28 2015, 15:37
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(1234Alex @ Feb 28 2015, 18:30)  Что меня пока смущает - разработка по сути 2-х вариантов интерфейса, на emWin и на HTML. Почему? Цитата(1234Alex @ Feb 28 2015, 18:30)  Ищу методы унификации этого дела. Зачем? Пустое это.
|
|
|
|
|
Feb 28 2015, 19:33
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(1234Alex @ Feb 28 2015, 18:56)  Довольно нудно отрисовывать одну и ту-же мнемосхему дважды. А когда их несколько ? Хочется автоматической сихронизации интерфейсов. Если это конечно возможно. В теории звучит заманчиво, конечно. Но на практике будет выглядеть убого, ИМХО. Всё-таки лицевая панель прибора и браузер в компьютере - разные вещи, и они дают разные возможности для построения интерфейсов пользователя. А если приводить к общему знаменателю, то часть этих возможностей никогда не будет использована, причём с плачевными результатами (но зависит от конкретного случая, наверное). Цитата(1234Alex @ Feb 28 2015, 18:30)  Собственно 3 вариант самый удобный. Вопрос в обработке событий мыши на стороне клиента и отдача серверу. Это очень просто. Небольшой кусочек жабаскрипта (~20 строчек) на стороне клиента способен отлавливать события мыши и передавать серверу. Также он способен динамически обновлять картинку (ещё ~20 строчек).
|
|
|
|
|
Feb 28 2015, 20:33
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(1234Alex @ Feb 28 2015, 22:42)  А не подскажете этот кусочек. Не смог нагуглить совсем уж то, что нужно. Но нашёл пример, где принципиальные моменты реализованы: тут. Там делается перетаскивание мышью, поэтому много лишнего кода. Но можно разглядеть, как берутся координаты курсора и отправляются на сервер при помощи XMLHttpRequest. Там используется POST, но вам, наверное, будет удобнее GET (тоже с координатами клика), тогда в ответ на этот GET можно будет сразу получить указание от сервера, изменилась ли картинка на экране. Подменить картинку на веб-странице жабаскрипт тоже легко позволяет. Например, см. тут. Вообще, жабаскрипт позволяет сделать практически всё, что угодно. Ну и со стороны сервера должна быть должная поддержка, естественно.
|
|
|
|
|
Feb 28 2015, 21:24
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(1234Alex @ Feb 26 2015, 01:19)  Прошу совета. Есть устройство с 7-дюймовым Tft, собранное на Stm32F4. Поднят lwIp ( lan8720 ). Всё потихоньку оживает. Встаёт вопрос о web-морде для этого агрегата. Идеальным было-бы повторить в web-интерфейсе наличные 3 ( сейчас ) экрана. Реально-ли это ? Про emwin vnc знаю ( пока не пробовал ). Нет-ли других вариантов. В веб-программировании пока слаб. Спасибо. Судя по тому что uC/GUI вы упорно называете emWin оно у вас в виде скомпилированных либ. Тогда что-то сделать трудно будет. А так я экраны для uС/GUI проектирую в виде конфигурационных JSON файлов. Понятно что и WEB броузер может принять тот же JSON файл и отрисовать такой же экран. Более того в броузере можно отредактировать экран и сохранить его в дивайс с последующим воспроизведением на экране дивайса. Но это я не реализовывал. Экранный редактор параметров и WEB страницы параметров у меня генерятся специальной утилитой одновременно. Но не похожи друг на друга, поскольку в экранном GUI надо еще отображать клавиатуру.
|
|
|
|
|
Feb 28 2015, 22:16
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(scifi @ Feb 28 2015, 23:49)  JSON не нужен. Голый жабаскрипт годится. У вас там кода выйдет на пару сотен строк, зачем какой-то JSON? Ага, не нужен. Испокон веков мультиплатформенность GUI создавалась с помощью языков разметки. Можете конечно парсить HTML или XML. Но придете все равно к JSON как языку разметки. Ибо проще не бывает. А JavaScript в качестве разметки даже не смешно, а просто не понятно. Каким боком?
|
|
|
|
|
Feb 28 2015, 23:09
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(khach @ Mar 1 2015, 01:32)  А вот если копию прийдется вычитывать из памяти контроллера экрана- тут начинаются очень интересные грабли с шиной. Что за грабли? У меня были TFT экраны. Для мануалов делал скриншоты именно через веб. Особых проблем не заметил. Цитата(AlexandrY @ Mar 1 2015, 01:16)  Ага, не нужен. Испокон веков мультиплатформенность GUI создавалась с помощью языков разметки. Можете конечно парсить HTML или XML. Но придете все равно к JSON как языку разметки. Ибо проще не бывает. А JavaScript в качестве разметки даже не смешно, а просто не понятно. Каким боком? Вы сговорились что ли? Не о том речь. Просто выдавать скриншот экрана на веб-интерфейс, ловить клики мышки, эмулировать нажатия кнопок, и обновлять этот скриншот. Это 200 строк жабаскрипта плюс необходимая обвязка на сервере. Потому-то JSON и не нужен. Цитата(1234Alex @ Mar 1 2015, 01:06)  Может подскажете что лучше почитать по javascript. Нет, не подскажу. Синтаксис очень похож на Си, поэтому начать просто. Возникает вопрос - лезешь в гугл и сразу находишь ответ. Как-то так.
|
|
|
|
|
Mar 1 2015, 10:19
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(scifi @ Mar 1 2015, 01:09)  Что за грабли? У меня были TFT экраны. Для мануалов делал скриншоты именно через веб. Особых проблем не заметил.
Вы сговорились что ли? Не о том речь. Просто выдавать скриншот экрана на веб-интерфейс, ловить клики мышки, эмулировать нажатия кнопок, и обновлять этот скриншот. Это 200 строк жабаскрипта плюс необходимая обвязка на сервере. Потому-то JSON и не нужен. Это не серьезный подход. Глядя на крохотный скриншот TFT на экране нормального броузера публика будет в недоумении. Да и напряг для STM32 будет выше предельного. Сколько раз в сек собираетесь рефрешить скриншот при скролинге, например? Начнутся лаги, сбои и непопадания в нужную зону видгетов. Смысл не повторить один в один экран TFT и представление в броузере, а сгенерировать эти представления одновременно не совершая повторной работы. Я отказался в свое время от GUI_Builder. Он генерит С-и файлы, а их очень трудно парсить как файл разметки для броузера. Это тупиковый путь. Стоит потратится, но сделать для uC/GUI парсер нормального файла разметки сделанного из представления в броузере. Кстати тогда и к определенному GUI не будет сильной привязки.
|
|
|
|
|
Mar 1 2015, 10:39
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(AlexandrY @ Mar 1 2015, 13:19)  Это не серьезный подход. Глядя на крохотный скриншот TFT на экране нормального броузера публика будет в недоумении. Дык я о том же. Но ТС оч. хочется именно так. Цитата(AlexandrY @ Mar 1 2015, 13:19)  Да и напряг для STM32 будет выше предельного. Нет. Хотя зависит от масштаба амбиций, наверное. Цитата(AlexandrY @ Mar 1 2015, 13:19)  Сколько раз в сек собираетесь рефрешить скриншот при скролинге, например? Начнутся лаги, сбои и непопадания в нужную зону видгетов. А вот тут начинается самое интересное. Было бы полезно взглянуть на реальный скриншот. Подозреваю, что там никаких видгетов нет. Типа "клапан закрыл, насос запустил".
|
|
|
|
|
Mar 1 2015, 14:13
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Цитата(1234Alex @ Mar 1 2015, 20:42)  2 AlexandrY. Очень интересно. Нет-ли примера такого подхода. Так я никогда не делал. Вот Вам теоретический фундамент для предложенного AlexandrY решения. https://ru.wikipedia.org/wiki/Model-View-ControllerЕсли коротко, то всё, что нагенерил GUI_Builder нужно разделить на три кучки, модель оставить как есть, представлений сделать два - для экрана и для браузера. Контроллер придётся дополнительно поделить на два слоя, "бизнес-логика" не меняется, а вот получение сигналов от элементов управления делается в двух вариантах - (1) от кнопок или сенсорного экрана локально и (2) запросы от удалённого браузера. PS. Я с этим GUI_Builder-ом дела почти не имел, поэтому сложность задачи деления на M, V и C не очень себе представляю. Возможно что некоторое "допиливание" в сторону бОльшей идейной похожести на html может упростить задачу. PPS. Я сейчас тоже готовлюсь к неизбежному - сделать настройку, тестирование и управление девайсом через веб-интерфейс. К счастью локального экрана нет. Пока упражняюсь в денвере. Так вот, я обнаружил что необходимый минимум элементов управления уже 20 лет как есть в самом html и для создания простейшего интерфейса из нескольких полей ввода и пары кнопок ничего лишнего не требуется.
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
Mar 1 2015, 18:34
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(SSerge @ Mar 1 2015, 16:13)  Вот Вам теоретический фундамент... https://ru.wikipedia.org/wiki/Model-View-ControllerЕсли коротко, то всё, что нагенерил GUI_Builder нужно разделить на три кучки, модель оставить как есть, представлений сделать два - для экрана и для браузера. Да не запаривайтесь, это типичная ахинея PHP-шников используемая в их внутренней борьбе. В данном случае вам следует знать, что uС/GUI это однозадачная, однопользовательская, статически линкуемая система. Поэтому MVC здесь совершенно мимо. Для представления в броузере uC/GUI не должно использоваться ни под каким видом.
|
|
|
|
|
Mar 1 2015, 20:36
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Цитата(AlexandrY @ Mar 2 2015, 01:34)  Да не запаривайтесь, это типичная ахинея PHP-шников используемая в их внутренней борьбе. Не клевещите на PHP-шников, они до таких высот абстракции обычно не долетают.  Ну и что из того что это однозадачная, однопользовательская, статически линкуемая система, это никак не мешает мысленно поделить её на части и рассматривать их взаимодействие.
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|