Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

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

Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

Сообщение Serg »

на форуме linuxcnc.org напиши.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

Сообщение torvn77 »

А куда, вроде как там нет специальных багосборных разделов?

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

Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

Сообщение Serg »

У меня работает...

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

$ grep -i twopass *
axis_mm.ini:HALFILE = twopass.hal
axis_mm.ini:TWOPASS = ON
twopass.hal:loadrt sum2 names=twopass
twopass.hal:setp twopass.in0 [AXIS_0]MAX_VELOCITY
$ dpkg -s linuxcnc | grep Version
Version: 1:2.8.0~pre1.1050.gfdb8d52

Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

Сообщение torvn77 »

У меня обсыпался вызов ini вот в этом файле Devices/Mesa/7i76.0/spindle.hal
Видимо для того чтобы это произошло надо надо сделать несколько включений source
SUDA-ST8070_5i25-7i76.hal:
source Devices/Mesa/7i76.0/7i76.hal
..............................................................Devices/Mesa/7i76.0/7i76.hal
..............................................................source Devices/Mesa/7i76.0/spindle.hal
.................................................................................................................Devices/Mesa/7i76.0/spindle.hal
.................................................................................................................setp hm2_5i25.0.7i76.0.0.spinout-minlim [SPINDLE_9]OUTPUT_MIN_LIMIT

При этом с вызовом ini в первоначальном файле отрабатывается нормально (SUDA-ST8070_5i25-7i76.hal):
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD base_period_nsec=[EMCMOT]BASE_PERIOD num_joints=[TRAJ]AXES num_dio=[EMCMOT]NUM_DIO num_aio=[EMCMOT]NUM_AIO

Причём при многократном использовании source было ещё и такое отклонение(Файл Devices/Mesa/7i76.0/5i25-6i25.hal):
torvn77 писал(а):пакость состоит в том, что нормальное исполнение хала обрывается на строке
loadrt hm2_pci config=" num_encoders=3 num_pwmgens=0 num_3pwmgens=0 num_stepgens=0 sserial_port_0=000xx "
при этом hostmot2 загружен.
torvn77 писал(а):Источник сбоя найден, это sserial_port_0=000xx
Не ясно только почему при вызове в halrun этой команды напрямую или скрипта в целом через source сбоя нет,
а если вот так включить в конфиг есть.
Re: Фрезер с автосменой DCS M4 #3


Я думаю что twopass или source наверно пользуются sed или чем подобным ну конфиг в процессе обработки теряет часть символов.
Последний раз редактировалось torvn77 30 сен 2015, 02:13, всего редактировалось 1 раз.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

Сообщение Serg »

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

TWOPASS = ON,nodelete,verbose
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

Сообщение torvn77 »

Нет, ошибка всё равно происходит:

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

Starting LinuxCNC...
(time=1443568930.254304,pid=11329): Registering server on TCP port 5005.
(time=1443568930.254945,pid=11329): running server for TCP port 5005 (connection_socket = 3).
iocontrol: machine: 'mill-suda-8070st-5i25-7i76-logitech_gamepad'  version 'unknown'
twopass:invoked with <verbose nodelete> options
twopass: pass0:BEGIN
twopass:found ./SUDA-ST8070_5i25-7i76.hal
twopass: convert ./SUDA-ST8070_5i25-7i76.hal to /tmp/SUDA-ST8070_5i25-7i76.hal.tmp
twopass: converted hal line for tcl from ./SUDA-ST8070_5i25-7i76.hal:
twopass:    hal: loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD base_period_nsec=[EMCMOT]BASE_PERIOD num_joints=[TRAJ]AXES num_dio=[EMCMOT]NUM_DIO num_aio=[EMCMOT]NUM_AIO
twopass:    tcl: loadrt $::EMCMOT(EMCMOT) servo_period_nsec=$::EMCMOT(SERVO_PERIOD) traj_period_nsec=$::EMCMOT(TRAJ_PERIOD) base_period_nsec=$::EMCMOT(BASE_PERIOD) num_joints=$::TRAJ(AXES) num_dio=$::EMCMOT(NUM_DIO) num_aio=$::EMCMOT(NUM_AIO) 
twopass: sourcing: /tmp/SUDA-ST8070_5i25-7i76.hal.tmp
twopass: Error in file ./SUDA-ST8070_5i25-7i76.hal:
    invalid command name "SPINDLE_9"
Command not found using ::auto_path=
/usr/lib/tcltk/linuxcnc /usr/share/tcltk/tcl8.5 /usr/lib /usr/local/lib/tcltk /usr/local/share/tcltk /usr/lib/tcltk /usr/share/tcltk
Shutting down and cleaning up LinuxCNC...
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

Сообщение Serg »

