Вопрос по OpenDact

Подписаться на 3Dtoday
Wiskas349
Идет загрузка
Загрузка
19 Февраля 2018
457
7
Вопросы и Ответы
Здравствуйте! Недавно по совету очень хорошего человека на форуме попытался автокалибровку принтера с помощью утилиты openDact. Принтер Anycubic kossel delta pulley. После того, прошёл все пункты из статей, которые объясняли принцип работы с программой openDact столкнулся с проблемой, что программа постоянно выдаёт wait в консоли и ещё пролетает одна строка, скриншот прикрепил. Может быть кто-нибудь знает в чём проблема? Связано ли это с тем, что при загрузке скетча на плату arduino IDE выдаёт сообщение в духе "Не хватает памяти, программа может работать некорректно"? Или всё же проблема в самой плате?
004c35c25a89d8c2a20398231913faa8.png
8cde02bef21754fe1632ef59ed49152b.PNG
Ответы на вопрос

Ответы

19.02.18 в 23:44
печатает на Anet A8
-1
"Не хватает памяти, программа может работать некорректно"? Или всё же проблема в самой плате?
Точно у нас народ не истребим... У нас никто и никогда не читает инструкций и системных требований. Если читает, то никогда не применяет (а вдруг заработает).
Человекочитабельным языком написали: Что программе не хватает памяти. Куда программа будет писать данные? В программе достаточно не инициализировать одну переменную (несколько бит памяти) и всё, работать она не будет, или будет но совсем не корректно...
19.02.18 в 23:58
печатает на Delta-X
2
в корне не согласен с сообщением ардуино иде :D тупо считающей, что если под переменные выделено более 70% озу, то его может не хватить, и пугает этим пользователей (не программистов, в подновляющем числе случаев). программа может вообще не использовать динамическое распределение памяти, и смело использовать хоть все 100% озу. смотря какие задачи решает программа и какими методами для их решения пользовался программист, который не обязан жертвовать 30% озу только ради скрытия этого предупреждения
20.02.18 в 00:14
печатает на Anet A8
-1
1. Не факт что предупреждение выдано при 70%, такое-же предупреждение будет и при 99%.
2. Выделение памяти в чистые 100%, вы это серьёзно? Хоть раз такое видели? Не 99, а именно 100?
3. Программа может, но не факт, что именно в этой программе не используются например массивы, куда читается какая нибудь информация из файла с неопределенным размером... Тут можно уронить и программу с 1% памяти...

По тому как и что может быть в программе могу перечислять еще очень долго... По крайней мере убедился на практике, что среды разработки и компиляторы "умнее" 90% программистов...
20.02.18 в 03:08
печатает на Delta-X
1
1. факт подсчитать не проблема, компилятор выдаёт два определённых значения - используется/доступно. и кстати, предупреждение в переводе звучит как "возможно программе не хватит памяти, и бла бла бла"
2. да, я начинал с 51-ой серии микроконтроллеров, у которых всего 127 байт озу было, и не все доступны к тому же. оптимизация и ассемблер наше всё... хотя, возможно, пара - тройка байт у меня и осталась тогда свободными, не помню уже
3. конкретной в этой программе, выяснить затруднительно, но скорее все буферы имеют конечный размер заведомо меньше доступной памяти. и в случае срабатывания вашего примера с файлом (просто длинный коммент в g-code) она упадёт даже при наличии 99.9% свободной памяти, и без всяких предупреждений компилятора
4. среды разработки и компиляторы тоже пишут программисты...

ну и какие мануалы вы предлагаете ТС читать, датащит на мегу? или марлин (а он существует, и там что написано - забейте на 3д печать, при таком предупреждении, или срочно допаяйте внешнее озу)? не заведёшь - не поедешь ;)
20.02.18 в 07:20
печатает на Anet A8
0
1. Не факт что именно первое.
2. Свободные или не используемые? Если не используемые 2-3 байта, снимаю шляпу... У меня ни разу с 2003 года такого не было. Всегда влезал с запасом.
3. Ну так я и приводил пример так - чтобы наверняка :)
4. Ну тут уж Вам наверное виднее. Arduino немного не мой профиль, если IDE под нее пишут настолько убогие, то всё понятно... И проблемы с размерами тоже :)

Ничего не предлагаю. Просто констатирую, что программа openDact написанная на C# может генерировать что угодно. Я посмотрел исходники - там много всего, рыться в этом я не собираюсь...
20.02.18 в 11:59
печатает на Delta-X
0
1. согласен, не факт, но под микроконтроллеры обычно так и пишут. "кучи" для них зло
2. тут справедливы оба утверждения, поскольку явно определял переменные и буферы, и память "закончилась" перед нижней границей стека (он там сверху вниз выделяется, и под стек нужно минимум 6 байт). сейчас у меня тоже всегда запас. а тогда, что дали - то дали :D
3. а тут, если подумать, тоже возможны варианты. к примеру, файл можно парсить и на лету, без загрузки в буфер, или грузить кусками в единожды выделенный буфер
4. ардуино тоже не мой профиль. баги в ардуино есть точно, к счастью, компилятор у них не свой, а gcc

OpenDact, как бы и не связана с этим предупреждением в ардуино. К слову, в своё время, перепробовал несколько вариантов OpenDact (готовые сборки), не одна толком не заработала, то виснет, то вылетает, то даже порты не видит. В чужих исходниках разбираться так же - в лом
19.02.18 в 23:44
печатает на Delta-X
1
или дело в OpenDact...
сообщение wait это нормальное сообщение, если есть чего ждать (нагрева или перемещения в какую-то точку).
а "пролетающая строка" это текущая температура

Для написания комментариев, пожалуйста, авторизуйтесь.