Keystick GUI
-
- Мастер
- Сообщения: 294
- Зарегистрирован: 17 апр 2013, 14:27
- Репутация: 78
- Контактная информация:
Keystick GUI
Запуская свой девайс решил попробовать сабжевый GUI .
После долгих мучений полетело но как то коряво. Ручные перемещения через ....(ну вы поняли) не работали,
гугл в одном из закоулков прятал это , сопротивлялся но отдал.
Почитав решил перекомпилить данный пример. Ошибок выдало кучу, по этому плюнул и сам по приведённой инструкции модифицировал код.
Вроде заработали ручные перемещения.
А- думаю , раз пошла такая пьянка покручу всё, что крутится
И вот накрутил. ИСХОДНЫЙ GUI Как думаете - это хоть кому-то нужно?
После долгих мучений полетело но как то коряво. Ручные перемещения через ....(ну вы поняли) не работали,
гугл в одном из закоулков прятал это , сопротивлялся но отдал.
Почитав решил перекомпилить данный пример. Ошибок выдало кучу, по этому плюнул и сам по приведённой инструкции модифицировал код.
Вроде заработали ручные перемещения.
А- думаю , раз пошла такая пьянка покручу всё, что крутится
И вот накрутил. ИСХОДНЫЙ GUI Как думаете - это хоть кому-то нужно?
- tooshka
- Почётный участник
- Сообщения: 1803
- Зарегистрирован: 24 окт 2012, 14:26
- Репутация: 209
- Настоящее имя: Андрей
- Откуда: Нижний Новгород
- Контактная информация:
Re: Keystick GUI
Вот на чем 3д принтер сляпать!
Милая, ты услышь меня
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Keystick GUI
а почему ручные перемещения не работали ?
в чем была причина?
в чем была причина?
-
- Мастер
- Сообщения: 294
- Зарегистрирован: 17 апр 2013, 14:27
- Репутация: 78
- Контактная информация:
Re: Keystick GUI
В документе приведенном в первом посте говорится, что-
Подправил, и вроде пошло.
Сейчас проблема. Нужна какая нибудь длинная УП на 4 оси, что бы погонять и проверить возможные баги.
Самому что-то писать неохота.
Сейчас проблема. Нужна какая нибудь длинная УП на 4 оси, что бы погонять и проверить возможные баги.
Самому что-то писать неохота.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Keystick GUI
Кстати, если запуститься без иксов, и LinuxCNC запустить на keystick из консоли latency здорово улучшается. Вроде...
Я как-то давно запускал latency test в консоле - там что-то вообще около 4000-6000 показывало...
Я как-то давно запускал latency test в консоле - там что-то вообще около 4000-6000 показывало...
-
- Мастер
- Сообщения: 294
- Зарегистрирован: 17 апр 2013, 14:27
- Репутация: 78
- Контактная информация:
Re: Keystick GUI
без иксов летит только в путь. Сравнивая нагрузку на процессор при максимальных скоростях при плоской круговой интерполяции нагрузка на 1гиговый процессор составляла 10-15% + 8%htop+ 2-3 % ssh.
как только сложную длинную быструю 4x осевую программу добуду -попробую измерить максимальную частоту генератора, как на lpt-pc так и на bone black. Кстати по следам этой работы легко вписать в экран ещё одну ведомую ось . 6 уже вроде не помещается без небольшой переделки, да и хоткеи сколь нибудь логичные заканчиваются. Если время будет надо сюда код в виде патча положить, так как git ещё не освоил.
зы. Вообще можно и мышу прибубенить и раскрасить как ёлку, раз всё равно ncurses в программе заинклуден.
как только сложную длинную быструю 4x осевую программу добуду -попробую измерить максимальную частоту генератора, как на lpt-pc так и на bone black. Кстати по следам этой работы легко вписать в экран ещё одну ведомую ось . 6 уже вроде не помещается без небольшой переделки, да и хоткеи сколь нибудь логичные заканчиваются. Если время будет надо сюда код в виде патча положить, так как git ещё не освоил.
зы. Вообще можно и мышу прибубенить и раскрасить как ёлку, раз всё равно ncurses в программе заинклуден.
Последний раз редактировалось asutpka 21 янв 2014, 12:37, всего редактировалось 2 раза.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Keystick GUI
правильно ли я понимаю - что ошибки ,которые были исправлены тс в Keystick , даже в master версиях емс еще не исправлены??
-
- Мастер
- Сообщения: 294
- Зарегистрирован: 17 апр 2013, 14:27
- Репутация: 78
- Контактная информация:
Re: Keystick GUI
именно так
кстати может это и не ошибки а художественный замысел, но мне привычнее, что нажал кнопку и поехало до тех пор пока держишь. а в исходной версии - нажал - проехало чуток, затем надо нажать что-то другое а потом снова повторить.
кстати может это и не ошибки а художественный замысел, но мне привычнее, что нажал кнопку и поехало до тех пор пока держишь. а в исходной версии - нажал - проехало чуток, затем надо нажать что-то другое а потом снова повторить.
-
- Мастер
- Сообщения: 294
- Зарегистрирован: 17 апр 2013, 14:27
- Репутация: 78
- Контактная информация:
Re: Keystick GUI
кстати о latency. Это хорошо или плохо?
Код: Выделить всё
RTT| 00:04:34 (periodic user-mode task, 1000 us period, priority 99)
RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst
RTD| 8.791| 10.291| 48.041| 0| 0| 3.666| 57.458
RTD| 8.833| 9.791| 42.166| 0| 0| 3.666| 57.458
RTD| 8.791| 10.124| 49.833| 0| 0| 3.666| 57.458
RTD| 8.708| 9.624| 45.291| 0| 0| 3.666| 57.458
RTD| 8.749| 10.124| 47.208| 0| 0| 3.666| 57.458
RTD| 8.791| 10.166| 50.666| 0| 0| 3.666| 57.458
RTD| 8.791| 10.124| 48.416| 0| 0| 3.666| 57.458
RTD| 8.708| 9.666| 51.541| 0| 0| 3.666| 57.458
RTD| 8.666| 9.999| 51.833| 0| 0| 3.666| 57.458
^X^Z
[2]+ Stopped /usr/xenomai/bin/latency
linuxcnc@arm:~$
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Keystick GUI
1000us это я так понимаю серво период... надо как-то проверить latency на base т.е. на 25us...
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Keystick GUI
по Ctrl-Z программа не завершается, а останавливается и остётся в памяти. Завершается по Ctrl-C.asutpka писал(а):RTD| 8.666| 9.999| 51.833| 0| 0| 3.666| 57.458
^X^Z
[2]+ Stopped /usr/xenomai/bin/latency
linuxcnc@arm:~$
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 294
- Зарегистрирован: 17 апр 2013, 14:27
- Репутация: 78
- Контактная информация:
Re: Keystick GUI
Запускал такNick писал(а):надо как-то проверить latency на base т.е. на 25us...
Код: Выделить всё
linuxcnc@arm:~$ /usr/xenomai/bin/latency -B 25us -t1 > latency.log
Да ясно, просто за 2 дня редактор NANO приучил так, что отучаться ещё долго .UAVpilot писал(а):о Ctrl-Z программа не завершается,
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Keystick GUI
Вроде всеравно не оно...asutpka писал(а):in-kernel periodic task, 1000 us period, priority 99
щас погоди переделаем latency-test от linuxcnc...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
-
- Мастер
- Сообщения: 294
- Зарегистрирован: 17 апр 2013, 14:27
- Репутация: 78
- Контактная информация:
Re: Keystick GUI
спасибо, но на моём девайсе чтото не так отрабатывает. Сеть при запуске скрипта отваливается и по этому результат пока не знаю, но скоро руки дойдут и до этого.Nick писал(а):Вот как-то так...
А пока публикую последний проверенный вариант патча. Есть проблема
на скриншоте самые последние строки формируются кодом Так вот предельные значения отображаются а текущие стоят на месте и не меняются никогда а хотелось бы
Если есть информация о том по каким именам получить emcStatus строку о текущей скорости и ускорении , может поможете?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Keystick GUI
Ну так можно его запустить с >1.log, чтобы вывод в локальный файл писался, и потом посмотреть, что там будет.asutpka писал(а):Сеть при запуске скрипта отваливается и по этому результат пока не знаю, но скоро руки дойдут и до этого.
-
- Мастер
- Сообщения: 294
- Зарегистрирован: 17 апр 2013, 14:27
- Репутация: 78
- Контактная информация:
Re: Keystick GUI
Запустил но только через колено. Оказывается оно просто висло.Nick писал(а):Ну так можно его запустить с >1.log,
То-ли вмешались врождённые особенности этого недостойного отпрыска славного семейства микропроцессорных устройств Вычислительного назначения, то-ли одно из двух, но с настройками данными в скрипте оно работать напрочь отказывалась.
Речь идёт о строке
Код: Выделить всё
BASE=$(parse_time 25us); SERVO=$(parse_time 1ms)
Код: Выделить всё
BASE=0; SERVO=$(parse_time 1ms)
Возникло несколько вопросов.Код: Выделить всё
linuxcnc@arm:~$ linuxcnc/scripts/latency-test-cli rtapi:0 stopped msgd:0 stopped All times are in ns Servo thread | Base thread Max Interv | Max Jitter | Last inter | Max Interv | Max Jitter | Last inter 1038459 | 144250 | 991292 | 0 | 0 | 0 1041625 | 144250 | 990916 | 0 | 0 | 0 1041625 | 144250 | 999833 | 0 | 0 | 0 1044584 | 144250 | 1001459 | 0 | 0 | 0 1044584 | 144250 | 1000208 | 0 | 0 | 0 1044584 | 144250 | 998709 | 0 | 0 | 0 1044584 | 144250 | 1000250 | 0 | 0 | 0 1044584 | 144250 | 1011000 | 0 | 0 | 0 1044584 | 144250 | 1006458 | 0 | 0 | 0 1044584 | 144250 | 1026583 | 0 | 0 | 0 1044584 | 144250 | 1001209 | 0 | 0 | 0 1044584 | 144250 | 1014583 | 0 | 0 | 0 1044584 | 144250 | 1000209 | 0 | 0 | 0 ^C linuxcnc@arm:~$python -V Python 2.7.3
1-Может питон поновее пересобрать?
2-И как на этой штуке 50kHz выжимали?
зы пока измерить нечем
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Keystick GUI
Это джиттер servo-thread - т.е. медленного потока который работает с floating point. 50кГц генерируется в base-thread он работает быстрее.
Щас что-нибудь еще придумаем...
PS кто-нибудь знает, что это за компонент: latencybins http://linuxcnc.org/docs/html/man/man9/ ... ins.9.html ?
Щас что-нибудь еще придумаем...
PS кто-нибудь знает, что это за компонент: latencybins http://linuxcnc.org/docs/html/man/man9/ ... ins.9.html ?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Keystick GUI
Вот еще вариант - запускае halrun и туда копируем вот это:
(это тоже самое, что делает latency-test, только на чистом hal )
Только надо бы еще придумать, как при этом нагрузить комп, чтобы результат был адекватным....
(это тоже самое, что делает latency-test, только на чистом hal )
Код: Выделить всё
loadrt threads name1=fast period1=25000 name2=slow period2=1000000 name3=sample period3=1000000000
loadrt timedelta count=2
addf timedelta.0 fast
addf timedelta.1 slow
loadrt sampler depth=1000 cfg="SSSSSS"
loadusr halsampler
addf sampler.0 sample
net sl timedelta.1.max => sampler.0.pin.0
net sj timedelta.1.jitter => sampler.0.pin.1
net st timedelta.1.out => sampler.0.pin.2
net bl timedelta.0.max => sampler.0.pin.3
net bj timedelta.0.jitter => sampler.0.pin.4
net bt timedelta.0.out => sampler.0.pin.5
# All times are in ns
# Servo thread | Base thread
#MaxInt|MaxJitt|LastInt|MaxInt|MaxJitt|LastInt
start
-
- Мастер
- Сообщения: 294
- Зарегистрирован: 17 апр 2013, 14:27
- Репутация: 78
- Контактная информация:
Re: Keystick GUI
Не получается
period1=25000 вешает систему
period1=25000 вешает систему
подобрал наименьший period1=30000 но всё равно не тоКод: Выделить всё
linuxcnc@arm:~$ halrun rtapi:0 stopped msgd:0 stopped halcmd: loadrt threads name1=fast period1=25000 name2=slow period2=1000000 name3=sample period3=1000000000 halcmd: halcmd: loadrt timedelta count=2 halcmd: addf timedelta.0 fast halcmd: addf timedelta.1 slow halcmd: halcmd: loadrt sampler depth=1000 cfg="SSSSSS" halcmd: loadusr halsampler halcmd: addf sampler.0 sample halcmd: halcmd: net sl timedelta.1.max => sampler.0.pin.0 <stdin>:11: Pin 'timedelta.1.max ' does not exist halcmd: net sj timedelta.1.jitter => sampler.0.pin.1 <stdin>:12: Pin 'timedelta.1.jitter ' does not exist halcmd: net st timedelta.1.out => sampler.0.pin.2 <stdin>:13: Pin 'timedelta.1.out ' does not exist halcmd: net bl timedelta.0.max => sampler.0.pin.3 <stdin>:14: Pin 'timedelta.0.max ' does not exist halcmd: net bj timedelta.0.jitter => sampler.0.pin.4 <stdin>:15: Pin 'timedelta.0.jitter ' does not exist halcmd: net bt timedelta.0.out => sampler.0.pin.5 <stdin>:16: Pin 'timedelta.0.out ' does not exist halcmd: # All times are in ns halcmd: # Servo thread | Base thread halcmd: #MaxInt|MaxJitt|LastInt|MaxInt|MaxJitt|LastInt halcmd: start
Ник перенеси посты 9,10,,12,13,14,,16,17,18,19,20, сюда так правильней будет. И афтаеву скоро пригодится.Код: Выделить всё
linuxcnc@arm:~$ halrun rtapi:0 stopped msgd:0 stopped halcmd: loadrt threads name1=fast period1=30000 name2=slow period2=1000000 name3=sample period3=1000000000 halcmd: halcmd: loadrt timedelta count=2 halcmd: addf timedelta.0 fast halcmd: addf timedelta.1 slow halcmd: halcmd: loadrt sampler depth=1000 cfg="SSSSSS" halcmd: loadusr halsampler halcmd: addf sampler.0 sample halcmd: halcmd: net sl timedelta.1.max => sampler.0.pin.0 <stdin>:11: Pin 'timedelta.1.max ' does not exist halcmd: net sj timedelta.1.jitter => sampler.0.pin.1 <stdin>:12: Pin 'timedelta.1.jitter ' does not exist halcmd: net st timedelta.1.out => sampler.0.pin.2 <stdin>:13: Pin 'timedelta.1.out ' does not exist halcmd: net bl timedelta.0.max => sampler.0.pin.3 <stdin>:14: Pin 'timedelta.0.max ' does not exist halcmd: net bj timedelta.0.jitter => sampler.0.pin.4 <stdin>:15: Pin 'timedelta.0.jitter ' does not exist halcmd: net bt timedelta.0.out => sampler.0.pin.5 <stdin>:16: Pin 'timedelta.0.out ' does not exist halcmd: # All times are in ns halcmd: # Servo thread | Base thread halcmd: #MaxInt|MaxJitt|LastInt|MaxInt|MaxJitt|LastInt halcmd: start halcmd: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 linuxcnc@arm:~$ ^C