Bs0Dd
-
Публикации
124 -
Зарегистрирован
-
Посещение
-
Победитель дней
44
Сообщения, опубликованные пользователем Bs0Dd
-
-
"сomponent" - библиотека, существующая вне OpenOS (как и "computer"). Насколько я помню - оська только расширяет функционал. Но базовые функции "зашиты" в компьютер и вполне спокойно дергаются при выполнении кода в голой системе.
Вот например данная демка при запуске из EEPROM спокойно выплевывает на экран (в сыром виде) собственное содержимое и зависает в цикле (дабы пк не отключался сразу после вывода).
local eeprom = component.proxy(component.list("eeprom")()) local gpu = component.proxy(component.list("gpu")()) local firm = eeprom.get() gpu.set(1, 1, firm) while true do computer.pullSignal() end
-
2
-
-
У компов есть RAM-диск размером в 64Кбайт, в котором можно хранить любые файлы, но как и полагается, данные на нем при выключении стираются. Он и есть этот второй компонент.
А отличить их легко. RAM-диск на запрос getLabel() всегда вернет лейбл "tmpfs" и spaceTotal() у него будет равен 65536.
-
В 26.12.2021 в 11:32, Taruu сказал:Нашел еще более критичный баг.
Ох блииин, я уже и забыть успел про это творение. И сайтик так и не доделал. Тааак, придется, чую, вспоминать что там и как у меня было. Займусь, как немного освобожусь от учебы.
-
2 часа назад, MHD сказал:В принципе я сам могу забилдить, главное мне надо где-то исходники взять и понять как именно билдить
Но хотелось бы готовое
Насчет всего этого мне лучше в дискорд писать. Тут я во первых бываю не так часто, а во вторых впринципе не очень удобное место для переписки.
Bs()Dd#5299
-
14 минуты назад, MHD сказал:С нкурсесом решилось. Просто добавил флаг -lncurses
UPD: А нет, не решилось. Это у меня на моём компиляторе всё решилось. А вот этот компилятор RISC-V вовсе не знает о существовании ncurses
Правильно, а кто ж его собирать то будет под риск-в? Неужели Пушкин?
У меня где-то лежала собранная библиотека с хедерами, но я давно уже ОС2 не занимался, надо искать.
-
20 часов назад, Fingercomp сказал:Тогда б с SIGILL падал, по идее.
Можно в coredumpctl debug покопаться и посмотреть, отчего SIGSEGV выпал.
Ох, если б я только мог эту ошибку воспроизвести. Хотя, постойте-ка. У меня же старая версия стоит, с весны. А тут уже ноябрьская. Неужели кривая, надо проверить, как буду дома
16 часов назад, MHD сказал:64-битная у меня. У меня есть ещё другой вопрос. Как получить размеры терминала у компьютера через C? Через Ioctl выдаёт нули, переменных $LINES и $COLUMNS нету, ncurses не вариант, так как с линкером какие-то траблы.
В самом ос2? Ох, а фиг его знает, ибо у меня нкурсесные проги нормально собирались. Ну ладно, проверю компилятор вечером. Если он таки кривой, кину версию старее (но 100% рабочую).
-
В 07.12.2021 в 21:38, MHD сказал:На x86 убунту не пашет, выдаёт Segmentation fault
Странное дело, на 20 убунте все ок. А какой она разрядности? Если 32-бит, то причина в этом. Компилятор под 64-бит системы, насколько ппомню.
-
В 20.11.2021 в 09:18, VyaCHACHsel сказал:проект не забросил?
Ну сейчас ФСка на стадии поддержки - каких-то новых разработок не ведется (во первых учеба, во вторых за время разработки ФС меня знатно утомила и особого желания уже нет), но баги при их обнаружении фиксятся в свободное время.
Ах и да, грузиться с кассеты сейчас можно имея только лишь модифицированный BIOS - DiskTape Lua BIOS. В теме про него написано.
-
Обновление - Версия 1.54
- Исправлен баг, при котором вызов lastModified("") возвращал nil (критичный для MineOS).
- Исправлен баг, возникающий при попытке чтения неформатированной кассеты.
(Обновление вышло еще месяц назад, но я так и забыл об этом написать
)
-
2
-
2 часа назад, SANCHEI сказал:Как открыть редактирование кода?
Ежели в игровом компьютере, так edit <файл>
А там дальше клавиши для управления описаны.
-
У меня кстати была идейка набросать IDE для Майноси, дабы было проще делать графические проги под нее. НО тема эта достаточно сложная, так что... даже не знаю дойдут ли руки)0)0))).
-
1
-
-
Хэй, у меня тут зачесались ручки накодить какую-нить игрульку под MineOS (а то их что-то совсем мало). Ну и я вспомнил, что угадайка была в первых версиях оси (еще на основе OpenOS). Ну, короче, GuessWord for MineOS.
Из основных отличий:
- Игра переписана с нуля для поддержки GUI оськи.
- Более минималистичный и однотонный интерфейс (современная мода, а вы как хотели)
- Увеличен размер окна, элементы теперь крупнее.
- Поддержка нескольких языков (раскладка клавиатуры описывается в файле локализации, размеры не более 13х3)
- Поддержка ввода с реальной клавиатуры
К сожалению, у меня пока еще нет базы слов для английского языка, поэтому, если кто хочет помочь с составлением, пишите сюда или в дискорд: Bs()Dd#5299.
Скачать игру можно в MineOS App Market.
-
4
-
1
-
6 часов назад, NEO сказал:В более свежих стандартах используют snake_case с добавлением _t, это относится к typedef.
Чтож, перевернул все и переделал на более правильный вариант, раз уж так.
Нехорошо конечно менять систему библиотеки после выхода в публику, но пока прошло мало времени и никто не начал ей пользоваться, можно и поменять разок.
-
1
-
1
-
-
1 час назад, NEO сказал:Зачем использовать uppercase для typedef? По сишному кодстайлу uppercase-ом определяют дефайны.
Ну, как я уже говорил, на си ранее почти не писал, а кастомные типы вообще делаю впервые, ну пошёл от того, что файловый дескриптор там записан апперкейсом (FILE), оттуда и DEVICE, RESULT и так далее. Не знаю стоит ли переделывать теперь, придётся всю библиотеку перекопать и программы.
-
1
-
-
Coverett - библиотека для взаимодействия с HLAPI устройствами мода OpenComputers II.
Что такое HLAPI устройство? Это новый тип устройств в OC2, к которому относятся большинство девайсов, вроде модулей для робота, красной карты, звуковой карты и прочих. Они управляются через "контроллер", который общается JSON сообщениями с компьютером через символьный файл-поток (по умолчанию "/dev/hvc0"). Для Lua автор уже добавил в систему библиотеку "devices", однако она не слишком быстра, как и Lua в целом. Для С (куда в первую очередь писалась библиотека) работа с JSON сообщениями - довольно утомительная задача. Coverett призван упростить общение с HLAPI устройствами в C и совместимых с ним языках. Разумеется, программы не станут от этого очень легкими в написании, C есть C. Однако, процесс разработки программ для OC2 заметно упростится. Сама по себе библиотека состоит только из "ядра" с набором стандартных функций. Наборы функций для устройств подключаются в виде отдельных "модулей" (папка devices) со своими заголовочными файлами (заголовки нужных устройств затем подключаются в исходнике программы). Поэтому, если вы очень хороший знаток C, то можете писать модули для своих устройств и подключать их к библиотеке при сборке.
К сожалению на данный момент полноценная документация еще не готова (две руки - очень мало), но в заголовочных файлах библиотеки есть небольшие комментарии-описания (в формате doxygen), а также несколько программ-примеров, что немного поможет в работе с библиотекой.
Также необходимо учесть, что библиотека находится в альфа-стадии. Поэтому не исключено наличие багов и (особенно) утечек памяти, поскольку ранее на C я практически не писал)).
(Инструкция по сборке, а также собранная библиотека и программы находятся там)
Немного про скорость:
Скрытый текстГлавное преимущество Coverett над devices для Lua - скорость. Приложения хоть и сложнее в написании и отладке, но быстрее в исполнении, что может быть очень полезно, учитывая невысокую производительность компьютеров OC2.
Показываю на примере:
- Программа, выводящая список всех HLAPI устройств на Lua (от автора мода) и моя на C (обратите внимание на время выполнения)
Немногим более секунды, довольно приличная разница.
- Программа для управления редстоун устройствами на Lua и C
Тоже секунда разницы.
- И, наконец, программа для приема файлов с реального компьютера на Lua (import.lua от автора мода) и на C
Прием одного и того же файла занял 24 секунды (~8.8kbit/s) и 5 секунд (~42.4kbit/s) соответственно.
-
9
-
1
-
1
-
10 часов назад, ZKoshak сказал:@Bs0Dd, у тебя на гитхабе ссылка на riscv64-linux-musl-cross оно реально работает в oc2? oO
Кхем, это ссылка на кросс-компилятор для компиляции программ под архитектуру RISC-V 64, используемую в компах ос2.
Что значит "кросс"? Эт значит, что компилятор работает на привычных нам x86 компах, но программы генерирует для той самой архитектуры. Там, на сайте, есть конечно и нативная версия (может компилировать файлы непосредственно на ос2 машинке). Но как не крути, компилятор слишком большой и на 8мб жёсткий диск никак не лезет, да и с мощностью вторых опенкомпов я представляю, какая будет скорость сборки программы.
-
16 часов назад, AtomicScience сказал:Если под Windows... То нужно разбираться
Та достаточно иметь MinGW и тот же гит для догрузки субмодуля argparse.
Собрал х64 версию и добавил batch враппер (ибо стандартный враппер для Линукса), но для него также нужно установить FFMPEG.
После достаточно скопировать ролик в папку с программой и кинуть ролик на скрипт, а полученный файл уже проигрывать плеером.
Его я чуть подредактировал: оригинальная версия падала с ошибкой если не было стримера (хотя "немой" режим там предусмотрен).
-
3
-
2
-
-
Обновление - Версия 1.52
- Исправлен критический баг в функции makeDirectory (при попытке создать папку происходила ошибка).
- Исправлен критический баг в функции remove (при попытке удалить папку происходила ошибка).
-
2
-
1
-
Для таких как вы есть замечательнейшая операционка MineOS, в которой есть очень функциональный и хорошо документированный GUI. Так что если немного почитать - получится делать весьма удобные программки. Кнопки и прогресс бары там конечно же есть)).
-
1
-
1
-
-
10 часов назад, Fingercomp сказал:Поэтому ошибки нужно обработать, отрапортовать, ввод отвалидировать; надеяться, что у проги всё будет прекрасно, нельзя.
В данный момент, увы, не имею при себе ни компьютера, ни даже постоянного доступа в Интернет. Через недельку, если доберусь, поправлю инсталлер.
-
1
-
-
5 минут назад, Fingercomp сказал:Если лень человечески ошибки обрабатывать, файлы советую открывать так:
Да я посчитал, что юзер будет достаточно умен и не попытается поставить программу на readonly файловую систему. Но у новичков, как оказывается, бывает все((((.
-
3
-
-
-
1 час назад, NEO сказал:Может ли быть что major-ый индекс должен инкрементироваться?
Я собирался, но эта версия все же имеет более промежуточный характер, я сейчас думаю над реализацией нормальной и экономной таблицы, тогда будет вторая версия, а эти две... следовало бы назвать тестовыми. Вообще в делах версионирования я нуб, вот и выходит как-то так(.
P.S.: переверсионировал обновление до версии 1.50, так, пожалуй, будет корректнее
-
1
-
-
Обновление - Версия 1.50
ВНИМАНИЕ!!! Данная версия драйвера несовместима с предыдущей, поэтому перед обновлением необходимо сохранить данные с кассет и отформатировать их новой версией.
- Исправлен критический баг с параметрами стримера
- Небольшое количество мелких фиксов
- Изменена структура файловых блоков, поэтому данная версия несовместима с предыдущей.
- Теперь драйвер доступен для операционной системы MineOS. Управление осуществляется графическим приложением.
-
2


нету компонента eeprom
в Компоненты
Опубликовано:
Вот, именно про это расширение я и говорил. Поскольку это уже программная фича, реализованная на уровне OpenOS.
require? Она хоть с виду и является самостоятельной функцией, но на самом деле входит в вышеупомянутую либу package:
https://github.com/MightyPirates/OpenComputers/blob/master-MC1.7.10/src/main/resources/assets/opencomputers/loot/openos/lib/package.lua#L45-L70
Я не в курсе почему ее вынесли отдельно, но значит так надо.