Перейти к публикации
Форум - ComputerCraft
Alex

Как узнать методы компонентов в ОС

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

Очень часто, почти каждый день кто-то спрашивает в чате, как узнать методы компонентов, какие есть методы для работы с МФСУ, реакторами и пр. 

 

Написал простенькую функцию для листинга методов на экран или на страничку веб сайта, если у Вас имеется интернет карта в ПК.

 

http://pastebin.com/5nQnM3ED

pastebin get 5nQnM3ED viewmethods.lua

local component = require("component")
local term = require('term')
local text = require("text")
local components = {}
local methods = {}
local offset = 0
term.clear()
for address, name in component.list() do
    if name:len() > offset then
      offset = name:len()
    end
    components[address] = name
end

offset = offset + 2
print(' -------- Найденные компоненты --------')
for address, name in pairs(components) do
  io.write(text.padRight(name, offset) .. address .. '\n')
end
print(' --------------------------------------')
io.write('Введите имя компонента, методы которого нужно узнать: \n>> ')
local name = io.read()
if component.isAvailable(name) then
	t = component.getPrimary(name)
	local filename = name..'_doc.tmp'
	local file = io.open(filename, 'w')
	for k,v in pairs(t) do
		table.insert(methods,'>> Метод: '..k..'\nДокументация: '..tostring(v))
    	file:write('>> Метод: '..k..'\nДокументация: '..tostring(v)..'\n')
	end
	file:close()
	if component.isAvailable('internet') then
		print('Перейдите по ссылке на сайт для ознакомления!')
		require('shell').execute('pastebin put '..filename)
		else
			term.clear()
			print('Нажимайте ENTER для продолжения')
			for k,v in pairs(methods) do
				print('['..k..'] '..v)
				io.read()
			end
	end
else
	print('Ошибка. Компонента '..name..' не существует!')
end

UEQIhml.png

 

6U7BTv5.png

 

9I75NYX.png

 

QXf3kpb.png

  • Like 7

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


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

Интересная вещица,надо попробовать.

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


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

Цвета добавь. Не понятно же, строки сливаются.

А вывод таблицей прикольный. 

  • Like 1

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


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

А вот у меня вопрос. На компе стоит всего один жесткий диск, но система показывает три компонента filesystem. Откуда еще два? Сначала думал, что один от eeprom, но то отдельный компонент, так что я в недоумении.

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


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

Некоторые платы, например, интернет-карта имеют свою файловую систему, содержащую нужные утилиты. Подключенные файловые системы и файлы содержащиеся на них можно посмотреть в папке /mnt.

  • Like 1

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


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

А вот у меня вопрос. На компе стоит всего один жесткий диск, но система показывает три компонента filesystem. Откуда еще два? Сначала думал, что один от eeprom, но то отдельный компонент, так что я в недоумении.

Если ещё не забыл, то одна из них – временная фс (`tmp`), а вторая может быть от интернет-платы (только для чтения). Изменено пользователем unknown

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


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

Методы компонентов можно узнать с помощью утилиты components.
components <component_name>(напр. reactor) -l

  • Like 3

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


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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×