therealbattler 2 Опубликовано: 22 декабря, 2015 Здравствуйте! Ко мне пришла в голову мысль - сделать дистанционное управление реактором. То есть ты сидишь за компьютером, тебе выводится, скажем, температура реактора, и в случае перегрева он отключается. Это сделать несложно, но в модах нет температурных сенсоров. Поэтому выход для меня следующий - сделать робота, который будет мониторить этовсёб а такжеб возможно, работать с инвентарём реактораю Вопрос в следующем - можно ли это сделать? Пытался ли кто-нибудь и что из этого получилось? Спасибо за ответы! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 188 Опубликовано: 22 декабря, 2015 Хм. Если компьютер не может получить температуру реактора в виду отсутствия сенсора, то почему это сможет сделать робот? В чем у робота преимущество? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 22 декабря, 2015 Дима, видимо, робот будет по замыслу сидеть в самом реакторе, в центре активной зоны, прямо попой на стержнях, и будет там всё мониторить, следить за цепной реакцией и орать о критической температуре=) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 188 Опубликовано: 22 декабря, 2015 Не. Я понимаю, робот может вставлять/вынимать стержни и охладители. Но как контролировать температуру? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 22 декабря, 2015 Не. Я понимаю, робот может вставлять/вынимать стержни и охладители. Но как контролировать температуру? понятно, что никак)) К ванильному реактору, по идее, нужно просто прикрутить адаптер, контроллер реда и транспозер (или вай-фай робота для укладки/замены стержней). И тогда реактор становиться полностью управляемым с ПК, со всем мониторингом, свистелками и пыхтелками. Проблема там присутствует пока только вроде для ЖЯР, так как там нет толком пока порта управления для ПК(адаптера), и не совсем понятно, как этой "многоблочкой" управлять программно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Kartograf 55 Опубликовано: 22 декабря, 2015 Могу предположить по поводу робота. Робот перед выключением (от перегрева процессора) по wifi подаёт сигнал, что реактор очень сильно нагрелся, а пк в свою очередь будет вырубать реактор и пытаться запустить робота .(Если что это шутка) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
BarBoss 89 Опубликовано: 22 декабря, 2015 (изменено) Ко мне пришла в голову мысль - сделать дистанционное управление реактором. То есть ты сидишь за компьютером, Адаптер, приставленный к реактору предоставит необходимый интерфейс, а транспозер позволит помещать/извлекать компоненты в реакторе. Но работает адаптер только с обычным реактором. С жидкостной версией этот номер не пройдёт. Например - print(component.reactor_chamber.getHeat()) - выведет на печать температуру реактора Само собой, что робот с адаптером работать не может. Только компьютер. О том, как узнать доступные методы: http://computercraft.ru/topic/752-raskrytie-vozmozhnostei-adaptera-s-modami-ic2exp-i-gc/?do=findComment&comment=9854 Изменено 22 декабря, 2015 пользователем BarBoss Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 413 Опубликовано: 23 декабря, 2015 О том, как узнать доступные методы: http://computercraft.ru/topic/752-raskrytie-vozmozhnostei-adaptera-s-modami-ic2exp-i-gc/?do=findComment&comment=9854 В OpenOS уже есть программа для просмотра методов. Пишем: components -l <имя компонента> — и всё, весь список с документацией. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 753 Опубликовано: 23 декабря, 2015 Что-то типа такого? local component = require('component') local gpu = component.gpu local event = require('event') local term = require('term') local reactor if component.isAvailable('reactor') then reactor = component.reactor elseif component.isAvailable('reactor_chamber') then reactor = component.reactor_chamber end local tbl = { { {3, 2}, {9, 2}, {15, 2}, {3, 5}, {9, 5}, {15, 5}, {3, 8}, {9, 8}, {15, 8}, {3, 11}, {9, 11}, {15, 11}, {3, 14}, {9, 14}, {15, 14}, {3, 17}, {9, 17}, {15, 17} }, { {3, 2}, {9, 2}, {15, 2}, {21, 2}, {3, 5}, {9, 5}, {15, 5}, {21, 5}, {3, 8}, {9, 8}, {15, 8}, {21, 8}, {3, 11}, {9, 11}, {15, 11}, {21, 11}, {3, 14}, {9, 14}, {15, 14}, {21, 14}, {3, 17}, {9, 17}, {15, 17}, {21, 17}}, { {3, 2}, {9, 2}, {15, 2}, {21, 2}, {27, 2}, {3, 5}, {9, 5}, {15, 5}, {21, 5}, {27, 5}, {3, 8}, {9, 8}, {15, 8}, {21, 8}, {27, 8}, {3, 11}, {9, 11}, {15, 11}, {21, 11}, {27, 11}, {3, 14}, {9, 14}, {15, 14}, {21, 14}, {27, 14}, {3, 17}, {9, 17}, {15, 17}, {21, 17}, {27, 17}}, { {3, 2}, {9, 2}, {15, 2}, {21, 2}, {27, 2}, {33, 2}, {3, 5}, {9, 5}, {15, 5}, {21, 5}, {27, 5}, {33, 5}, {3, 8}, {9, 8}, {15, 8}, {21, 8}, {27, 8}, {33, 8}, {3, 11}, {9, 11}, {15, 11}, {21, 11}, {27, 11}, {33, 11}, {3, 14}, {9, 14}, {15, 14}, {21, 14}, {27, 14}, {33, 14}, {3, 17}, {9, 17}, {15, 17}, {21, 17}, {27, 17}, {33, 17}}, { {3, 2}, {9, 2}, {15, 2}, {21, 2}, {27, 2}, {33, 2}, {39, 2}, {3, 5}, {9, 5}, {15, 5}, {21, 5}, {27, 5}, {33, 5}, {39, 5}, {3, 8}, {9, 8}, {15, 8}, {21, 8}, {27, 8}, {33, 8}, {39, 8}, {3, 11}, {9, 11}, {15, 11}, {21, 11}, {27, 11}, {33, 11}, {39, 11}, {3, 14}, {9, 14}, {15, 14}, {21, 14}, {27, 14}, {33, 14}, {39, 14}, {3, 17}, {9, 17}, {15, 17}, {21, 17}, {27, 17}, {33, 17}, {39, 17}}, { {3, 2}, {9, 2}, {15, 2}, {21, 2}, {27, 2}, {33, 2}, {39, 2}, {45, 2}, {3, 5}, {9, 5}, {15, 5}, {21, 5}, {27, 5}, {33, 5}, {39, 5}, {45, 5}, {3, 8}, {9, 8}, {15, 8}, {21, 8}, {27, 8}, {33, 8}, {39, 8}, {45, 8}, {3, 11}, {9, 11}, {15, 11}, {21, 11}, {27, 11}, {33, 11}, {39, 11}, {45, 11}, {3, 14}, {9, 14}, {15, 14}, {21, 14}, {27, 14}, {33, 14}, {39, 14}, {45, 14}, {3, 17}, {9, 17}, {15, 17}, {21, 17}, {27, 17}, {33, 17}, {39, 17}, {45, 17}}, { {3, 2}, {9, 2}, {15, 2}, {21, 2}, {27, 2}, {33, 2}, {39, 2}, {45, 2}, {51, 2}, {3, 5}, {9, 5}, {15, 5}, {21, 5}, {27, 5}, {33, 5}, {39, 5}, {45, 5}, {51, 5}, {3, 8}, {9, 8}, {15, 8}, {21, 8}, {27, 8}, {33, 8}, {39, 8}, {45, 8}, {51, 8}, {3, 11}, {9, 11}, {15, 11}, {21, 11}, {27, 11}, {33, 11}, {39, 11}, {45, 11}, {51, 11}, {3, 14}, {9, 14}, {15, 14}, {21, 14}, {27, 14}, {33, 14}, {39, 14}, {45, 14}, {51, 14}, {3, 17}, {9, 17}, {15, 17}, {21, 17}, {27, 17}, {33, 17}, {39, 17}, {45, 17}, {51, 17}} } local tSize = {[22] = 1, [28] = 2, [34] = 3, [40] = 4, [46] = 5, [52] = 6, [58] = 7} local r_t = tSize[reactor.getInventorySize()] local side_r = 3 local function list() for k = 1, #tbl[r_t] do local item = reactor.getStackInSlot(k) if item ~= nil then gpu.fill(tbl[r_t][k][1], tbl[r_t][k][2], 3, 2, '#') end end end local function setka() for i = 1, #tbl[7] do gpu.fill(tbl[7][i][1], tbl[7][i][2], 3, 2, 'X') end end local function click() while 1 do local e = {event.pull('touch')} for j = 1, #tbl[r_t] do if e[3] >= tbl[r_t][j][1] and e[4] >= tbl[r_t][j][2] and e[3] <= tbl[r_t][j][1]+3 and e[4] <= tbl[r_t][j][2]+2 then term.clear() setka() list() local item = reactor.getStackInSlot(j) if item ~= nil then gpu.set(1, 20, 'item: '..item.display_name) if item.dmg ~= nil and item.max_dmg ~= nil then gpu.set(30, 20, ' '.. string.sub(item.dmg/item.max_dmg, 1, 4) .. '%') end break end end end gpu.set(1, 21, 'energy: '..reactor.getEUOutput()) gpu.set(1, 22, 'heat: '..string.sub(reactor.getHeat()/reactor.getMaxHeat(), 1, 4)..' %') end end term.clear() setka() list() click() Как руки дойдут - доведу до ума. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах