29 июня 2013 г.

Фреймворк "Orca"

Цель данного проекта – реализация платформы (Framework), на базе которой возможно создание пользовательского интерфейса (UI) на любой вкус простыми инструментами (DHTML) для устройств Road Rover и, возможно, других похожих устройств.
Название фреймворка - Orca. Почему? Не ищите глубокого смысла. Просто, мне нравятся эти млекопитающие.

Я не преследовал цели создания законченного UI. И хотя для демонстрации некоторых возможностей фреймворка был создан некий технический UI, он далек от совершенства и может быть рассмотрен лишь, как демонстрационный материал.

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


Структура фреймворка

Фреймворк Orca базируется на движке Sciter, подробнее о котором Вы можете прочитать на официальном сайте http://www.terrainformatica.com.
Логически фреймворк можно разделить на три уровня:
В основе лежит Native Code, написанный на C++. Он инкапсулирует всю низкоуровневую работу с устройством Road Rover (телефон, радио и т.д.) и предоставляет высокоуровневые интерфейсы для скриптовой логики. Эта часть системы в общем случае закрыта от дизайнера UI. Для конструирования различных вариантов пользовательского интерфейса служат уровни лежащие выше.

Над базовым «нативным» уровнем расположен код, написанный на TiScript (подмножество языка JavaScript). На этом уровне прописана вся логика управления UI и его взаимодействия с устройством RR. Если нужно что-то дописать или изменить в логике работы UI, Вы вполне можете это сделать, и в результате создать свое поведение системы. Для разработки на этом уровне вполне достаточно общих знаний DHTML (JavaScript, HTML, CSS) и немного изучить специфику движка Sciter.

На самом верху расположен код HTML. Он отвечает за внешнее представление UI. В принципе, если необходимо поменять лишь внешний вид и расположение элементов интерфейса, то достаточно внести изменения лишь на этом уровне. Для этого достаточно будет общих знаний HTML.

Инструментарий

Для удобства разработки UI на базе фреймворка Orca был создан специальный эмулятор системы под PC, благодаря которому можно создавать, редактировать и отлаживать UI без использования как самого устройства RoadRover, так и эмулятора Windows CE.

Эмулятор состоит из трех частей:
  1. окно, отображающее сам разрабатываемый UI;
  2. панель управления, эмулирующая работу модулей устройства (телефон, радио, MCU);
  3. консоль вывода отладочной информации.

В заключение я продемонстрирую работу UI созданного на базе Orca. Как уже говорил, этот демонстрационный UI не является полноценной заменой оригинального UI Road Rover, он лишь показывает некоторые возможности предоставляемые фреймворком.


Работа над фреймворком продолжается, хотя и небыстрыми темпами. В обозримом будущем я выложу в общий доступ эмулятор под PC и документацию по API фреймворка для того, чтобы желающие могли ознакомиться с его работой и попробовать сделать что-то своё на его основе. Далее я планирую передать приложение под WinCE тем, кто проявит интерес и предложит свои варианты дизайна. Думаю, продвигать продукт в массы имеет смысл с уже полноценным красивым интерфейсом.

8 комментариев:

  1. Я тоже работаю над подобной задачей, только пошел немного другим путем, давайте спишемся, возможно мы сможем быть друг другу полезны

    ОтветитьУдалить
  2. Чувак, давай продолжение... реально интересно...

    ОтветитьУдалить
  3. Здравствуйте! Очень интересный блог, естественно хочется продожения. Интересен вопрос перехвата нажаия хардверных кнопок софтом на магнитоле. Как это реализовать в собственно-написанном приложении? Надеюсь на Ваш ответ. И еще Вы писали что у Вас есть какие-то материалы от произвоиителя, возможно ли их получить от Вас?
    Заранее благодарен. Евгений. slashart @ yandex.ru

    ОтветитьУдалить
    Ответы
    1. Нажатие хардварных кнопок передается все так же через COM. В посте http://progandhack.blogspot.ru/2011/08/shim-dll-com.html я рассказывал, как перехватывать эти сообщения.
      На счет материалов от производителя. Опишите в двух словах чем занимаетесь по этой теме и какие есть наработки. Если будет актуально, то вышлю Вам материалы.

      Удалить
  4. Как продвигается работа? Эмулятор еще не готов?

    ОтветитьУдалить
    Ответы
    1. Эмулятор в рабочем состоянии и, собственно, использовался для разработки. Но сейчас нет времени на саму разработку. Так что, передаю проект в хорошие руки со всеми наработками. Жду заинтересовавшихся.

      Удалить