GladeVCP и PyVCP для начинающих

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick »

raddd писал(а):даже когда приперло для AVR простенькую прошивку написать писал на ASSEMBLER (там в отладке проще) си и прочие высокоуровневые языки мне непонятны...
В питоне все гораздо проще и дебагить проще, вставил куда хочешь print "debug" и сморишь, что как работает.


Первый кусок кода - класс для работы с конфигами. Там две основные функции - getpref и putpref - запись и чтение.
verser, а ты сам писал этот код, почему-то обе функции пишут в файл... И обычно имя класса пишут с большой буквы.
verser писал(а): def get_preference_file_path(self):
Это функция должна возвращать имя файла с настройуами.
verser писал(а):self.prefs = preferences( self.get_preference_file_path() )
Это мы создаем объект нашего класса (который будет обладать всеми прелестями функциями описанного класса).
verser писал(а):self.prefs.putpref( "param_for_saving", self.param_for_saving, float )
Ну а это собственно пользуемся функцией.

Осталось добавить заполнение значений в окошках. :)
Аватара пользователя
verser
Мастер
Сообщения: 1903
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1282
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение verser »

Nick писал(а):verser, а ты сам писал этот код, почему-то обе функции пишут в файл...
Этот код писал Chris Radek. Читающая функция пишет в файл только когда не нашла что прочитать, тогда default value на всякий будущий случай записывает.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение nkp »

есть вот такой код:

Код: Выделить всё

o100 repeat[10]

M6 T1
M68 E0 Q#5410
G21  G90   G42  
F140

