По моему мнению даже он добавил кое-что из версии 2.0
Мне тоже так показалось...
И главное - что будем использовать готовое?
Это хороший вопрос... Я потратил ночку, чтобы поискать, что в этом направлении сделано.
Вообще, подобные системы есть (исключая разве что графический ввод), только вот...
они в таком интегрированном и поддерживаемом виде денег стОят.
Кто готов вложиться?
По такой схеме работают всякие С-stamp, Basic-stamp,
http://www.zbasic.net/В основном, правда, это бэйсики. И, если честно, я склоняюсь к такому же решению.
Но меня, честно говоря, не очень пугает перспектива наваять такую канитель с нуля.
Понятно, что в упрощенном виде.
А что именно и в какую сторону предлагается сильно упрощать?
Практически все...
(вы же помните, я готов жертвовать функционалом ради юзабилити
)
Первое, что подлежит упрощению - это, по-моему, язык:
Выкинуть к чертовой матери "лишние" чары, флоаты, структуры,
юньоны, тайпдефы, указатели, ссылки итп.
Второе - операционная среда.
Только равноценные потоки, которые обмениваются через глобальные переменные и все.
Добавлено спустя 4 минуты 18 секунд:C / Basic / Pascal / Java
Склоняюсь к подмножеству Си или бэйсика...
Написание программы начинается с конфигурации, где дите показывает компу,
в какую дырку (порт контроллера) у него что воткнуто.
Тут задаются режимы работы порта и портам даются имена
(например, вот эта дырка работает на выход шимом и называется "ПравыйМотор",
эта дырка работает цифровым входом и называется "ЗаднийБампер").
Конфигурация не может меняться по ходу выполнения программы.
Если контроллер подключен к компу, то возможно здесь же проводится тест
(управление вручную) и калибровка (например, когда шим уменьшается, серва едет направо).
Соответственно можно сохранить конфигурацию в файл,
загрузить из файла, или загрузить из контроллера
(в контроллер конфигурация загружается вместе с программой и запоминается)
Дальше дите описывает алгоритм на функциональном языке:
то есть простую блок-схему - последовательность действий.
Веревки - пути данных может быть исключить нафиг (???).
Ввести нормальные переменные.
Все переменные - публичные члены классов.
Классы могут описывать функцию (в том числе функцию самого
верхнего уровня) или устройство.
Так, например, есть переменная ПравыйМотор.Скорость или МояПерваяПрограмма.СчетчикУгловВКомнате.
Переменные без прямого указания класса - это члены той функции,
в которой они написаны (локальные). То есть можно просто написать "СчетчикУгловВКомнате"
Переменная может принимать строковое или числовое значение.
Типы и переменные заранее не объявляется.
Набор "ключевых слов" языка такой:
- Условие (if)
- Цикл (for, while...)
- Выбор варианта (switch)
- Новый процесс (new_task)
- простая математика и логика (+-*/= <>) (битовые операции можно, имхо, выкинуть)