M100
Автор предупреждает! Данные этой статьи получены из открытых источников и/или документации на обсуждаемое оборудование или из моей экспериментальной деятельности и являются моим персональным мнением и/или комментарием. Смотрите: NikiWiki:Отказ от ответственности |
Обсуждение на cnc-club.ru Данные для этой статьи взяты из обсуждения, развернувшегося на форуме [cnc-club.ru] Авторские права на все материалы, полученные с форума [cnc-club.ru] принадлежат их, материалов, авторам. |
M100-199 - команды, создаваемые пользователем. Иногда полезно выполнить какую-либо процедуру отдельной, пользовательской командой. Например обратиться к HAL или вызвать информационное окно (как в примере ниже), да и вообще много чего может потребоваться пользователю, а этого в системе не предусмотрено. И перенаправление команд не всегда возможно использовать.
Для этого, существует диапазон описываемых пользователем команд. [По материалам обсуждения Вопрос по zenity].
Создание
В отличии от перенаправления, M100-M199 команды - это бинарный файл или скрипт на языке shell. А не ngc файл. Файл должен быть создан в директории, описанной в linuxcnc.ini как PROGRAM_PREFIX. И название его должно быть с большой буквы и без расширения, например M112. Файлу должны быть выданы разрешения на чтение и исполнение.
Обратите внимание, что после создания файла M100 необходимо перезапустить LinuxCNC иначе Вы будете получать ошибку Unknown m code used: M100 |
Пример
Если создать файл M100 с правами на запуск вот такого вида:
#!/bin/bash case ${1%.*} in 0) /usr/bin/zenity --error \ --text "Датчик не обнаружен" ;; 1) /usr/bin/zenity --info \ --text "Установите заготовку" ;; 2) /usr/bin/zenity --error \ --text "Не указано место обработки" ;; esac exit 0
то при вызове кода
M100 P0
будет возникать окно zenity с текстом Датчик не обнаружен и иконкой ошибки.
M100 P1
будет возникать окно zenity с текстом Установите заготовку и иконкой сообщения.
M100 P2
будет возникать окно zenity с текстом Не указано место обработки и иконкой ошибки.