HPtalx - HP 50g no Ubuntu 14.04

Iniciado por JuarezASF, 23 de Setembro de 2015, 01:50

tópico anterior - próximo tópico

JuarezASF

Nesse tutorial vou mostrar como conectar sua calculadora preferida HP 50G no Ubuntu 14.04. O programa a ser utilizado é o hptalx e já está por aí há um bom tempo, o problema é que os tutorias com os quais me deparei foram escritos na época do Ubuntu 8 e precisam de atualizações. Os passos aqui apresentados foram testados no Ubuntu 14.04, mas espero que resolvam também a conexão no Ubuntu 12 e 13. Nessas versões eu já havia tentado utilizar o hptalx e sempre esbarrava no mesmo problema.

Com o hptalx você pode transferir arquivos do computador para a calculadora, editar arquivos na calculadora e mais. Um dos usos dessa ferramenta é a possibilidade de escrever programas no computador e então passá-los para a 50g. Você poderá também baixar programas de bancos de programas e aumentar ainda mais as funcionalidades da sua calculadora. Um usuário maligno pensaria em escrever fórmulas ou até mesmo exercícios resolvidos em arquivos texto e levá-los consigo para a prova, mas ainda bem que não temos usuários malignos por aqui.

Vamos lá.

Baixe o código fonte
Entre na  página de downloads do HPTalx(http://hptalx.sourceforge.net/download.shtml) e baixe o gzip da versão 1.3.1a.
Abra um terminal(CTRL+T) e cd para o diretório onde o arquivo foi salvo. Descompacte o arquivo com:
tar -zxvf hptalx-1.3.1a.tar.gz

Instale os pacotes necessários
O comando a seguir é suficiente:
sudo aptitude install build-essential libglib2.0-dev libgtk2.0-dev libxml2-dev libsocksd0 openbsd-inetd ckermit


Compile o programa

cd hptalx-1.3.1a/
./configure --prefix=INSTALL_DIR
make
sudo make install


onde InstallDIR é o diretório onde o programa será instalado. No meu caso, usei --prefix=~/Programas/hp50g/

Adicionar o seu usuário ao grupo dialup
Esse passo é necessário para que o hptalx tenha acesso às portas de comunicação serial quando executado por você. Isso pode ser feito com o comando:

sudo usermod -a -G dialout $USER

Onde $USER é o seu nome de usuário. Para que a mudança tenha efeito, é necessário deslogar e logar novamente.

Conecte a HP 50g no computador
Se por acaso você perdeu o cabo que veio com a calculadora, saiba que é um cabo comum e você deve ter outro em casa. No meu caso, usei o cabo do controle do PS3 como substituto.

Descubra em qual porta a calculadora está conectada
Faço isso com o comando:
dmesg

No meu caso, a saída foi:


[10737.855830] usb 2-2: Product: HPx9G+ Device
[10737.855834] usb 2-2: Manufacturer: HP Company
[10737.858461] usb_serial_simple 2-2:1.0: hp4x converter detected
[10737.858641] usb 2-2: hp4x converter now attached to ttyUSB0


Indicando que a calculadora está conectada na porta ttyUSB0.

Coloque a calculador em modo servidor kermit

Isso pode ser feito segurando o shift direito e apertando a seta para direita. A Hp 50 g possui 4 direcionais: Seta para cima, para baixo, para esquerda e para direita. É dessa seta que estou falando.  Após o comando você deve ler na tela:

Awaiting Server Cmd.


Se você ler algo relacionado a Xserver, você fez errado. Lembre de segurar o shift direito ao apertar a seta para direita.
Outro modo de se iniciar esse modo é: Shift direito + P (=CAT) e procurar pelo comando SERVER. Toda vez que você quiser conectar a 50g com o hptalx, certifique-se de que a calculadora está nesse modo.

Abra o hptalx e configure a conexão
Abra um terminal e cd para o diretório bin onde o hptalx foi instalado. no meu caso: cd ~/Programas/hp50g/bin
Execute o programa com:
./hptalx

Clique em File->Setup e marque as opções a seguir:

Connection Setting: USB(ttyUSB)
port: 0 [o a porta que tenha aparecido na etapa em que você executou 'dmesg']
COM speed: 9600
timeout: 15

Clique em 'save' e então em OK. Clicando em 'save' o programa irá salvar as configurações e você não precisará repetir isso toda vez que for conectar.

Tente conectar
Clique em  Connect->Connect
Nessa etapa, se você tiver o mesmo problema que eu tive, o programa vai travar. A janela fica acinzentada e depois de um tempo o programa te informa para verificar se a calculadora está conectada e se o modelo dela é compatível.
Não desista, só falta mais uma etapa.

Configure o Ubuntu para reconhecer corretamente a calculadora
Nessa etapa eu não entendo muito bem o que está acontecendo. Achei a resposta nesse fórum(http://www.hpmuseum.org/forum/archive/index.php?thread-3645.html) e ela funcionou muito bem para mim.

Para certificar-se de que estamos falando do mesmo problema, abra em um editor de texto o arquivo /var/log/syslog. Por exemplo, se você tem o gedit instalado:

gedit /var/log/syslog

Vá para as últimas linhas do arquivo. Você deve ver dois erros:

Citar
Apr 10 13:03:54 XXXXXXXX ModemManager[718]: <warn>  (ttyUSB0): port attributes not fully set
Apr 10 13:03:54 XXXXXXXX hp-config_usb_printer: hp-config_usb_printer[3235]: error: This is not a valid device
Segundo o autor da resposta que mencionei:

Citar'obviamente o modem manager pensa que a HP é um serial modem(modem serial?) e então a considera como uma impressora USB da HP'.(texto original: Obviously the modem manager thinks the 50G is a serial modem. And then it is considered as a USB HP printer)

Para corrigir, duas etapas:
(1) No arquivo "/lib/udev/rules.d/77-mm-usb-serial-adapters-greylist.rules" adicionar o seguinte:

# HP-49G+/50G device
ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="0121", ENV{ID_MM_DEVICE_MANUAL_SCAN_ONLY}="1"


(2) No arquivo "/lib/udev/rules.d/56-hpmud.rules" mudar as linhas:

# ENV{ID_HPLIP}="1" is for Ubuntu udev-acl
ATTR{idVendor}=="03f0", ATTR{idProduct}=="????", OWNER="root", GROUP="lp", MODE="0664", ENV{sane_hpaio}="yes",
ENV{libsane_matched}="yes", ENV{hp_test}="yes", ENV{ID_HPLIP}="1"

para:

# ENV{ID_HPLIP}="1" is for Ubuntu udev-acl
ATTR{idVendor}=="03f0", ATTR{idProduct}!="0121", OWNER="root", GROUP="lp", MODE="0664", ENV{sane_hpaio}="yes",
ENV{libsane_matched}="yes", ENV{hp_test}="yes", ENV{ID_HPLIP}="1"


Você vai precisar de permissão para modificar esses arquivos. Utilizando o gedit, você pode rodar o comando:
sudo gedit /lib/udev/rules.d/77-mm-usb-serial-adapters-greylist.rules
para a primeira edição e:
sudo gedit /lib/udev/rules.d/56-hpmud.rules
para a segunda.

Na primeira edição, adicione as linhas mencionadas antes da linha  'LABEL="mm_usb_serial_adapters_greylist_end'. Esta deve ser a última linha do arquivo e acredito que tudo depois disso seja ignorado.

Relogue e tente conectar
Para que as mudanças anteriores façam efeito é preciso reiniciar o sistema(ou talvez simplesmente deslogar funcione aqui também). Agora abra o hptalx e tente conectar novamente.  Voilà: a conexão é sucedida.

Espero que funcione para vocês também.
Esse foi meu primeiro tutorial nesse fórum. Críticas e sugestões são bem vindas.