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

Running Kolibri and its programs in other OSes
  • tsdima wrote:Очередной коммит. Надеюсь в этот раз всё получится.
    Да, все поля Netstat отобразила заполненными
    и WebView отобразил страничку :)
  • Ну наконец-то! Спасибо за терпение :)
  • 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.
  • Kopa wrote:NSinstall выдаёт такой лог.
    Очевидно, при загрузке help.png он получил код ошибки от DNS сервера. Могу только предположить, что DNS серверу не понравились слишком частые запросы об одном и том-же домене. Кэшировать ответы надо. Причём на уровне системы, т.к. запрашивать могут разные программы. Т.е. надо расширять сетевые функции.
    Kopa wrote:Отдельно NetSurf, при этом, запускается и работает, хотя и с какими то mcall.
    mcall 77 это футексы, надо бы сделать...

    Вообще, что NetSurf, что WebView работают пока как-то нестабильно, и я подозреваю, что проблема не в эмуляторе.
  • tsdima wrote:Вообще, что NetSurf, что WebView работают пока как-то нестабильно, и я подозреваю, что проблема не в эмуляторе.
    Последние версии Netsurf, при попытке сделать скролл колёсиком мышки "закрываются" (исчезает окно)
    примерно с таким сообщением

    Code: Select all

    Unhandled case.Previous_mouse_buttons^b is :0x101010
    это так и должно быть в текущей версии эмулятора?
  • Kopa 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
    JohnXenox wrote:На мой вгляд, неправильно выводить в терминал далеко некритические сообщения, в то время, когда программа OPENDIAL, по существу, имеет все необходимые файлы для удавлетворения своих потребностей и корректной работы. Кстати сама программа, в Колибри, в такой ситуации, ворнинги не выводит, что вполне логично.
    Добавил _DEBUG, теперь это сообщение выводится только в отладочной конфигурации Codelite.
    JohnXenox wrote:Также заметил, что в окнах, где есть сколлбар, скроллинг колёсиком не работает. Или работает неправильно.
    Теперь работает. Заодно доделал фильтр мышиных событий, теперь EOLITE в эмуляторе выдаёт только одно всплывающее меню, как и задумано.


    Заметил также, что мышиные события иногда доставляются не тем окнам, по сравнению с реальной Колибри. Например если в WebView открыть всплывающее меню, а потом щёлкнуть не по нему, то меню не закроется (мышиное событие пройдёт мимо). А если был подсвечен второй пункт меню, то закроется основное окно WebView :) Кстати, аналогичное поведение есть и в реальной Колибри:
    - открыть в WebView всплывающее меню
    - подвигать мышкой, чтобы подсветился второй пункт меню
    - кликнуть на заголовок окна WebView
  • Кстати, аналогичное поведение есть и в реальной Колибри:
    - открыть в WebView всплывающее меню
    - подвигать мышкой, чтобы подсветился второй пункт меню
    - кликнуть на заголовок окна WebView
    Fixed #7252.
    Должно исправится и в эмуле. Теперь там более явно указывается какой процесс завершить.
    Из хаоса в космос
  • 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 по какой-то причине не посылается активному окну.
  • Интересно получается, если не по заголовку кликнуть, а попытаться растянуть окно. Окно исчезает, а мы его ещё растягиваем :)
  • 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
    The Glass is Always Half Full! :mrgreen:
  • Появился один попутный вопрос.

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

    P.S. Вроде какие то наработки по использованию Com порта через USB были для Колибри.
    Ещё интересен Блютуз интерфейс в этом применении.
  • Kopa wrote:Как может быть проброшен интерфейс к COM порту (USB->COM переходник) в эмуляторе
    и как это выглядит в Колибри запущенной на железе.
    Если говорить о стандартном COM интерфейсе, т.е. группы портов 3f8,2f8,3e8,2e8, то в Колибри есть функция 46 - зарезервировать/освободить группу портов в/в. То есть, если функция отработала успешно, приложению становятся доступны указанные порты, и оно может работать с ними так же, как это было раньше в DOS.

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

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

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

    Users browsing this forum: No registered users and 0 guests