G1 X  10.000 Y   0.000
G1 X  10.000 Y  13.000
G2 X  13.000 Y  16.000 I   3.000 J   0.000
G1 X  55.000 Y  16.000
G2 X  58.000 Y  13.000 I   0.000 J  -3.000
G1 X  58.000 Y -13.000
G2 X  55.000 Y -16.000 I  -3.000 J   0.000
G1 X  13.000 Y -16.000
G2 X  10.000 Y -13.000 I   0.000 J   3.000
G1 X  10.000 Y   0.000
G1 X   0.000 Y   0.000
G40
M0
G4 P2
G10 L1 P1 R[[#5410/2]+[#<_hal[pyvcp.spinbox]>]]
(debug,spinbox=#<_hal[pyvcp.spinbox]>)

o100 endrepeat
M2 
в нем мы пытаемся скорректировать диаметр(радиус) инструмента после каждого повторения(repeat)
так вот - после первого прохода ,когда стоим по М0 на паузе,меняем в панельке значение коррекции в spinbox...
но емс "не видит" введенное значение(пишет ,что ноль) ...
Выделение_097.png (2414 просмотров) <a class='original' href='./download/file.php?id=56742&mode=view' target=_blank>Загрузить оригинал (18.66 КБ)</a>
на следующих проходах всё нормально :thinking:
значение менял в spinbox по разному (и редактированием с выделением,и стрелочками)
что бы это значило??
Аватара пользователя
verser
Мастер
Сообщения: 1903
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1282
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение verser »

nkp писал(а):значение менял в spinbox по разному (и редактированием с выделением,и стрелочками)
Я тоже сталкивался с таким. Простая вставка числа игнорировалась. А вот если после вставки числа нажимать Enter(курсор при этом надо чтобы был в spinboxe), то, вроде, работает тогда.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick »

Да, скорее всего не отдается сигнал update у спинбокса...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение nkp »

verser писал(а):Я тоже сталкивался с таким. Простая вставка числа игнорировалась. А вот если после вставки числа нажимать Enter(курсор при этом надо чтобы был в spinboxe), то, вроде, работает тогда.
вот в том то и дело - что даже так не работает...
потом (после первого прохода) ничего в spinbox не трогаешь(значение с первого "несработавшего " раза осталось) и срабатывает нормально :wik:
что ему первый раз не хватает...
это в PyVCP , надо еще в GladeVCP попробовать...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick »

А пин когда меняется? Попробуй отследить через halmeter.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение nkp »

Nick писал(а):А пин когда меняется? Попробуй отследить через halmeter.
меняется сразу после ввода(после нажатия Enter) , как и положено...
скорей затык в системе передачи данных из Hal в G-код
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение nkp »

сделал так:
M68 E1 Q#<_hal[corr.hal_spinbutton1-f]>
появляется значение на втором "круге" по M0
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick »

Может планировщик код заранее прогоняет...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение nkp »

Nick писал(а):Может планировщик код заранее прогоняет...
да ,что то похожее есть...
не знаю , как правильно описать,но на лицо какая то очередь(последовательность ) значений spinbox...
введено в spinbox значение 0.1
запускаем жкод
первый проход - видит значение 0
пока идет "первый круг" , меняем значение на 0.2
"второй круг"
видит значение 0.1
ничего не трогаем
на 3-м "круге" видит значение 0.2
сумбурно как то получилось описать...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение nkp »

подправив немного,беру значение коррекции по М66:

Код: Выделить всё

o100 repeat[10]

M6 T1
M68 E0 Q#5410
G21  G90   G42  
F140

o101 IF[#<_hal[corr.hal_spinbutton1-f]> ne 0]
(msg,check corr)
M0
o101 ENDIF 

G1 X  10.000 Y   0.000
G1 X  10.000 Y  13.000
G2 X  13.000 Y  16.000 I   3.000 J   0.000
G1 X  55.000 Y  16.000
G2 X  58.000 Y  13.000 I   0.000 J  -3.000
G1 X  58.000 Y -13.000
G2 X  55.000 Y -16.000 I  -3.000 J   0.000
G1 X  13.000 Y -16.000
G2 X  10.000 Y -13.000 I   0.000 J   3.000
G1 X  10.000 Y   0.000
G1 X   0.000 Y   0.000

G40
M0
G1 X  0.100 Y   0.000
M66 E0 L0
G10 L1 P1 R[[#5410/2]+#5399]
(debug,spinbox=#<_hal[corr.hal_spinbutton1-f]>)

o100 endrepeat
M2 
так работает нормально...
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Serg »

Что я не так делаю? :thinking:

Нарисовал панельку для gladevcp. Если запускать её так:

Код: Выделить всё

GLADEVCP = test.glade
то всё замечательно работает. А если запускать так:

Код: Выделить всё

GLADEVCP = -c test test.glade
то тоже всё работает, но пишет

Код: Выделить всё

Waiting for component 'gladevcp' to become ready.............
и рисует точки (ждёт) пока не завершишь прогу.

В доках никаких запретов на использование "-c" в этом варианте не нашёл.

P.S. Желающим поэксперементировать:
test.glade
(680 байт) 635 скачиваний
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick »

вроде как он при этом обзывает компонент не gladevcp, а тест. Может надо добавить -Wn test
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Serg »

Код: Выделить всё

gladevcp: error: no such option: -W
<commandline>:0: waitpid failed gladevcp gladevcp
<commandline>:0: gladevcp exited without becoming ready
Embeded tab command "halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -x 35651726 -Wn test -c test test.glade" exited with error: 1
Похоже надо патчить... :(

попробуйте кто-нибудь на других версиях, а то у меня пока доступна только 2.8.0.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение nkp »

емс 2.6 не очень понял ,что нужно проверить...
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Serg »

Твой эксперимент неправильный - в твоём случае есть EMBED_TAB_COMMAND, который "подсовывает" другой компонент с именем gladevcp.
Попробуй без строчек EMBED_TAB_*
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение nkp »

UAVpilot писал(а):Попробуй без строчек EMBED_TAB_*
Выделение_014.png (2204 просмотра) <a class='original' href='./download/file.php?id=57814&mode=view' target=_blank>Загрузить оригинал (80.02 КБ)</a>
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Serg »

Понятно, значит так было всегда и историю версий можно не лезть... :(
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick »

У меня такая же штука выскочила, когда я экран для Probe ставил, не помню точно как, но как-то я это поборол....

Кстати, а в твоем test есть компонент? Как он называется?
Ответить

Вернуться в «LinuxCNC»