Замечание: пожалуйста, ЗАМЕЧАНИЯ ПО СУЩЕСТВУ! Авторам вопросов типа "а на кой это, и так всё нормально" и т.п. рекомендуется почитать форум повнимательней - и поСчитать количество предложений по улучшению программы Vri-cnc.
Суть предложения:
Снабдить программу Vri-cnc способом передачи информации вида "драйв_№_действие" сторонней программе (далее буду для простоты называть её "плагином") для дальнейшей обработки и посылки на станок.
При кажущихся недостатках , способ предполагает несколько очень существенных (IMHO) достоинств:
- Первое и главное: если у меня есть мой собственный контроллер удобной мне конструкции, будь то СОМ-порт, или ЛПТ на ТМ7, или ЛПТ на L297/298 или вообще какой-нибуть блютуф - мне не нужно напрягать Романа, дабы он внедрил поддержку такого (вполне возможно, весьма непопулярного) решения в программу. Есть информация о том, какой двигатель куда и в какой момент должен дёрнуться, и если есть голова, то можно написать собственную программу-обработчик события, преобразующую эту информацию в посылку для контроллера станка.
Поясню на примере: Плагин "степ/дир".
Программа Vri-cnc посылает плагину посылку о том, что двигатель 0 должен сдвинуться на 1 шаг вперёд. Это может выглядеть, например, так: "{vri}D0+". Плагин получает эту посылку, интерпретирует её, и обрабатывает: Текущие настройки D0 (привод 0) соответствуют приводу Х, делаем шаг: посылаем на ноги 1 и 2 (условно, из настроек) LPT комбинацию "10", ждём некоторое время, посылаем "00". Соответственно, у плагина есть настройки, какие ноги какому драйву соответствуют, и на какие посылки какой драйв дёргать.
- Второе достоинство: скорость модернизации установки (в целом, не конкретно чьей-то) возрастает существенно, т.к. теперь работает над усовершенствованием не один Роман, а целая команда. Это в итоге может позволить этой конструкции/программе станка выйти на лидирующее место в России среди любительских станков с ЧПУ.
- Третье достоинство - копирайт Романа не пострадает! На мой взгляд, Роман проделал очень большую работу по "интерфейсной" и "опционной" проработке программы и именно в этом плане она хороша. Я, например, не представляю, чтобы я смог сделать такую прогу. А так как программа всё равно запускается только на одном компьютере, проблем с несанкционированным пользованием и раздачей "направо-налево" не должно возникнуть - плагин сам по себе ничего не делает, это лишь обработчик. Кроме того, Роман, если захочет, сможет продавать свои плагины.
Теперь о том, как программа может общаться с плагином. Тут вариантов, насколько я понимаю, много, но я знаю один точно работающий: сообщения посылаются в сеть по протоколу UDP (можно и TCP, в принципе) на какой-то определённый порт и на localloop (IP 127.0.0.1). А плагин их вылавливает. Таким образом организовано общение, например, программы WinLirc с внешними программами. В случае организации общения по такому способу переделка программы Vri-cnc минимальна: надо будет сделать RadioGroup, в которой выбирать: посылать сигналы в порт или плагину. И, соответственно, сделать посылку. Кроме всего прочего при таком варианте построения общения "программа-плагин" возможно передавать данные вообще на другой компьютер (например, специальный, "старый" комп для станка) по Ethernet. Необходимо лишь 127.0.0.1 заменить на IP нужного компа.
P.S. Замечания вроде "многабукаф" - не по существу. Я потратил время на написание текста, если интересно - прочитайте полностью, если нет - никто не неволит.
P.P.S Со своей стороны, могу предложить помощь в виде написания плагина, например, того же "степ-дир", для отладочных целей. Я не сильный программер, но помогу, чем смогу.
Отредактировано {gorbln} (2008-03-11 20:47:57)