Page 7 of 9

Re: Эмулятор под Linux

Posted: Thu Apr 19, 2018 1:46 pm
by tsdima
Очередной коммит. Надеюсь в этот раз всё получится.

Re: Эмулятор под Linux

Posted: Thu Apr 19, 2018 1:55 pm
by Kopa
tsdima wrote:Очередной коммит. Надеюсь в этот раз всё получится.
Да, все поля Netstat отобразила заполненными
и WebView отобразил страничку :)

Re: Эмулятор под Linux

Posted: Thu Apr 19, 2018 2:02 pm
by tsdima
Ну наконец-то! Спасибо за терпение :)

Re: Эмулятор под Linux

Posted: Thu Apr 19, 2018 5:23 pm
by Kopa
tsdima wrote:Ну наконец-то! Спасибо за терпение :)
:)
Проверил работоспособность NetSurf.

NSinstall выдаёт такой лог.

Code: Select all

NETSURF INSTALLER.
Fetching : /tmp0/1/nskolibrios...DONE!
Fetching : /tmp0/1/res/adblock.css...DONE!
Fetching : /tmp0/1/res/quirks.css...DONE!
Fetching : /tmp0/1/res/Messages...DONE!
Fetching : /tmp0/1/res/licence.html...DONE!
Fetching : /tmp0/1/res/default.css...DONE!
Fetching : /tmp0/1/res/netsurf.png...DONE!
Fetching : /tmp0/1/res/sans.ttf...DONE!
Fetching : /tmp0/1/res/welcome.html...DONE!
Fetching : /tmp0/1/res/internal.css...DONE!
Fetching : /tmp0/1/res/maps.html...DONE!
Fetching : /tmp0/1/res/favicon.png...DONE!
Fetching : /tmp0/1/res/credits.html...DONE!
Fetching : /tmp0/1/res/throbber/throbber8.png...DONE!
Fetching : /tmp0/1/res/throbber/throbber3.png...DONE!
Fetching : /tmp0/1/res/throbber/throbber4.png...DONE!
Fetching : /tmp0/1/res/throbber/throbber0.png...DONE!
Fetching : /tmp0/1/res/throbber/throbber6.png...DONE!
Fetching : /tmp0/1/res/throbber/throbber2.png...DONE!
Fetching : /tmp0/1/res/throbber/throbber1.png...DONE!
Fetching : /tmp0/1/res/throbber/throbber7.png...DONE!
Fetching : /tmp0/1/res/throbber/throbber5.png...DONE!
Fetching : /tmp0/1/res/pointers/point.png...DONE!
Fetching : /tmp0/1/res/pointers/no_drop.png...DONE!
Fetching : /tmp0/1/res/pointers/wait.png...DONE!
Fetching : /tmp0/1/res/pointers/up-down.png...DONE!
Fetching : /tmp0/1/res/pointers/help.pngContacting DNS server failed with EAI code: 00000002
HTTP GET error!
Отдельно NetSurf, при этом, запускается и работает, хотя и с какими то mcall.

Re: Эмулятор под Linux

Posted: Thu Apr 19, 2018 8:14 pm
by tsdima
Kopa wrote:NSinstall выдаёт такой лог.
Очевидно, при загрузке help.png он получил код ошибки от DNS сервера. Могу только предположить, что DNS серверу не понравились слишком частые запросы об одном и том-же домене. Кэшировать ответы надо. Причём на уровне системы, т.к. запрашивать могут разные программы. Т.е. надо расширять сетевые функции.
Kopa wrote:Отдельно NetSurf, при этом, запускается и работает, хотя и с какими то mcall.
mcall 77 это футексы, надо бы сделать...

Вообще, что NetSurf, что WebView работают пока как-то нестабильно, и я подозреваю, что проблема не в эмуляторе.

Re: Эмулятор под Linux

Posted: Thu Apr 19, 2018 8:55 pm
by Kopa
tsdima wrote:Вообще, что NetSurf, что WebView работают пока как-то нестабильно, и я подозреваю, что проблема не в эмуляторе.
Последние версии Netsurf, при попытке сделать скролл колёсиком мышки "закрываются" (исчезает окно)
примерно с таким сообщением

Code: Select all

Unhandled case.Previous_mouse_buttons^b is :0x101010
это так и должно быть в текущей версии эмулятора?

Re: Эмулятор под Linux

Posted: Thu Apr 19, 2018 9:46 pm
by tsdima
Kopa wrote:это так и должно быть в текущей версии эмулятора?
Нет, наверное. Скролл я ещё не делал. Но посмотрю, что не так.

Re: Эмулятор под Linux

Posted: Sat Apr 21, 2018 1:45 pm
by tsdima
JohnXenox wrote:P.S. На гитхабе написано "If you have installed CodeLite simply open project file and build it."
Хотел так сделать. Поставил Codelite 12.0, но не вышло. У меня Codelite не открывает файл проекта.
Поставил в виртуалке Linux Mint + Codelite 12.0, действительно открывает проект просто как XML. Я почему-то был уверен, что Codelite создаст или предложит создать пустой workspace при открытии проекта. Поправил README.md
JohnXenox wrote:На мой вгляд, неправильно выводить в терминал далеко некритические сообщения, в то время, когда программа OPENDIAL, по существу, имеет все необходимые файлы для удавлетворения своих потребностей и корректной работы. Кстати сама программа, в Колибри, в такой ситуации, ворнинги не выводит, что вполне логично.
Добавил _DEBUG, теперь это сообщение выводится только в отладочной конфигурации Codelite.
JohnXenox wrote:Также заметил, что в окнах, где есть сколлбар, скроллинг колёсиком не работает. Или работает неправильно.
Теперь работает. Заодно доделал фильтр мышиных событий, теперь EOLITE в эмуляторе выдаёт только одно всплывающее меню, как и задумано.


