avevad / code

OpenComputers devices emulator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

**Работа над проектом остановлена**

Обновлений больше не будет, репозиторий перемещен в архив

CODE

CODE - настраиваемый эмулятор устройств OpenComputers (Customizable OpenComputers Device Emulator)

Компиляция

Linux:

mkdir cmake-build-debug
cd cmake-build-debug
cmake ..
make

Запуск

Перед запуском следует создать папку проекта (см. "Создание проекта"), считаем что она находится в <папка_проекта>.

Эмуляция компьютера

Linux:

./code <папка_проекта> start <имя_компьютера>

Создание проекта

CODE работает с проектами. Проекты состоят из компонентов и компьютеров. Для хранения данных проекта используется следующая структура папки проекта:

папка_проекта/
    components/
        имя_компонента_1.тип_компонента_1/
            address.txt
            [файлы конфигурации компонента №1 ...]
        имя_компонента_2.тип_компонента_2/
            address.txt
            [файлы конфигурации компонента №2 ...]
        [...]
    computers/
        имя_компьютера_1/
            address.txt
            tempfs.txt
            memory.txt
            components.txt
        имя_компьютера_2/
            address.txt
            tempfs.txt
            memory.txt
            components.txt
        [...]
    font.ttf

Таким образом, для нормального функционирования эмулятора в папке проекта нужно иметь файл шрифта, используемого компонентами (экранами и видеокартами) проекта - font.ttf, папку для хранения компонентов - components и папку для хранения компьютеров - computers. Подробнее про конфигурацию компьютеров и компонентов - см. следующие разделы.

Для лучшего понимания структуры папки проекта можно ознакомиться с примером проекта - он находится в папке sample_project. Данный проект содержит несколько компонентов, по мере разработки эмулятора проект может быть расширен. Актуальность ПО (ОС, загрузчики) в этом проекте не гарантируется. Также в этом проекте содержится файл шрифта, который, по мнению автора эмулятора, лучше остальных подходит для использования в эмуляторе - Unifont by St. GIGAFONT Typefaces. Можно использовать этот же шрифт в своих проектах или выбрать другой.

Конфигурация компьютера

Для создания компьютера следует придумать для него название, создать папку с таким именем в директории computers папки проекта, разместить в ней следующие файлы конфигурации и заполнить их в соответствии с характеристиками компьютера:

  1. address.txt - адрес компьютера (см. раздел "Адреса компонентов").
  2. tempfs.txt - имя компонента-файловой системы, который будет использоваться в качестве временной ФС компьютера.
  3. memory.txt - кол-во оперативной памяти компьютера в байтах.
  4. components.txt - названия компонентов, подключенных к компьютеру, каждое в отдельной строке (см. "Конфигурация компонентов").

Конфигурация компонентов

Для создания компонента нужно для него придумать название, выбрать тип (см. "Типы компонентов") и создать папку в директории components папки проекта с названием <имя_компонента>.<тип_компонента>. После этого в созданную папку добавить файл address.txt с адресом компонента (см. раздел "Адреса компонентов"). Далее, в эту же папку нужно добавить файлы конфигурации компонента, свои для каждого типа компонента, подробнее о них - в следующем разделе.

Типы компонентов

В OpenComputers есть много типов компонентов, однако не все удается быстро реализовать. В следующем списке указаны типы компонентов, которые реализованы (хотя бы частично), а также необходимые для них файлы конфигурации.

eeprom (EEPROM)

Реализован частично.
Файлы конфигурации:

  • primary.lua - основные данные EEPROM.
  • secondary.bin - дополнительные данные EEPROM.
  • label.txt - метка EEPROM.

Реализован полностью.
Файлы конфигурации:

  • data - папка с данными ФС.
  • label.txt - метка файловой системы.
  • readonly.txt - наличие данного файла означает, что ФС доступна только для чтения.

screen (Экран)

Реализован частично.
Файл конфигурации:

  • config.txt - содержит 5 чисел через пробел: глубина цвета, ширина и высота (в блоках), макс. ширина и высота (в символах).

Реализован частично.
Файл конфигурации:

  • config.txt - содержит 3 числа через пробел: глубина цвета, макс. ширина и высота (в символах).

keyboard

Документация по данному типу компонента не была найдена, поэтому компонент реализован только для совместимости.
Этот тип компонента не требует файлов конфигурации.

Реализован частично.
Этот компонент не нужно создавать в проекте, он автоматически будет подключен к компьютеру.

Адреса компонентов

Каждый компонент и компьютер помимо названия имеет свой адрес. В отличие от названия, цель которого сократить время ввода компонентов и компьютеров во время конфигурации, адресу не следует придавать особое значение - он должен быть случайным. В Linux адрес для компонента можно сгенерировать следующей командой: uuidgen -r ( > address.txt если требуется).

About

OpenComputers devices emulator


Languages

Language:Lua 58.2%Language:Objective-C 19.0%Language:C++ 14.9%Language:C 7.1%Language:CMake 0.7%Language:Shell 0.1%