Страница 10 из 85
Re: Управление контроллером mk1 (planet-cnc)
Добавлено: 25 июн 2015, 13:49
selenur
Moonglow писал(а):Karbofos писал(а):QSerialPort
В данном случае, mk1 контроллер - это не USB-CDC класс устройств, поэтому данный класс не подойдет.
2selenur
Не пробовал Mono для сборки под Linux ? Да и Микрософт недавно открыл исходный код платформы .NET... неспроста

Пробовал, работу только интерфейсной части, работу с USB, не проверял....
Re: Управление контроллером mk1 (planet-cnc)
Добавлено: 25 июн 2015, 14:37
Karbofos
selenur писал(а):Суппер! вообще молодец

Спасибо! Если не против, буду давать готовый работающий код на c++ и пояснять, почему я так сделал. весь код, как только управлялка будет работать, тоже выдам, но , может быть, небольшие кусочки с пояснениями - проще.

Например, в работе OpenGL немного переделал выдачу координатных осей и самой фигуры. Координатные сделал так:
GLint xArray[][3] = {
{0, 0, 0}, {10, 0, 0}, {10, 0, 0},
{9, 1, 0}, {10, 0, 0}, {9, -1, 0}
};
//ось x
glColor3f(0.0f, 1.0f, 0.0f);
glVertexPointer(3, GL_INT, 0, xArray); // 3 координаты каждого пункта
glDrawArrays(GL_LINES, 0, 6); //рисуем массив линий, 6 пунктов массива
т.к. рисовать сразу все - менее ресурсоёмко для графики. Коенчно, в этом случае не слишком затратно нарисовать отдельно несколько линий, но при работе с фигурой G-Code на слабых устройствах может начать тормозить. Немного переделал из-за идеи работать на RasPi. Не знаю даже, будет ли работать на нём, но попытаюсь.
Re: Управление контроллером mk1 (planet-cnc)
Добавлено: 25 июн 2015, 15:12
selenur
Karbofos писал(а):selenur писал(а):Суппер! вообще молодец

Спасибо! Если не против, буду давать готовый работающий код на c++ и пояснять, почему я так сделал. весь код, как только управлялка будет работать, тоже выдам, но , может быть, небольшие кусочки с пояснениями - проще.

Например, в работе OpenGL немного переделал выдачу координатных осей и самой фигуры. Координатные сделал так:
GLint xArray[][3] = {
{0, 0, 0}, {10, 0, 0}, {10, 0, 0},
{9, 1, 0}, {10, 0, 0}, {9, -1, 0}
};
//ось x
glColor3f(0.0f, 1.0f, 0.0f);
glVertexPointer(3, GL_INT, 0, xArray); // 3 координаты каждого пункта
glDrawArrays(GL_LINES, 0, 6); //рисуем массив линий, 6 пунктов массива
т.к. рисовать сразу все - менее ресурсоёмко для графики. Коенчно, в этом случае не слишком затратно нарисовать отдельно несколько линий, но при работе с фигурой G-Code на слабых устройствах может начать тормозить. Немного переделал из-за идеи работать на RasPi. Не знаю даже, будет ли работать на нём, но попытаюсь.
О! дельный совет... я с 3D мало знаком, о таком незнал..

у меня небольшие тормоза на компьютере появляются после 200000 строк G-кода (сформировано слайсером для 3D принтера), посмотрю что получиться применив данный метод

Re: Управление контроллером mk1 (planet-cnc)
Добавлено: 25 июн 2015, 15:34
Karbofos
Да у меня тоже знания в пределах курсовой работы и демки к ней, написанной полностью мной. не больше.
Там смысл заключается как раз в том, что при выдаче всей матрицы, обработка раскидывается по ядрам графики и проходит параллельно.
Re: Управление контроллером mk1 (planet-cnc)
Добавлено: 29 июн 2015, 10:47
Karbofos
selenur писал(а):
О! дельный совет... я с 3D мало знаком, о таком незнал..

у меня небольшие тормоза на компьютере появляются после 200000 строк G-кода (сформировано слайсером для 3D принтера), посмотрю что получиться применив данный метод

Сергей, к концу недели я сделаю и дам протестированный кусок кода для выдачи объекта целиком. Примерно собираюсь переделать, как здесь:
http://qt-apps.org/content/show.php/QRe ... ent=160728
в файле gcoder.cpp есть пример работы с OpenGL.
Re: Управление контроллером mk1 (planet-cnc)
Добавлено: 29 июн 2015, 10:59
selenur
Вот тоже задумался, на qt перекинуть проект который из Gerber(не доделан немного) и PLT форматов генерирует G-kod, мне в принципе всеравно на чем писать

а так вроде универсальнее получается...
Re: Управление контроллером mk1 (planet-cnc)
Добавлено: 29 июн 2015, 13:55
Karbofos
selenur писал(а):Вот тоже задумался, на qt перекинуть проект который из Gerber(не доделан немного) и PLT форматов генерирует G-kod, мне в принципе всеравно на чем писать

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