Заметил также, что мышиные события иногда доставляются не тем окнам, по сравнению с реальной Колибри. Например если в WebView открыть всплывающее меню, а потом щёлкнуть не по нему, то меню не закроется (мышиное событие пройдёт мимо). А если был подсвечен второй пункт меню, то закроется основное окно WebView :) Кстати, аналогичное поведение есть и в реальной Колибри:
- открыть в WebView всплывающее меню
- подвигать мышкой, чтобы подсветился второй пункт меню
- кликнуть на заголовок окна WebView

Re: Эмулятор под Linux

Posted: Sat Apr 21, 2018 3:29 pm
by Leency
Кстати, аналогичное поведение есть и в реальной Колибри:
- открыть в WebView всплывающее меню
- подвигать мышкой, чтобы подсветился второй пункт меню
- кликнуть на заголовок окна WebView
Fixed #7252.
Должно исправится и в эмуле. Теперь там более явно указывается какой процесс завершить.

Re: Эмулятор под Linux

Posted: Sat Apr 21, 2018 4:24 pm
by tsdima
Leency wrote:Должно исправится и в эмуле. Теперь там более явно указывается какой процесс завершить.
Там в другом проблема. Когда кликаем не по меню, а по браузеру, он получает событие redraw:

Code: Select all

case evReDraw:
        if (menu.list.cur_y) {
                ProcessEvent(menu.list.cur_y);
                menu.list.cur_y = 0;
        }
Однако, пока меню не закрыто, menu.list.cur_y содержит номер подсвеченного пункта меню. То есть для второго пункта это 1, что совпадает с идентификатором кнопки закрытия.

У меня в эмуляторе redraw сразу посылается, если фокус меняется. А реальная Колибри, видимо, сначала посылает активному окну событие mouse down, и лишь потом меняет фокус. За исключением, видимо, клика по заголовку. В этом случае, как я понял, mouse down по какой-то причине не посылается активному окну.

Re: Эмулятор под Linux

Posted: Sat Apr 21, 2018 4:36 pm
by tsdima
Интересно получается, если не по заголовку кликнуть, а попытаться растянуть окно. Окно исчезает, а мы его ещё растягиваем :)

Re: Эмулятор под Linux

Posted: Sat Apr 21, 2018 9:54 pm
by JohnXenox
tsdima wrote:
JohnXenox wrote:P.S. На гитхабе написано "If you have installed CodeLite simply open project file and build it."
Хотел так сделать. Поставил Codelite 12.0, но не вышло. У меня Codelite не открывает файл проекта.
Поставил в виртуалке Linux Mint + Codelite 12.0, действительно открывает проект просто как XML. Я почему-то был уверен, что Codelite создаст или предложит создать пустой workspace при открытии проекта. Поправил README.md
Чего-то у меня не работает.
tsdima wrote:
JohnXenox wrote:На мой вгляд, неправильно выводить в терминал далеко некритические сообщения, в то время, когда программа OPENDIAL, по существу, имеет все необходимые файлы для удавлетворения своих потребностей и корректной работы. Кстати сама программа, в Колибри, в такой ситуации, ворнинги не выводит, что вполне логично.
Добавил _DEBUG, теперь это сообщение выводится только в отладочной конфигурации Codelite.
JohnXenox wrote:Также заметил, что в окнах, где есть сколлбар, скроллинг колёсиком не работает. Или работает неправильно.
Теперь работает. Заодно доделал фильтр мышиных событий, теперь EOLITE в эмуляторе выдаёт только одно всплывающее меню, как и задумано.
Спасибо. :D

Re: Эмулятор под Linux

Posted: Sat Apr 21, 2018 11:28 pm
by Kopa
Появился один попутный вопрос.

Как может быть проброшен интерфейс к COM порту (USB->COM переходник) в эмуляторе
и как это выглядит в Колибри запущенной на железе.

P.S. Вроде какие то наработки по использованию Com порта через USB были для Колибри.
Ещё интересен Блютуз интерфейс в этом применении.

Re: Эмулятор под Linux

Posted: Sun Apr 22, 2018 3:09 pm
by tsdima
Kopa wrote:Как может быть проброшен интерфейс к COM порту (USB->COM переходник) в эмуляторе
и как это выглядит в Колибри запущенной на железе.
Если говорить о стандартном COM интерфейсе, т.е. группы портов 3f8,2f8,3e8,2e8, то в Колибри есть функция 46 - зарезервировать/освободить группу портов в/в. То есть, если функция отработала успешно, приложению становятся доступны указанные порты, и оно может работать с ними так же, как это было раньше в DOS.

В эмуляторе это будет выглядеть следующим образом. Функция 46 вернёт успех, приложение обратится к зарезервированному порту, возникнет GP fault, точно также, как это происходит при выполнении int 40h. Эмулятор должен посмотреть, какая это команда и сэмулировать её поведение.
Kopa wrote:Вроде какие то наработки по использованию Com порта через USB были для Колибри.
Ещё интересен Блютуз интерфейс в этом применении.
Про USB ничего не могу сказать, может clevermouse что-то подскажет.

Re: Эмулятор под Linux

Posted: Sun Apr 22, 2018 3:23 pm
by tsdima
JohnXenox wrote:Чего-то у меня не работает.
А конкретнее?

1. Создаём новый workspace, тут вопросов быть не должно.
2. Правой кнопкой на workspace -> Add an Existing Project, проект должен добавиться.
3. F7 компилируем проект.

Кстати, у меня в виртуалке почему-то не работают брейкпоинты. То-ли виртуалка глючит, то-ли Codelite. Та-же самая ситуация, в том-же плеере, но Ubuntu 14.04 и Codelie 9.0.1 - всё работает.