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

hohserg

Пользователи
  • Публикации

    433
  • Зарегистрирован

  • Посещение

  • Победитель дней

    37

Сообщения, опубликованные пользователем hohserg


  1. Раньше писал для OpenComputers относительно небольшие програмки, с отключенной буферизацией файловых систем, чтобы сразу тестировать в игре(и было довольно удобно).

    Когда нужно сделать че-то большое и сложное, то хочется использовать Git для контроля версий. Тут возникают две проблемы:

    • файлы одного проекта могут лежать на разных устройствах в игре, в разных фс, следовательно, в разных папках в saves мира
    • даже если папка одна, то .git каталог будет частью фс компа, а видеть его из игры совершенно не нужно

    Возможно, есть еще какие- то нюансы, которые я упустил.

    В общем вопрос состоит в том, какой лучший способ использовать Git для разработки программ для OC?


  2. А что если определить критерии оптимума без учета времени вычисления, а алгоритм сделать достаточно быстрым, чтобы временные затраты на вычисление было достаточно малы и не влияли существенно на оптимальность системы в целом


  3. 1 минуту назад, BrightYC сказал:

    могут нажатием кнопки продать весь свой инвентарь

    Сделай дружественный UI, чтобы юзер не мог неосознанно стрелять себе в ногу

    2 минуты назад, BrightYC сказал:

    что вытаскивать все файлики в случая чего

    А какие там файлики вообще хранятся?


  4. Если взять произвольный 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("/"): иногда верный список файлов, иногда пустой список

     

    Это баг или я что-то делаю не так?


  5. Смотрел только видос.

    + Хороший, минималистичный дизайн

    + Навигация по менюшкам быстрая

    - Магаз не умеет искать нужные предметы по всему инвентарю

    - Не обойтись одними лишь средствами игры(нужна vds)

     

    А что если больше одного игрока встанут на одну PIM?


  6. Т.е. это такая очень маленькая и простая ось?

    Если да, то выглядит заманчиво)

     

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

    Не получилось из-за каких-то тонкостей OpenOS. Наверное, стоит попробовать Inerpat

    ~~~

    Чтобы пофиксить тот краш с Lua 5.3 нужно в init.lua:298 строчку заменить на

    ofs = string.rep(" ",math.floor(((ml+2)/2)-(#arr[i]/2)))

     


  7. В процессе использования возникли следующие баги:

    • В интерпретаторе при вводе "computer.uptime()" иногда срабатывает, иногда зависает(не знаю, что именно, планшет или дрон)
    • Имеем связанные дрон и планшет. Включаем сначала дрона, потом планшет. Планшет считает, что не приконектился, хотя сообщения быстрых клавиш(движения, например) отправляет, поэтому интерпритатор не работает, параметры дрона показывает N/A

    Раньше проблемы не замечал, появилось после того, как попытался использовать uptime, но возможно, это не связано


  8. Ок, я посмотрел внимательней твой код, он не записывает на eeprom обнову, а также, как мой просто исполняет ее, Отличие в том, что для перезалива прошивки нужно выключить-включить устройство(ну или крашнуть его) Если обнова достается по url, то это, пожалуй, удобнее


  9. В 31.10.2019 в 18:00, BrightYC сказал:

    computer.shutdown()

    Моя прошивка по идее будет быстрее работать - не нужно тратить время на запись в eeprom и перезапуск

     

    Когда нужно поменять одну строку или какую-то константу, это может быть ощутимо


  10. Актуальность

    Раньше, чтобы обновить прошивку дрона или микроконтроллера нужно было

    • записать прошивку на eeprom через компьютер,
    • снять устройство,
    • заменить eeprom через верстак
    • поставить устройство

    Довольно геморно если устройств много или часто вносятся мелкие изменения во время разработки

     

    Решение

    Чтобы не демонтировать устройство можно отправлять ему прошивку по беспородной сетевой карте. Устройство в свою очередь принимает обнову и применяет ее.

     

    Использование

    • Загружаем файлы из этой папки(wget)

    https://github.com/hohserg1/OpenComputersPrograms/tree/master/wireless_flash

    • Прошиваем наш eeprom прошивкой wireless_flash_eeporm.lua и вставляем в устройство
    • Копируем адрес сетевой карты устройства
    • Запускаем устройство
    • Вызов команды wireless_flash покажет usage

    Последний использованный адрес сетевой карты устройства запоминается

    Теперь можем быстро тестировать прошивки:lol:

     

     

    Программа пока не особо функциональна, но вполне юзабельна.

    При разработке ПО для дрона рекомендую юзать планшет.

     

    Какие фичи еще стоит добавить(наверное, я это сделаю):

    • Сохранение принятой прошивки
    • Получение текущей прошивки устройства
    • Сохранение множества адресов беспроводных карт
    • Нравится 5
×
×
  • Создать...