Пробовал, работу только интерфейсной части, работу с USB, не проверял....Moonglow писал(а):В данном случае, mk1 контроллер - это не USB-CDC класс устройств, поэтому данный класс не подойдет.Karbofos писал(а):QSerialPort
2selenur
Не пробовал Mono для сборки под Linux ? Да и Микрософт недавно открыл исходный код платформы .NET... неспроста
Управление контроллером MK1 и MK2 (planet-cnc)
- selenur
- Почётный участник

- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Управление контроллером mk1 (planet-cnc)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
-
Karbofos
- Опытный
- Сообщения: 121
- Зарегистрирован: 11 июн 2015, 10:40
- Репутация: 85
- Настоящее имя: Эдя Калиновский
- Откуда: Ганновер
- Контактная информация:
Re: Управление контроллером mk1 (planet-cnc)
Спасибо! Если не против, буду давать готовый работающий код на c++ и пояснять, почему я так сделал. весь код, как только управлялка будет работать, тоже выдам, но , может быть, небольшие кусочки с пояснениями - проще.selenur писал(а):Суппер! вообще молодец
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. Не знаю даже, будет ли работать на нём, но попытаюсь.
- selenur
- Почётный участник

- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Управление контроллером mk1 (planet-cnc)
О! дельный совет... я с 3D мало знаком, о таком незнал..Karbofos писал(а):Спасибо! Если не против, буду давать готовый работающий код на c++ и пояснять, почему я так сделал. весь код, как только управлялка будет работать, тоже выдам, но , может быть, небольшие кусочки с пояснениями - проще.selenur писал(а):Суппер! вообще молодецНапример, в работе 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. Не знаю даже, будет ли работать на нём, но попытаюсь.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
-
Karbofos
- Опытный
- Сообщения: 121
- Зарегистрирован: 11 июн 2015, 10:40
- Репутация: 85
- Настоящее имя: Эдя Калиновский
- Откуда: Ганновер
- Контактная информация:
Re: Управление контроллером mk1 (planet-cnc)
Да у меня тоже знания в пределах курсовой работы и демки к ней, написанной полностью мной. не больше.
Там смысл заключается как раз в том, что при выдаче всей матрицы, обработка раскидывается по ядрам графики и проходит параллельно.
Там смысл заключается как раз в том, что при выдаче всей матрицы, обработка раскидывается по ядрам графики и проходит параллельно.
-
Karbofos
- Опытный
- Сообщения: 121
- Зарегистрирован: 11 июн 2015, 10:40
- Репутация: 85
- Настоящее имя: Эдя Калиновский
- Откуда: Ганновер
- Контактная информация:
Re: Управление контроллером mk1 (planet-cnc)
Сергей, к концу недели я сделаю и дам протестированный кусок кода для выдачи объекта целиком. Примерно собираюсь переделать, как здесь: http://qt-apps.org/content/show.php/QRe ... ent=160728selenur писал(а): О! дельный совет... я с 3D мало знаком, о таком незнал..у меня небольшие тормоза на компьютере появляются после 200000 строк G-кода (сформировано слайсером для 3D принтера), посмотрю что получиться применив данный метод
в файле gcoder.cpp есть пример работы с OpenGL.
- selenur
- Почётный участник

- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Управление контроллером mk1 (planet-cnc)
Вот тоже задумался, на qt перекинуть проект который из Gerber(не доделан немного) и PLT форматов генерирует G-kod, мне в принципе всеравно на чем писать
а так вроде универсальнее получается...
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
-
Karbofos
- Опытный
- Сообщения: 121
- Зарегистрирован: 11 июн 2015, 10:40
- Репутация: 85
- Настоящее имя: Эдя Калиновский
- Откуда: Ганновер
- Контактная информация:
Re: Управление контроллером mk1 (planet-cnc)
Без проблем, если вопросы будут какие, то помогу, чем могу.selenur писал(а):Вот тоже задумался, на qt перекинуть проект который из Gerber(не доделан немного) и PLT форматов генерирует G-kod, мне в принципе всеравно на чем писатьа так вроде универсальнее получается...
-
Karbofos
- Опытный
- Сообщения: 121
- Зарегистрирован: 11 июн 2015, 10:40
- Репутация: 85
- Настоящее имя: Эдя Калиновский
- Откуда: Ганновер
- Контактная информация:
Re: Управление контроллером mk1 (planet-cnc)
Потихоньку продвигаются тестирования. Прикручиваю чтение разных форматов файлов, тестирую usb интерфейс. Так что, Сергей, можешь потом перенять парсеры. Конструктор G-Code пока даже не начинал портировать, и без него тестировать много.
- selenur
- Почётный участник

- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Управление контроллером mk1 (planet-cnc)
Конструктор я думаю, удобнее сделать как отдельную программку, так-же с 3D вуализацией, а потом например через буфер обмена, перебрасывать данные из конструктора в управляющую программу, так-же это применительно и к другой программе импорта данных.
Что касается управляющей программы, то тут я думаю тебе стоит тогда предусмотреть поддержку 2-х контроллеров mk1 и mk2, т.к. на текущий момент, логичнее данный проект развивать совместно, если конечно есть желание, я например дальше продолжу парсить протокол обмена, и прочее...
Если сейчас нормально получиться запускать на убунте и винде, то я не вижу смысла тянуть текущий мой проект, который заточен чисто под виндовс...
Что касается управляющей программы, то тут я думаю тебе стоит тогда предусмотреть поддержку 2-х контроллеров mk1 и mk2, т.к. на текущий момент, логичнее данный проект развивать совместно, если конечно есть желание, я например дальше продолжу парсить протокол обмена, и прочее...
Если сейчас нормально получиться запускать на убунте и винде, то я не вижу смысла тянуть текущий мой проект, который заточен чисто под виндовс...
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
-
Karbofos
- Опытный
- Сообщения: 121
- Зарегистрирован: 11 июн 2015, 10:40
- Репутация: 85
- Настоящее имя: Эдя Калиновский
- Откуда: Ганновер
- Контактная информация:
Re: Управление контроллером mk1 (planet-cnc)
Потом я могу тоже и конструктор портировать на qt4, как только всё в основной программе заработает. usb интерфейс попытаюсь доделать на неделе, может на выходных придётся еще уделить время. Постараюсь на выходных выдать исходники.
с mk2 у меня сейчас трудно будет. Против того, чтобы расширить функционал совсем ничего не имею.
Только за. Перенести с C# на плюсы - не вопрос, но пока у меня есть только возможность проверять с usb6560t4v3.
- selenur
- Почётный участник

- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Управление контроллером mk1 (planet-cnc)
у меня есть и mk1 и mk2, так что с проверкой проблемм нет....
Ты главное не спеши, лучше сразу разработать нормальную архитектуру, что-бы потом не переписывать заново
Ты главное не спеши, лучше сразу разработать нормальную архитектуру, что-бы потом не переписывать заново
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
- selenur
- Почётный участник

- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Управление контроллером mk1 (planet-cnc)
Вот тут http://habrahabr.ru/post/261955/ есть примеры работы с USB на qt 
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
-
Karbofos
- Опытный
- Сообщения: 121
- Зарегистрирован: 11 июн 2015, 10:40
- Репутация: 85
- Настоящее имя: Эдя Калиновский
- Откуда: Ганновер
- Контактная информация:
Re: Управление контроллером mk1 (planet-cnc)
приветствую!
да я уже тут на libusb хотплуг прикрутил, сейчас работает детектор соединения. заодно немного переписал парсер g-code, чтобы можно было проще его расширять. сделал на регулярных выражениях, но не сильно мутил, чтобы понятно было не только мне.
например:
if (lineStream.indexOf(QRegExp("[G|M|F](\\d+)($|\\s)")) == -1) { // Gxx, Fxx or Mxx not found
...
}
благодарю за ссылку! уже сделал, продолжаю проверять передачу/приём данных на/c usb
на работе немного завал, поэтому особо не о чем было отчитываться
да я уже тут на libusb хотплуг прикрутил, сейчас работает детектор соединения. заодно немного переписал парсер g-code, чтобы можно было проще его расширять. сделал на регулярных выражениях, но не сильно мутил, чтобы понятно было не только мне.
например:
if (lineStream.indexOf(QRegExp("[G|M|F](\\d+)($|\\s)")) == -1) { // Gxx, Fxx or Mxx not found
...
}
благодарю за ссылку! уже сделал, продолжаю проверять передачу/приём данных на/c usb
на работе немного завал, поэтому особо не о чем было отчитываться
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Управление контроллером mk1 (planet-cnc)
Только это неправильный regexp, ибо стандарт допускает и такое:Karbofos писал(а):if (lineStream.indexOf(QRegExp("[G|M|F](\\d+)($|\\s)")) == -1) { // Gxx, Fxx or Mxx not found
g 1X 12.5 f100.1
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
Karbofos
- Опытный
- Сообщения: 121
- Зарегистрирован: 11 июн 2015, 10:40
- Репутация: 85
- Настоящее имя: Эдя Калиновский
- Откуда: Ганновер
- Контактная информация:
Re: Управление контроллером mk1 (planet-cnc)
с пробелами в произвольных местах? ужас какой. дополню тогда и для таких случаев.
-
GuruCNC
- Опытный
- Сообщения: 172
- Зарегистрирован: 24 ноя 2014, 09:23
- Репутация: -29
- Настоящее имя: GuruCNC
- Контактная информация:
Re: Управление контроллером mk1 (planet-cnc)
Сейчас тебе тут наговорят...
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Управление контроллером mk1 (planet-cnc)
Не слушай всяких там гуру, лучше читай умные книжки типа "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.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
Karbofos
- Опытный
- Сообщения: 121
- Зарегистрирован: 11 июн 2015, 10:40
- Репутация: 85
- Настоящее имя: Эдя Калиновский
- Откуда: Ганновер
- Контактная информация:
Re: Управление контроллером mk1 (planet-cnc)
Да там переделать, или расширить, особого труда не составит, я в программе все равно в один формат привожу.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.
А книжки читать, был бы программистом ЧПУ, тогда давно бы уже прочёл, но т.к. программист-системщик, то мне нужно зреть в корень проблемы, так что весьма признателен за дополнительную инфу.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Управление контроллером mk1 (planet-cnc)
Можно сначала просто удалить все [\s] из строки...Karbofos писал(а):Да там переделать, или расширить, особого труда не составит, я в программе все равно в один формат привожу.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
Karbofos
- Опытный
- Сообщения: 121
- Зарегистрирован: 11 июн 2015, 10:40
- Репутация: 85
- Настоящее имя: Эдя Калиновский
- Откуда: Ганновер
- Контактная информация:
Re: Управление контроллером mk1 (planet-cnc)
Привет всем!
Заканчиваю тестировать libusb интерфейс, на этих выходных выложу исходники. Есть добровольцы тестировать для начала на линукс? Выложу только ссылку на исходники, собирать нужно пока самому. из нужных зависимостей для сборки - libusb-1.0-0-dev, cmake, libqt4-dev, ну и gcc. Пока сделана только поддержка mk1.
Заканчиваю тестировать libusb интерфейс, на этих выходных выложу исходники. Есть добровольцы тестировать для начала на линукс? Выложу только ссылку на исходники, собирать нужно пока самому. из нужных зависимостей для сборки - libusb-1.0-0-dev, cmake, libqt4-dev, ну и gcc. Пока сделана только поддержка mk1.