Update README.md

Исправления и дополнения
This commit is contained in:
freebip 2020-07-30 13:54:52 +10:00 committed by GitHub
parent 401e31b331
commit 46c831a4d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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 не реализована.