ItsMakar
-
Публикации
27 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем ItsMakar
-
-
@astral17 а ты случайно не "astral17#7127" с "Factorio [RU]" в дискорде? (у меня раньше был ник "./hack_you.sh", да знаю тупой ник)
-
Только что, Bs0Dd сказал:Фуууух, уже же было сказано. В компьютер вшиты три библиотеки: component, computer и unicode. Они существуют сами по себе и OpenOS при загрузке только добавляет в component (и в computer вроде тоже) свои, программные функции. Потому луа файла этих библиотек и нету.
ясно
-
52 минуты назад, Bs0Dd сказал:Вот, именно про это расширение я и говорил. Поскольку это уже программная фича, реализованная на уровне OpenOS.
require? Она хоть с виду и является самостоятельной функцией, но на самом деле входит в вышеупомянутую либу package:
Я не в курсе почему ее вынесли отдельно, но значит так надо.
я имею ввиду component
-
Только что, ECS сказал:В дополнение к инфе от @Bs0Dd поясню, что если ты кодишь под биос, то работаешь на самом низком уровне, доступном в моде. Следовательно, фича component.имяКомпонента.метод(...) из OpenOS доступна не будет, т.к. она добавляется на более позднем этапе во время инициализации самой ОС:
Поэтому для обращения к компоненту из-под биоса есть 2 варианта:
-- Чтобы обратиться к компоненту, нам нужно знать его уникальный адрес -- Список адресов всех доступных компонентов с указанным типом можно получить через метод component.list("имя") -- В одном компьтере может быть установлено несколько компонентов одного типа, поэтому метод list -- возвращает функцию-итератор, при каждом вызове которой возвращается адрес следующего компонента local gpuIterator = component.list("gpu") local gpu1Address = gpuIterator() local gpu2Address = gpuIterator() -- Конструкцию выше можно скомпоновать в цикл for address in component.list("gpu") do -- Делаем что угодно с каждой имеющейся GPU end -- В случае EEPROM все несколько проще. Поскольку в 1-ом компьютере может быть только 1 EEPROM, то нам -- следует вызвать функцию-итератор хотя бы 1 раз, чтобы получить адрес 1-го (и единственного) EEPROM local eepromAddress = component.list("eeprom")() -- Раз адрес компонента EEPROM нам известен, теперь мы можем обратиться к нему и вызвать -- какой-нибудь метод. Сделать это можно двумя путями. Первый более линейный, его следует -- использовать для каких-то разовых операций "в лоб": local data = component.invoke(eepromAddress, "getData") component.invoke(eepromAddress, "setData", "sample text") -- Второй более универсальный, и позволяет создать так называемый прокси компонента, то есть -- таблицу в памяти, содержащую все доступные методы компонента. Разумеется, он расходует больше ОЗУ, -- однако работать с ним в разы удобнее: local eepromProxy = component.proxy(eepromAddress) local data = eepromProxy.getData() eepromProxy.setData("sample text")
Кроме того, "чистые" компьютеры без ОС имеют глобальные переменные component, computer и unicode, которые всегда доступны в биосе, и в случае OpenOS "вырезаются", становясь частью глобальной библиотеки package:
По этой причине в биосе ты должен обращаться к глобальной библиотеке component, а в OpenOS для этого уже требуется конструкция require("component"). Почему авторы так поступили? Да хрен знает, их ОС - их правила. Но путаницу это вносит знатную
я знаю это и я просто забыл что component.proxy работает не по названию а по аддрессу то есть я пытался сделать так component.proxy("eeprom") и про require("component") это вообще что за библиотека? я не нашел ее в файлах опенос
-
просто я делаю свою ос но loadfile dofile и require скопипастил из опенос и я в душе не еб* чем они отличаются
-
4 часа назад, eu_tomat сказал:@ItsMakar Думаю, использованы беспроводные платы, и сигнал доходит два раза: по воздуху и через кабель.
Сравни два дублирующихся события. Чем они отличаются друг от друга? Расстоянием?
да расстояние разное у 1 ноль блоков у 2 больше в общем я понял
-
В 13.11.2016 в 11:26, Totoro сказал:У неё есть фатальный недостаток.
Какой?
-
Я смотрел его несколько месяцев назад а щас не могу найти чтобы посмотреть как там виртуальный компонент создается
-
3 часа назад, eu_tomat сказал:Сервер и компьютер соединены кабелем или другими блоками?
Да
-
Только что, eu_tomat сказал:Сетевая карта одна на 2 компьютера?
нет в сервере 1 и в компьютере 1
-
Только что, eu_tomat сказал:Такое может быть, например, в случаях:
- Компьютер имеет две или более сетевых плат с открытым портом, на который поступило сообщение.
- В сети с этим компьютером имеется другой компьютер с сетевой платой с тем же самым открытым портом.
нет только 2 компьютера во всем мире и сетевая карта только 1
-
в openos есть библиотека component (которой нет в файлах ос) но мне нужно получить код биоса из своей ос но компонента eeprom не существует
-
-
-
-
7 часов назад, hohserg сказал:Ну так может, стоит рассказать о фичах, о плюсах и минусах? Как-нить в список оформить, чтоли
проблема в том что их нет пока есть только загрузчик (который время от времени не запускается с ошибкой 3 аргумент нил и я вообще не е** какая строка) и чтото вроде шелла
-
1 час назад, eu_tomat сказал:а.. оно не отображалось чтото
-
я отправляю на сервер 1 сообщение через modem.broadcast но события создается 2 в итоге код срабатывает 2 раза и плохо
-
а где код? я хотел в нем посмотреть как открывать дверь из опен секьюрити ибо ее нет в списке компонентов редстоуном не открывается а кабель и опенкомпов подключается
-
Только что, eu_tomat сказал:Сервера нет. Осталась лишь сборка для одиночной игры.
upd: и одиночная игра тоже почему-то не работает.
ясно
-
В 15.11.2021 в 00:54, hohserg сказал:Это может произойти, если у апи openglasses нету метода setRenderPosition. Хороший вопрос - почему его нет. Программа работает на версии мода:
https://www.curseforge.com/minecraft/mc-mods/openglasses2/files/3143467
Возможно, ты пытался запустить на 1.7.10
погоди что? это не работает на 1.7.10?
-
я не могу запустить лаунчер че с сервером или он не существует больше?
-
4 часа назад, Zer0Galaxy сказал:Все компоненты системы получают запрос от пользователя. Но поскольку физически компоненты расположены в разных точках пространства, расстояния с которых получен запрос, будут разные для каждого компонента и зависеть от положения пользователя. Зная эти расстояния и координату базового контроллера, система вычисляет координату пользователя и возвращает эту координату в ответном сообщении.
ясно
-
~~В общем исходного кода нет пока ибо автор не за пк соответственно не может его закинуть на гитхаб~~
Короче mOS - самая лучшая (нет) ос в опен компухтерах которая была написана за несколько дней половина методов были культурно украдены из openOS а несколько методов для загрузчика из CyanBIOS есть чето вроде шелла но он нифига не работает почти просто выполняет луа файл который указан

bibi или удобство разработки eeprom-кода и операционных систем
в Операционные системы
Опубликовано: · Изменено пользователем ItsMakar
gpu.bind(component.list("screen")()) <--- component.list("screen")() ---> 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 'screen'Получается
gpu.bind('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 'screen')2 аргумент функции gpu.bind это reset: boolean
Поэтому ошибка
С какого то момента добавили второй аргумент в gpu.bind
Здесь его нет, а здесь есть
Можно заменить на
gpu.bind(({component.list("screen")()})[1])