LHB04-B4

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

LHB04-B4

Сообщение nkp »

Пульт usb проводной ,
со стандартным драйвером XHC-HB04 ( у меня) не заработал.
Другого я не нашел.
создал тему с двумя целями :
п.1 может кто поделится драйвером или тыкнет носом - "вот же он на видном месте - куда ты смотрел ..."
п.2 поделиться чуть подправленным XHC-HB04
--------------
не все (пока) конечно работает,но jog , индикация координат,кнопки работают,
то есть уже можно юзать как то :)
Выделение_127.png (5480 просмотров) <a class='original' href='./download/file.php?id=176765&sid=c000afff9c6640b7c18d50fe7b53fe4d&mode=view' target=_blank>Загрузить оригинал (201.12 КБ)</a>
зы
если (!п.1 ) {продолжение следует ;) }
Вложения
xhc-hb04.cc.tar
(40 КБ) 437 скачиваний
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LHB04-B4

Сообщение Serg »

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

Re: LHB04-B4

Сообщение nkp »

*p++ = 0xFE;
*p++ = 0xFD;
*p++ = 0x0C;
*p++ = 0x03;
выделенное значение при изменении меняет вывод (форму вывода ) на дисплейчик:

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

  	
   *p++ = 0x00;      CON:60%
	*p++ = 0x01;      STP:0.01 	 	
	*p++ = 0x02;      MPG:60%
	*p++ = 0x03;      60%
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: LHB04-B4

Сообщение nkp »

компонент на питоне (выложен для XHC-WHB04-4 https://forum.linuxcnc.org/24-hal-compo ... ent#143727)
проверил для проводного LHB04-B4 - всё работает (все кнопки,два переключателя,mpg)
экран пока "молчит" ;)
(у автора это вызвало затруднения)
lhb04b.tar
(10 КБ) 326 скачиваний
компонент распаковать (как вариант) в папку конфига
для теста в Hal добавить :

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

loadusr -W  ./lhb04b

net axis0jogenable axis.0.jog-enable lhb04b.sel_x
net axis1jogenable axis.1.jog-enable lhb04b.sel_y
net axis2jogenable axis.2.jog-enable lhb04b.sel_z

net joginc lhb04b.inc
net joginc axis.0.jog-scale
net joginc axis.1.jog-scale
net joginc axis.2.jog-scale

net jogcnts lhb04b.mpg_cnt
net jogcnts axis.0.jog-counts
net jogcnts axis.1.jog-counts
net jogcnts axis.2.jog-counts

setp axis.0.jog-vel-mode 1
setp axis.1.jog-vel-mode 1
setp axis.2.jog-vel-mode 1
================
пульт можно включать-выключать"на ходу"
-----------
для работы требуется пакет https://pypi.org/project/pyusb/#files
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: LHB04-B4

Сообщение nkp »

mpg пульта для прокрутки MDI истории в Axis
когда то писал компонент mpg_go для других целей,подправил для этого:

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

component mpg_go ;

pin in s32 in;
pin out s32 out;
pin out bit tick; //true if we have a change in couns
pin io bit off;
variable double old;

function _;
license "GPL";
;;
#include "rtapi_math.h"

FUNCTION(_) {

double tmp = in;
if(!out) out = 1;

if(tmp != old) tick = 1;
if(off) {tick = 0; off = 0;}

if(tmp == old) return;

if(tmp < old) out = -1;
else out = 1;

old = tmp;
}
в файл axisrc , а лучше в файл ,который выполняет функции axisrc (USER_COMMAND_FILE ):

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

if hal_present == 1 :
    ucomp = hal.component("axisui.user")
    ucomp.newpin('updown', hal.HAL_S32, hal.HAL_IN) 
    ucomp.newpin('tick', hal.HAL_BIT, hal.HAL_IN) 
    ucomp.newpin('off', hal.HAL_BIT, hal.HAL_IO)  
    ucomp.newpin('go', hal.HAL_BIT, hal.HAL_IN)        
    ucomp.ready()
    
def user_live_update():
    if ucomp['tick']:
        if ucomp['updown'] > 0:
            commands.mdi_up_cmd()
            ucomp['off'] = 1
        if ucomp['updown'] < 0:
            commands.mdi_down_cmd()        
            ucomp['off'] = 1        

    if ucomp['go']:
        commands.send_mdi()  
в postgui.hal :

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

loadrt mpg_go
addf   mpg-go.0 servo-thread 

net demuxS32:out0 mpg-go.0.in  

net index   mpg-go.0.out   axisui.user.updown
net tick    mpg-go.0.tick  axisui.user.tick  
net off     mpg-go.0.off   axisui.user.off 

# button mdi Go
net  button:y0   axisui.user.go 
по сигналам:
demuxS32:out0 - это тики нашего MPG
button:y0 - кнопка пульта для выполнения команды MDI
---------------------
https://www.youtube.com/watch?v=X9R3icekrTY
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: LHB04-B4

Сообщение nkp »

feed_override тем же MPG
как дополнение - вывод на экран значения (как бы в увеличенном виде) только на время самого действия...
после "отпускания" - пауза (настраивается в hal)
думаю,что подобным образом при надобности можно "оперативно" выводить
нужную информацию по сигналу пина и на определенное время
https://www.youtube.com/watch?v=APuWTkcT-XE
Ответить

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