petrmikheev пишет: Кстати, я тут подумал. Я могу сделать вам текстовый терминал. Но это будет еще не скоро. Не проще ли вам взять
уже готовый проект
от nckm? В качестве терминала он куда лучше моего подойдет.
А какие у него перспективы? "Готовый проект" был бы интересен, если бы поддерживал несколько виртуальных терминалов и был реализован на плате, стоимостью не более 500 руб. Максимум, что готов бы за него отдать - 1000 руб. за маленькую коробочку с разъёмами. Возможно, даже регулярно бы ей пользовался. Но целый Марсоход-2 ради алфавитно-цифрового терминала, это как из пушки по воробьям.
Что касается VT-100 терминала на базе miksys. Я не прошу лишь ради моего любопытства делать такой терминал. Если у вас своё видение развития проекта, то правильнее будет развивать его в русле этого видения. Если мыслей по поводу развития miksys нет, то начать с VT100 будет неплохим шагом. Разумеется, по моему скромному мнению.
Кстати, я ещё в одном месте порекламировал ваш проект - там где обитают люди с фабов и фаблесс компаний. Т.ч. не удивляйтесь, если кто-то возьмёт исходники на github и выпустит miksys. :)
А если серьёзно, то я всё же хотел вернуться к протоколу. Вы ведь не против если об этом здесь поговорим? Идея простая - неважно что передаётся по последовательному каналу, но в какой-то момент ведомое устройство становится VT100 терминалом и поддерживает VT100 esc-последовательности. К стандартным esc-последовательностям добавляется новая, которая переводит терминал в режим Marsohod-USB-link.
В этом месте я хочу задать два вопроса - не считаете ли такое обсуждение оффтопиком в этой теме. И обратиться ко всем читающим - поддерживаете ли идею создания такого протоклоа и согласны ли с вышеописанной процедурой инициализации протокола?
Если возражений не будет, то предлагаю не изобретать велосипед там, где он не нужен и взять за основу подмножество
HDLC протокола
.
Поле адрес задействовать для выбора терминального устройства.
Биты [7:6]
- ввода
- вывода
- блочные и последовательные устройства
- резерв расширения протокола
Биты [5:4] - свойства устройства (текст/графика, последовательное/блочное, клавиатура/мышь и т.д.)
Биты [3:0] - номер устройства, например номер тестовой консоли. В каких-то случаях если количество устройств заведомо меньше 9, 5, 3, 2 устройств, старшие биты могут использоваться для расширения протокола.
Формат информационного поля определяется номером устройства. Например, в случае VT100 передаются сырые данные, так, как если бы они передавались по физическому порту.
Скорее всего понадобится ещё некоторое устройство, представляющее целиком терминал, хотя бы для того, чтобы передавать хосту информацию о переключении консоли (пользователь нажал Alt+F2).
Вот как-то так мне видится протокол. Что касается 2D и 3D графики, векторных шрифтов - тут мяч на вашей стороне. Но я бы мог комментировать, делать замечания и предлагать поправки. В общем - нести здоровую критику и вносить конструктивные предложения. В перспективе можно было бы даже создать комитет по стандарту. И возможно это не помешает, а поспособствует научной карьере - в следующей диссертации могли бы развивать эту тему.
Кстати, предложенный вариант транспортного протокола поверх HDLC вполне бы мог быть реализован и
nckm - автором VT100 терминала для Марсохода. А почему бы и нет? Предлагаю создателям Марсохода принять участие в обсуждении протокола.