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

Лидеры


Популярный контент

Показан контент с высокой репутацией 24.09.2021 в Сообщения

  1. 5 баллов
    Coverett - библиотека для взаимодействия с HLAPI устройствами мода OpenComputers II. Что такое HLAPI устройство? Это новый тип устройств в OC2, к которому относятся большинство девайсов, вроде модулей для робота, красной карты, звуковой карты и прочих. Они управляются через "контроллер", который общается JSON сообщениями с компьютером через символьный файл-поток (по умолчанию "/dev/hvc0"). Для Lua автор уже добавил в систему библиотеку "devices", однако она не слишком быстра, как и Lua в целом. Для С (куда в первую очередь писалась библиотека) работа с JSON сообщениями - довольно утомительная задача. Coverett призван упростить общение с HLAPI устройствами в C и совместимых с ним языках. Разумеется, программы не станут от этого очень легкими в написании, C есть C. Однако, процесс разработки программ для OC2 заметно упростится. Сама по себе библиотека состоит только из "ядра" с набором стандартных функций. Наборы функций для устройств подключаются в виде отдельных "модулей" (папка devices) со своими заголовочными файлами (заголовки нужных устройств затем подключаются в исходнике программы). Поэтому, если вы очень хороший знаток C, то можете писать модули для своих устройств и подключать их к библиотеке при сборке. К сожалению на данный момент полноценная документация еще не готова (две руки - очень мало), но в заголовочных файлах библиотеки есть небольшие комментарии-описания (в формате doxygen), а также несколько программ-примеров, что немного поможет в работе с библиотекой. Также необходимо учесть, что библиотека находится в альфа-стадии. Поэтому не исключено наличие багов и (особенно) утечек памяти, поскольку ранее на C я практически не писал)). Репозиторий на GitHub. (Инструкция по сборке, а также собранная библиотека и программы находятся там) Немного про скорость:
  2. 1 балл
    Чтож, перевернул все и переделал на более правильный вариант, раз уж так. Нехорошо конечно менять систему библиотеки после выхода в публику, но пока прошло мало времени и никто не начал ей пользоваться, можно и поменять разок.
  3. 1 балл
    Легаси . В более свежих стандартах используют snake_case с добавлением _t, это относится к typedef.
  4. 1 балл
    Ну, как я уже говорил, на си ранее почти не писал, а кастомные типы вообще делаю впервые, ну пошёл от того, что файловый дескриптор там записан апперкейсом (FILE), оттуда и DEVICE, RESULT и так далее. Не знаю стоит ли переделывать теперь, придётся всю библиотеку перекопать и программы.
  5. 1 балл
    Вопрос по оформлению кода. Зачем использовать uppercase для typedef? По сишному кодстайлу uppercase-ом определяют дефайны.
  6. 1 балл
    Например, можно изучить код этой библиотеки и по аналогии написать свои функции.
  7. 1 балл
    Хотелось бы научится создавать графики, вертикальные, горизонтальные. Например есть выход с реактора и мфсу, хотелось бы сделать прогресс бар заполнения хранилища. Буду благодарен за любую помощь..)
  8. 1 балл
    А если без библиотеки? функций, напрмер?
  9. 1 балл
  10. 1 балл
  11. 1 балл
    Ну, на счёт дискорда, не думаю вообще делать через него, там мороки слишком много, но можно попробовать. Попытаюсь понять чё с программой сначала, может в скором времени починю/сделаю по другому
  12. 1 балл
  13. 1 балл
    спасибо, всё работает
  14. 1 балл
    моя подруга сделала вот такой код: Его задача: нажать на кнопку и после 120 секунд он выдаёт красный сигнал но не в этом суть... как сделать так что бы os.sleep(120) не ждала вся система а ждал только сам таймер ( просто после нажатия на кнопку "start" кнопка остаётся прежней, но только по истечению 120 секунд она меняется на "stop" )
  15. 1 балл
    Добавил в свое прежнее сообщение про таймер. Так же рекомендую ознакомиться с какой либо из GUI-библиотек на форуме.
  16. 1 балл
    тут ещё кое-что передали: Нет, дело в том, что у меня есть кнопка выхода из программы и мне надо, чтобы она работала даже во время ожидания. Были попытки сделать через thread, но выполнения os.sleep() ждёт вся система. Следовательно мне надо заменить os.sleep() на функцию, которую не ждёт вся система, а только основной поток. Вопрос: как сделать такую функцию?
  17. 1 балл
    Если дело только в надписи, то sleep() нужно делать после обновления надписи: if tButtons.text == "start" then tButtons.text = "stop" refresh(i) os.sleep(120) rs.setOutput(1,15) goto continue end Если же нужно делать еще что либо в течении этих 120-ти секунд, используйте event.timer
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...