hohserg
-
Публикации
433 -
Зарегистрирован
-
Посещение
-
Победитель дней
37
Сообщения, опубликованные пользователем hohserg
-
-
Раньше писал для OpenComputers относительно небольшие програмки, с отключенной буферизацией файловых систем, чтобы сразу тестировать в игре(и было довольно удобно).
Когда нужно сделать че-то большое и сложное, то хочется использовать Git для контроля версий. Тут возникают две проблемы:
- файлы одного проекта могут лежать на разных устройствах в игре, в разных фс, следовательно, в разных папках в saves мира
- даже если папка одна, то .git каталог будет частью фс компа, а видеть его из игры совершенно не нужно
Возможно, есть еще какие- то нюансы, которые я упустил.
В общем вопрос состоит в том, какой лучший способ использовать Git для разработки программ для OC?
-
А что если определить критерии оптимума без учета времени вычисления, а алгоритм сделать достаточно быстрым, чтобы временные затраты на вычисление было достаточно малы и не влияли существенно на оптимальность системы в целом
-
Это только для OpenOS, вроде
-
Есть ли какой-то способ отличить tmpfs от filesystem жесткого диска?
~~~
filesystem.getLabel() позволяет отличить
-
1 минуту назад, BrightYC сказал:могут нажатием кнопки продать весь свой инвентарь
Сделай дружественный UI, чтобы юзер не мог неосознанно стрелять себе в ногу
2 минуты назад, BrightYC сказал:что вытаскивать все файлики в случая чего
А какие там файлики вообще хранятся?
-
Кажись, нашел причину: недетерминирован component.list(), в разное время он возвращает компоненты в разной последовательности
Однако откуда может взяться больше одной fs при такой сборке?
-
Если взять произвольный hdd, записать на нем файл, допустим, /test.txt, то filesystem.exists("/test.txt") после включения компа выдает разные значения(true,false), кажется, случайным образом, при этом файл не подвергается изменениям.
При этом за одну сессию включенного компа он выдает одинаковые значения
Минимальный тестовый пример(запускать несколько раз):
init.lua
setmetatable(component,{__index=function(_,key) return component.proxy(component.list(key)()) end}) --тут стоит сделать буферизацию, но на тест не влияет по идее local gpu,filesystem=component.gpu,component.filesystem for i=0,24 do gpu.set(50,i,tostring(filesystem.exists("/test.txt"))) endАналогично работает filesystem.list("/"): иногда верный список файлов, иногда пустой список
Это баг или я что-то делаю не так?
-
23 часа назад, 8urton сказал:Я против войны
Конкуренция может приносить и положительные плоды. Хорошие результаты конкурентов могут дать мотивацию сделай свой продукт лучше
-
Смотрел только видос.
+ Хороший, минималистичный дизайн
+ Навигация по менюшкам быстрая
- Магаз не умеет искать нужные предметы по всему инвентарю
- Не обойтись одними лишь средствами игры(нужна vds)
А что если больше одного игрока встанут на одну PIM?
-
Автор случайно не хочет использовать github или подобный сервис?
-
-
Т.е. это такая очень маленькая и простая ось?
Если да, то выглядит заманчиво)
Вот тут я пытался запустить OpenOS через виртуальный жесткий диск, через сетевую карту, не имея реального жесткого диска в устройстве.
Не получилось из-за каких-то тонкостей OpenOS. Наверное, стоит попробовать Inerpat
~~~
Чтобы пофиксить тот краш с Lua 5.3 нужно в init.lua:298 строчку заменить на
ofs = string.rep(" ",math.floor(((ml+2)/2)-(#arr[i]/2))) -
Значит че-то неправильно с моими конкретными дроном-планшетом.
Версия OC 1.12.2-1.7.4.153
-
В процессе использования возникли следующие баги:
- В интерпретаторе при вводе "computer.uptime()" иногда срабатывает, иногда зависает(не знаю, что именно, планшет или дрон)
- Имеем связанные дрон и планшет. Включаем сначала дрона, потом планшет. Планшет считает, что не приконектился, хотя сообщения быстрых клавиш(движения, например) отправляет, поэтому интерпритатор не работает, параметры дрона показывает N/A
Раньше проблемы не замечал, появилось после того, как попытался использовать uptime, но возможно, это не связано
-
Ок, я посмотрел внимательней твой код, он не записывает на eeprom обнову, а также, как мой просто исполняет ее, Отличие в том, что для перезалива прошивки нужно выключить-включить устройство(ну или крашнуть его) Если обнова достается по url, то это, пожалуй, удобнее
-
Теперь есть)
-
В 31.10.2019 в 18:00, BrightYC сказал:computer.shutdown()
Моя прошивка по идее будет быстрее работать - не нужно тратить время на запись в eeprom и перезапуск
Когда нужно поменять одну строку или какую-то константу, это может быть ощутимо
-
Билд можно сделать дешевле: использовать беспроводную плату 1 лвл, т.к. расстояние небольшое и корпус дрона 1 лвл
-
При помощи ПДУ можно тестировать произвольные прошивки? Не только для дрона?
37 минут назад, BrightYC сказал:в openprograms уже висит 3 года
@Fingercomp хоть бы пост сделал на форуме
-
Актуальность
Раньше, чтобы обновить прошивку дрона или микроконтроллера нужно было
- записать прошивку на eeprom через компьютер,
- снять устройство,
- заменить eeprom через верстак
- поставить устройство
Довольно геморно если устройств много или часто вносятся мелкие изменения во время разработки
Решение
Чтобы не демонтировать устройство можно отправлять ему прошивку по беспородной сетевой карте. Устройство в свою очередь принимает обнову и применяет ее.
Использование
- Загружаем файлы из этой папки(wget)
https://github.com/hohserg1/OpenComputersPrograms/tree/master/wireless_flash
- Прошиваем наш eeprom прошивкой wireless_flash_eeporm.lua и вставляем в устройство
- Копируем адрес сетевой карты устройства
- Запускаем устройство
- Вызов команды wireless_flash покажет usage
Последний использованный адрес сетевой карты устройства запоминается
Теперь можем быстро тестировать прошивки
Программа пока не особо функциональна, но вполне юзабельна.
При разработке ПО для дрона рекомендую юзать планшет.
Какие фичи еще стоит добавить(наверное, я это сделаю):
- Сохранение принятой прошивки
- Получение текущей прошивки устройства
- Сохранение множества адресов беспроводных карт
-
5
-
А робот че-нить отправляет? Типо, данные о окружении
-
Если часто приходится юзать эти таблицы, то лучше через MCPMappingViewer, удобный хаб для всех версий mcp
-
Шансы низкие, пентагон пользуется этой либой
-
Спасибо за информацию)
В моей реализации используется первая версия OpenGlasses, следовательно, можно использовать на версиях отличных от 1.12.2

Как я могу использовать команду print в программе для EEPROM?
в Общие
Опубликовано:
У тебя есть компонент gpu, у него есть функция set
Как-то так
local cy=1 print=function(...) local t={...} for i=1,#t do t[i]=tostring(t[i]) end gpu.set(1,cy,table.concat(t, ' ')) cy=cy+1 endкод взят из bibi