Перейти к содержимому
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

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


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

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

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


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

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

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

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


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

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

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


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

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

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


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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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


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