Перейти к содержимому
Totoro

Гайд по OpenPeripheral#1 Terminal Glasses.

Рекомендуемые сообщения

Перенос статьи

Эта тема была перенесена из блока "Статьи". Автор оригинала: ShuraGamer.

Сначала выскажу огромное спасибо @Totoro, @Alex, @Fingercomp, @LeshaInc за их программы, благодаря которым более-менее смог разобраться в очках.

Небольшая предыстория(кому неинтересно, основной текст ниже): Началось все с дверного замка Тоторо, в котором использовались неведомые мне до этого очки для вывода информации под названием Terminal Glasses. Мне захотелось побольше узнать о них, но увы-ни в каких, даже англоязычных источниках подробного гайда я не нашел. Спросил на форуме, может кто знает? Кибер предложил написать гайд самому, на халяву вайт получить. Тут-то , немного покопавшись в документации,я и осознал весь размер подложенной мне свинки... Я, наивная душа, подумал, а, фигня, тут же только вывод данных! OpenPeripheral оказался отдельным модом, и писать гайд только по одной его части не имеет особого смысла. Так что придется разбираться полностью. А пока что-держите первую часть гайда по моду OpenPeripheral - Terminal Glasses!

Приятного ознакомления!

Итак, начнем мы с физической части нашей парочки - Terminal Glasses и Terminal Glasses Bridge. В дальнейшем я буду называть их "очки" и "мост" для простоты.

Методы API одинаковы как в ОС, так и в СС Начнем с принципа работы очков. Он достачно прост: информация передается с компьютера на мост, а с моста уже на очки(прим. Можно подключить несколько очков). Если честно, я хз, как данные передаются на очки, видимо тут квантовая зависимость поиграла...

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

Сначала подключаем мост к компу:

OC -- com = require('component') bridge = com.openperipheral_bridge
CC -- bridge = peripheral.wrap(сторона подключения к компьютеру)

Или

bridge=peripheral.wrap("bridge")

Теперь мы разбираемся с API:
brige.addBox([X-координата], [Y-координата] , [Размер по вертикали] , [Размер по горизонтали], [Хексадецимальный код*], [Прозрачность**]) -- добавляет прямоугольник по заданным параметрам.

*Хексадецимальный код - цветовой код, подробнее - гугл.
Малая таблица цветов:

  • Черный #000000
  • Белый #FFFFFF
  • Красный #FF0000
  • Зеленый #00FF00
  • Синий #0000FF
  • Желтый #FFFF00
  • Морская волна #00FFFF
  • Розовый #00FF00

Подробная таблица цветовых кодов:Тык!
Цвета подаются в программу в виде 0xКОД, например 0x000000
**Прозрачность: 1 - полностью видимый; 0 - еле заметный(Дробные числа работают)

bridge.addText([X-координата], [Y-координата] , [Строка] , [Хексадецимальный код]) - выводит строку в нужных координатах.

bridge.clear() - сбрасывает все данные в мосте.

Итак, вы все еще помните принцип передачи данных? Так вот, сами собой данные в очках не появятся, мы должны вручную "отправлять" картинку с моста на очки(При отправлении данных с моста на очки вся предыдущая информация сбрасывается) В этом нам поможет bridge.sync().

Для ясности мы напишем небольшую программку, которая показывала бы нам точное время(Напишем ее на OC):

--TIMEONGLASSES--
com = require('component')
bridge = com.openperipheral_bridge
function addbox()
bridge.addBox(1,1,80,10,0xFFFFFF,0.2)
end
function addtime()
datetime = os.date("!*t",os.time())
time ="TIME"..datetime.hour..":"..datetime.min
bridge.addText(5,2,time,0xFF0000)
end
--MAIN--
while true do
bridge.clear()
addbox()
addtime()
bridge.sync()
os.sleep(0.1)
end

Итак, господа, разберем по полочкам вышенаписанную программу
Функция addbox() создает почти прозрачный прямоугольник слева сверху на экране
Функция addtime() выводит текущее время, кому интересна строчка: datetime = os.date("!*t",os.time()), прошу по ссылке:
Тык!
Далее мы смотрим на главный цикл. Разберем его построчно
while true do и end - бесконечный цикл
bridge.clear() - очищаем мост для новой информации
addbox(),addtime() - добавляем табличку со временем
bridge.sync() - отсылаем табличку на очки
os.sleep(0.1) - ждем десятую секунды

Всем спасибо за внимание, надеюсь, помидоры будут не сильно тухлыми :/
P.S. BB-зло!

Изменено пользователем Totoro
поправил ошибки в исходнике

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тут пара ошибок в программке : 
 

  1. bridge = com.openperipheral_brige => bridge = com.openperipheral_bridge
  2. time ="TIME",datetime.hour,":",datetime.min => time ="TIME"..datetime.hour..":"..datetime.min

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тут вообще не самый идеальный исходник. Это просто репост старого-старого гайда, практически без изменений.

Для OpenComputers лучше воспользоваться модом OpenGlasses, который гораздо удобнее в плане использования,

и даёт куда больше фич.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...