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


Фотография

[CC] [OC] Гайд по OpenPeripheral#1 Terminal Glasses.

cc guide openperipheral terminal glasses article oc

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 734
  • Уровень сигнала: 0,3%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 07 Сентябрь 2017 - 11:28

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

Эта тема была перенесена из блока "Статьи". Автор оригинала: 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: 12 Март 2018 - 12:51
поправил ошибки в исходнике


#2 Оффлайн   Nifon

Nifon
  • Пользователи
  • Сообщений: 6
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 12 Март 2018 - 08:19

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

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

  • Totoro это нравится

#3 Оффлайн   Totoro

Totoro
  • Автор темы
  • Хранители Кода
  • Сообщений: 1 734
  • Уровень сигнала: 0,3%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 12 Март 2018 - 12:58

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

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

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


  • ECS это нравится





Темы с аналогичным тегами cc, guide, openperipheral, terminal, glasses, article, oc

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных