Ворон226/Подготовка системы к созданию своей панели управления
Содержание
Установка LinuxCNC.
Для начала нужно: Сначала удалить "дистрибутивную" версию linuxcnc или emc2 (зависит от того, что прописано в системе)
sudo dpkg -r `dpkg -l | grep 'ii linuxcnc' | awk '{print $2}'`
или
sudo dpkg -r `dpkg -l | grep 'ii emc2' | awk '{print $2}'`
Потом открываем текстовым редактором файл /etc/apt/sources.list
sudo gedit /etc/apt/sources.list
находим в нём строчки типа
deb http://linuxcnc.org lucid base linuxcnc2.5 deb-src http://linuxcnc.org lucid base linuxcnc2.5
или
deb http://www.linuxcnc.org/emc2 lucid base emc2.4 deb-src http://www.linuxcnc.org/emc2 lucid base emc2.4
и заменяем их (или закомментируем) на
deb http://buildbot.linuxcnc.org/ lucid master-rt deb-src http://buildbot.linuxcnc.org/ lucid master-rt
(вот тут есть полный список вариантов http://buildbot.linuxcnc.org/ )
теперь ставим свежайшую версию с github
sudo apt-get update sudo apt-get install linuxcnc linuxcnc-dev linuxcnc-doc-en
Теперь linuxcnc сможет даже автоматически обновляться.
Альтернативный вариант: Установка EMC2 или LinuxCNC из исходников.
1. Установка дополнительных пакетов.
Выполняем в терминале или консоли:
sudo apt-get build-dep emc2 sudo apt-get install build-essential autoconf
2. Устанавливаем версию LinuxCNC из исходников,
Архивы нужно качать здесь - http://buildbot.linuxcnc.org/dists/lucid/v2.5_branch-rt/source/ или http://buildbot.linuxcnc.org/dists/lucid/master-rt/source/
(одно из многих преимуществ установки из исходников - это возможность ставить самую свежую сборку или сборку с какими то особыми изменениями. Разработка и усовершенствование EMC2 идет денно и нощно. вот здесь, например, - http://git.mah.priv.at/gitweb?p=emc2-dev.git;a=summary - можно читать внесенные изменения и быть так сказать на передовой разработки)
По ссылке выбираем версию и скачиваем менеджером архивов. Распаковываем в новую папку. Например, linuxcnc-dev.
3. Проверка наличия всех необходимых пакетов.
Входим в папку linuxcnc-dev:
cd linuxcnc-dev
Проверяем наличие всех необходимых пакетов:
cd debian ./configure -a (для установки симулятора ./configure sim) cd .. dpkg-checkbuilddeps
Будет показан список отсутствующих пакетов. Нужно скопировать этот список в команду вида:
sudo apt-get install "список пакетов, через пробел"
Копировать не напрямую, там некоторые пакеты даются на выбор - из них один оставить, другой удалить.
Получил список неустановленных компонентов -
texlive-lang-german texlive-lang-spanish texlive-lang-polish libreadline-dev asciidoc (>= 8.5) source-highlight dblatex (>= 0.2.12) libboost-python-dev texlive-lang-cyrillic
Жирным шрифтом выделил ненужные (зачем нам польский язык или испанский?)
Устанавливаем:
sudo apt-get install libreadline-dev asciidoc source-highlight dblatex libboost-python-dev texlive-lang-cyrillic
В терминале пишем:
cd cd linuxcnc-dev cd src ./autogen.sh ./configure
после этого в терминале должны увидеть примерно такое:
Следом -
make make install-menus sudo make setuid
Готово.
Создание стартового файла.
Далее код:
#!/bin/bash . scripts/rip-environment linuxcnc
cохраняем в файле start без расширения в папке linuxcnc-dev , делаем его исполняемым (ПКМ по файлу - свойства - права - поставить галку "разрешить исполнять ....") и его будем запускать двойным кликом.
Запустить и проверить на простой стандартной конфигурации 3-осевого станка. Должно заработать...
Теперь все варианты панелей управления сохранять в папке /linuxcnc-dev/configs
Создание папки для новой конфигурации станка.
Создаем папку для новой конфигурации с названием MyGUI, в нее кидаем стандартные файлы (ну например из Sherline3Axis).
Переименуем наш .ini файл в MyGUI.ini
Проверяем работоспособность нашей конфигурации запуском:
если ок - идем дальше...
Создание визуальной панели.
В Glade рисуем наше окно и сохраняем наш труд в файл mygui.glade в папку /share/linuxcnc (все пути указаны пути относительно папки установки linuxcnc-dev).
Создание скрипта на Python-е.
В папку /bin кладём файл mygui с таким содержимым:
#!/usr/bin/python
import pygtk
pygtk.require("2.0")
import gtk
import gladevcp.makepins
from gladevcp.gladebuilder import GladeBuilder
import hal
import sys,os
BASE = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), ".."))
datadir = os.path.join(BASE, "share", "linuxcnc")
xmlname = os.path.join(datadir,"mygui.glade")
class Mygui(object):
def __init__(self):
self.builder = gtk.Builder()
self.builder.add_from_file(xmlname)
halcomp = hal.component("mygui")
self.builder.connect_signals(self)
self.window = self.builder.get_object("window1")
self.window.show()
panel = gladevcp.makepins.GladePanel( halcomp, xmlname, self.builder, None)
if __name__ == "__main__":
app = Mygui()
gtk.main()
и делаем его исполняемым (смотри выше как это делать).
В нашем ini-файле пропишем :
[DISPLAY] DISPLAY = mygui
Запускаем LinuxCNC и наслаждаемся созданным интерфейсом.
Дополнительная настройка панели.
При повторном запуске нашей панели наткнемся на ошибку - панель не желает запускаться...
В Glade добавим к нашему окну сигнал " on_window1_destroy " :
а в код mygui добавим функцию для корректного выхода:
def on_window1_destroy(self, widget, data=None): print "quit++" gtk.main_quit()
Теперь при запуске start мы будем пользовать нашу панель через LinuxCNC, установленный из исходников.
Иногда необходимо выполнить:
sudo apt-get install python-gnome2 python-glade2 python-numpy python-imaging python-imaging-tk python-xlib python-gtkglext1 python-configobj python-gtksourceview2 glade
Удачи!