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


Фотография

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


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

#1 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 785
  • Уровень сигнала: 46,38%
  • В игре: 398 час. 9 мин.

Награды

                 

Отправлено 09 Июль 2015 - 11:15

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

 

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

 

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



#2 Оффлайн   Quant

Quant
  • Пользователи
  • Сообщений: 537
  • Уровень сигнала: 0,01%
  • В игре: 0 час. 4 мин.
  • Городinterface IQuant

Награды

     

Отправлено 09 Июль 2015 - 13:15

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



#3 Оффлайн   Krutoy

Krutoy
  • Гуру
  • Сообщений: 499
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 11 Июль 2015 - 06:44

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

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


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

#4 Оффлайн   Pofigist

Pofigist
  • Пользователи
  • Сообщений: 51
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.
  • ГородМосква

Отправлено 20 Апрель 2016 - 21:05

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



#5 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • Сообщений: 1 230
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 20 Апрель 2016 - 21:26

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

#6 Оффлайн   unknown

unknown
  • Пользователи
  • Сообщений: 63
  • Уровень сигнала: 14,16%
  • В игре: 121 час. 36 мин.

Награды

        

Отправлено 22 Апрель 2016 - 20:02

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

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

Сообщение отредактировал unknown: 22 Апрель 2016 - 20:03


#7 Оффлайн   AndyLarkin

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

Отправлено 18 Февраль 2018 - 20:02

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


  • lokin135 и AtomicScience это нравится




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

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