Ну показывай /tmp/*.hal.tmp
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

Сообщение torvn77 »

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

# temporary tcl file generated by twopass.tcl
loadrt trivkins
loadrt $::EMCMOT(EMCMOT) servo_period_nsec=$::EMCMOT(SERVO_PERIOD) traj_period_nsec=$::EMCMOT(TRAJ_PERIOD) base_period_nsec=$::EMCMOT(BASE_PERIOD) num_joints=$::TRAJ(AXES) num_dio=$::EMCMOT(NUM_DIO) num_aio=$::EMCMOT(NUM_AIO) 
addf motion-command-handler servo-thread
addf motion-controller servo-thread
source LinuxCNC/linuxcnc.hal
source LinuxCNC/axis-0.hal
source LinuxCNC/axis-1.hal
source LinuxCNC/axis-2.hal
source LinuxCNC/axis-3.hal
source LinuxCNC/axis-4.hal
unlinkp iocontrol.0.user-enable-out
unlinkp iocontrol.0.emc-enable-in
net linuxcnc.estop-loop iocontrol.0.user-enable-out =>  iocontrol.0.emc-enable-in
source MDI_Commands/mdi_commands.hal
source Interface/Gamepad-devl/Head.hal
source Devices/ToolChange/manual_toolchange.hal
source Devices/Mesa/mesa.hal
source Devices/Mesa/7i76.0/7i76.hal
Дело наверное в том, что в интерпретаре сделана вот такая замена обращения: $::EMCMOT(SERVO_PERIOD) ,
которой естественно в идущих внизу вызываемых через source hal'ах нет.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

Сообщение Serg »

Нет, это нормально, это обращение к переменной, которая аналогична [EMCMOT]SERVO_PERIOD
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

Сообщение torvn77 »

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

Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

Сообщение Serg »

Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

Сообщение torvn77 »

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

Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

Сообщение Serg »

Никто ничего не оставлял для совместимости, оно так рождено изначально.
The halcmd language used in .hal files has a simple syntax that is actually a subset of the more powerful general-purpose tcl scripting language.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

Сообщение torvn77 »

Сделал эксперимент, переписал Devices/Mesa/7i76.0/spindle.hal
к виду

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

setp   hm2_5i25.0.7i76.0.0.spinout-minlim    $::SPINDLE_9(OUTPUT_MIN_LIMIT)
setp   hm2_5i25.0.7i76.0.0.spinout-maxlim    $::SPINDLE_9(OUTPUT_MAX_LIMIT)
setp   hm2_5i25.0.7i76.0.0.spinout-scalemax  $::SPINDLE_9(OUTPUT_SCALE)
При TWOPASS=ON похоже что выполняется и ошибается уже в другом месте на AXIS_0.
Зато если TWOPASS закомментировать, то выскакивает ошибка:

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

hm2/hm2_5i25.0:     IO Pin 033 (P2-13): IOPort
hm2/hm2_5i25.0: registered
hm2_5i25.0: initialized AnyIO board at 0000:03:00.0
Devices/Mesa/7i76.0/spindle.hal:7: Empty variable name.
Shutting down and cleaning up LinuxCNC...
Вот так, можно пользоваться только одним из способов записи.

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

Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

Сообщение Serg »

torvn77 писал(а):Вот так, можно пользоваться только одним из способов записи.
У меня работает в любом варианте.

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

$ grep -i twopass *
axis_mm.ini:HALFILE = twopass.hal
axis_mm.ini:TWOPASS = ON,nodelete,verbose
twopass.hal:loadrt sum2 names=twopass
twopass.hal:setp twopass.in0 $::AXIS_0(MAX_VELOCITY)
twopass.hal:setp twopass.in1 [AXIS_0]MAX_VELOCITY
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

Сообщение torvn77 »

Я твой тест добавил в основной хал, выкинув из него всё остальное для чистоты эксперимента и
сделал дополнительно test.hal который подключил через source.
Основной файл

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

loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD base_period_nsec=[EMCMOT]BASE_PERIOD num_joints=[TRAJ]AXES num_dio=[EMCMOT]NUM_DIO num_aio=[EMCMOT]NUM_AIO

addf motion-command-handler servo-thread
addf motion-controller servo-thread


loadrt sum2 names=twopass
setp twopass.in0 $::AXIS_0(MAX_VELOCITY)
setp twopass.in1 [AXIS_0]MAX_VELOCITY
source test.hal
test.hal

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

setp twopass.in1 [AXIS_1]MAX_VELOCITY
Секция ini:

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

[HAL]
#TWOPASS=OFF
TWOPASS=ON
HALUI = halui
HALFILE         = SUDA-ST8070_5i25-7i76.hal
#POSTGUI_HALFILE = SUDA-ST8070_PostGUI.call_list.hal
#SHUTDOWN        = SUDA-ST8070_ShutDown.call_list.hal
Заканчивается с ошибкой

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

twopass: Error in file ./SUDA-ST8070_5i25-7i76.hal:
    invalid command name "AXIS_1"
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

Сообщение Serg »

В случае TWOPASS=ON файлы, включаемые командой source не конвертятся в tcl.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

Сообщение torvn77 »

Признайтесь, вы ведь с самого начала об этом знали :hehehe:

А почему конвертацию для включаемых командой source не сделали?
И вообще, зачем сделали формат hal, если его всё равно в tcl конвертируют?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

Сообщение Serg »

torvn77 писал(а):Признайтесь, вы ведь с самого начала об этом знали :hehehe:
Мне не в чем признаваться.
torvn77 писал(а):А почему конвертацию для включаемых командой source не сделали?
Возможно забыли, возможно специально не стали из-за сильного усложнения реализации.
torvn77 писал(а):И вообще, зачем сделали формат hal, если его всё равно в tcl конвертируют?
Чтоб воспользоваться парсером tcl.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )

Сообщение torvn77 »

Так что делать то будем?
Не знающий в чём дело человек может встать на грабли и не знать как обойти их.
Ответить

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