Re: Управление контроллером mk1 (planet-cnc)
Добавлено: 30 июн 2015, 23:43
Karbofos
Потихоньку продвигаются тестирования. Прикручиваю чтение разных форматов файлов, тестирую usb интерфейс. Так что, Сергей, можешь потом перенять парсеры. Конструктор G-Code пока даже не начинал портировать, и без него тестировать много.
Re: Управление контроллером mk1 (planet-cnc)
Добавлено: 01 июл 2015, 06:28
selenur
Конструктор я думаю, удобнее сделать как отдельную программку, так-же с 3D вуализацией, а потом например через буфер обмена, перебрасывать данные из конструктора в управляющую программу, так-же это применительно и к другой программе импорта данных.
Что касается управляющей программы, то тут я думаю тебе стоит тогда предусмотреть поддержку 2-х контроллеров mk1 и mk2, т.к. на текущий момент, логичнее данный проект развивать совместно, если конечно есть желание, я например дальше продолжу парсить протокол обмена, и прочее...
Если сейчас нормально получиться запускать на убунте и винде, то я не вижу смысла тянуть текущий мой проект, который заточен чисто под виндовс...

Re: Управление контроллером mk1 (planet-cnc)
Добавлено: 01 июл 2015, 10:24
Karbofos
Потом я могу тоже и конструктор портировать на qt4, как только всё в основной программе заработает. usb интерфейс попытаюсь доделать на неделе, может на выходных придётся еще уделить время. Постараюсь на выходных выдать исходники.

с mk2 у меня сейчас трудно будет. Против того, чтобы расширить функционал совсем ничего не имею.

Только за. Перенести с C# на плюсы - не вопрос, но пока у меня есть только возможность проверять с usb6560t4v3.
Re: Управление контроллером mk1 (planet-cnc)
Добавлено: 01 июл 2015, 10:28
selenur
у меня есть и mk1 и mk2, так что с проверкой проблемм нет....
Ты главное не спеши, лучше сразу разработать нормальную архитектуру, что-бы потом не переписывать заново

Re: Управление контроллером mk1 (planet-cnc)
Добавлено: 08 июл 2015, 07:10
selenur
Вот тут
http://habrahabr.ru/post/261955/ есть примеры работы с USB на qt

Re: Управление контроллером mk1 (planet-cnc)
Добавлено: 09 июл 2015, 20:35
Karbofos
приветствую!
да я уже тут на libusb хотплуг прикрутил, сейчас работает детектор соединения. заодно немного переписал парсер g-code, чтобы можно было проще его расширять. сделал на регулярных выражениях, но не сильно мутил, чтобы понятно было не только мне.

например:
if (lineStream.indexOf(QRegExp("[G|M|F](\\d+)($|\\s)")) == -1) { // Gxx, Fxx or Mxx not found
...
}
благодарю за ссылку! уже сделал, продолжаю проверять передачу/приём данных на/c usb
на работе немного завал, поэтому особо не о чем было отчитываться

Re: Управление контроллером mk1 (planet-cnc)
Добавлено: 10 июл 2015, 01:12
Serg
Karbofos писал(а):if (lineStream.indexOf(QRegExp("[G|M|F](\\d+)($|\\s)")) == -1) { // Gxx, Fxx or Mxx not found
Только это неправильный regexp, ибо стандарт допускает и такое:
g 1X 12.5 f100.1
Re: Управление контроллером mk1 (planet-cnc)
Добавлено: 10 июл 2015, 10:13
Karbofos
с пробелами в произвольных местах? ужас какой. дополню тогда и для таких случаев.
Re: Управление контроллером mk1 (planet-cnc)
Добавлено: 10 июл 2015, 13:43
GuruCNC
Сейчас тебе тут наговорят...
Re: Управление контроллером mk1 (planet-cnc)
Добавлено: 10 июл 2015, 14:08
Serg
Не слушай всяких там гуру, лучше читай умные книжки типа "The NIST RS274NGC Interpreter - Version 3".
Spaces and tabs are allowed anywhere on a line of code and do not change the meaning of the
line, except inside comments. This makes some strange-looking input legal. The line “g0x +0. 12
34y 7” is equivalent to “g0 x+0.1234 y7”, for example.
Re: Управление контроллером mk1 (planet-cnc)
Добавлено: 10 июл 2015, 16:53
Karbofos
UAVpilot писал(а):Не слушай всяких там гуру, лучше читай умные книжки типа "The NIST RS274NGC Interpreter - Version 3".
Spaces and tabs are allowed anywhere on a line of code and do not change the meaning of the
line, except inside comments. This makes some strange-looking input legal. The line “g0x +0. 12
34y 7” is equivalent to “g0 x+0.1234 y7”, for example.
Да там переделать, или расширить, особого труда не составит, я в программе все равно в один формат привожу.
А книжки читать, был бы программистом ЧПУ, тогда давно бы уже прочёл, но т.к. программист-системщик, то мне нужно зреть в корень проблемы, так что весьма признателен за дополнительную инфу.

Re: Управление контроллером mk1 (planet-cnc)
Добавлено: 10 июл 2015, 17:56
Serg
Karbofos писал(а):Да там переделать, или расширить, особого труда не составит, я в программе все равно в один формат привожу.
Можно сначала просто удалить все [\s] из строки...
Re: Управление контроллером mk1 (planet-cnc)
Добавлено: 17 июл 2015, 17:20
Karbofos
Привет всем!
Заканчиваю тестировать libusb интерфейс, на этих выходных выложу исходники. Есть добровольцы тестировать для начала на линукс? Выложу только ссылку на исходники, собирать нужно пока самому. из нужных зависимостей для сборки - libusb-1.0-0-dev, cmake, libqt4-dev, ну и gcc. Пока сделана только поддержка mk1.