From 46c831a4d25a1d4b7a2884556e3e72a4340b9ad4 Mon Sep 17 00:00:00 2001 From: freebip <67588503+freebip@users.noreply.github.com> Date: Thu, 30 Jul 2020 13:54:52 +1000 Subject: [PATCH] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Исправления и дополнения --- README.md | 84 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 54 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 222a228..55356d4 100644 --- a/README.md +++ b/README.md @@ -1,51 +1,75 @@ # Bip Emulator - BipOS Amazfit Bip +Эмулятор окружения BipOS для часов Amazfit Bip -## +## Назначение -![alt-](https://github.com/freebip/BipEmulator/raw/master/images/main.png " ") +Написание и отладка приложений для часов Amazfit Bip под управлением мода BipOS (0.5.X) +в среде Microsoft Visual Studio 2019 - Amazfit Bip BipOS (0.5.X) - Microsoft Visual Studio 2019 +![alt-текст](https://github.com/freebip/BipEmulator/raw/master/images/main.png "Главное окно") -## +## Описание - : Host Proxy. -Proxy Libbip , - . Proxy , - Host. - Host : -* . -* , . -* (, .) -* +Эмулятор состоит из двух модулей: Host и Proxy. +Proxy обрабатывает вызовы функций библиотеки Libbip поступающие от программы, работа которой +происходит в эмуляторе. Часть этих вызовов модуль Proxy обрабатывает сам, часть перенаправляет +модулю Host. +На модуль Host возложены более высокоуровневые задачи: +* Обработка вызовов графических функций и отображение результата их работы на пользовательском интерфейсе. +* Обработка ввода команд пользователя, специфичных для эмулируемого устройства. +* Эмуляция специфичных данных эмулируемого устройства (Давление, Геолокационные координаты и пр.) +* Отоброжение отладочных данных программы -## +## Изображения -![alt-](https://github.com/freebip/BipEmulator/raw/master/images/options.png "") +![alt-текст](https://github.com/freebip/BipEmulator/raw/master/images/options.png "Настройки") -![alt-](https://github.com/freebip/BipEmulator/raw/master/images/options.png " ") +![alt-текст](https://github.com/freebip/BipEmulator/raw/master/images/options.png "Отладочный вывод") -## +## Использование -* Proxy . -* Proxy . -* Host . -* -* -* - +* Добавьте исходный код в Proxy модуль. +* Откомпилируйте Proxy модуль. +* Запустите Host модуль. +* Завершите исполнение эмулятора +* Исправьте исходный код +* Повторять со второго пункта бесконечное кол-во раз -## +## Особенности использования - . +В данном проекте используется связка C# <-> CLI/C++. +Поэтому добавляемые исходные файлы должны иметь расширение .cpp (не относится к заголовочным файлам) +***Но*** код должен быть написан в соответствии со стандартами чистого Си т.к. в последствии его предстоит +собирать с помощью gnu toolchain под Си. -![alt-](https://github.com/freebip/BipEmulator/raw/master/images/explorer.png " ") +Так как при использовании расширения .cpp мы переводим исходные файлы в разряд C++, то на код накладываются +более суровые ограничения (например, в плане приведения типов по-умолчанию) -## +Было так: +``` +void* get_ptr_temp_buf_2(); +struct calend_** calend_p = get_ptr_temp_buf_2(); +``` +Надо так: +``` +void* get_ptr_temp_buf_2(); +struct calend_** calend_p = (calend_**) get_ptr_temp_buf_2(); +``` - WIP . Libbip . +Proxy модуль является динамически линкуемой библиотекой (.dll), от которой зависит компиляция Host модуля. +Поэтому после всех изменений принудительно откомпилируйте Proxy модуль, а после этого запускайте программу. + +## Пример + +Для демонстрации возможностей эмулятора в него добавлено приложение [Календарь](https://github.com/MNVolkov/Calend) + +![alt-текст](https://github.com/freebip/BipEmulator/raw/master/images/explorer.png "Исходные фаайлы календаря") + +## Примечание + +У проекта WIP статус. Обработка части функций библиотеки Libbip не реализована.