domingo, 11 de março de 2012

EDITANDO ARQUIVOS DE ROBÔS ABB EM DISPOSITIVOS ANDROID



Já faz algum tempo que tento descobrir uma maneira de ler/editar arquivos produzidos por robôs em dispositivos móveis. Já brinquei com meus Nokias série E, e agora a bola da vez foi meu Galaxy Tab.

Existem vários editores de texto para Android, mas eu queria uma experiência mais próxima da que tenho com o notebook, e uma das condições era que fosse possível ter algum tipo de destacamento de sintaxe (syntax highlighting). Pesquisei um pouco e, até onde sei, o único editor de textos - para Android - onde existe a possibilidade de criar arquivos de configuração para linguagens de programação específicas é o Jota (que, vejam só vocês, eu já usava).

Embora eu não encoste em um TP (ou num FlexPendant) há mais de um ano, decidi criar um arquivo de destacamento de sintaxe para a linguagem Rapid, da ABB, porque esta é a mais editing friendly que eu conheço.

De início, tive um pequeno problema. Assim como o próprio Android - que para todos os efeitos é uma distro Linux - a versão do Jota na qual comecei a trabalhar era case sensitive (faz diferenciação entre letras maiúsculas e minúsculas), então um arquivo de configuração prg.sys.cfg.mod.conf seria diferente de um arquivo de configuração PRG.SYS.CFG.MOD.conf.

A questão era que os arquivos gerados pelos controladores S4(C/Plus/P) sempre são criados com todas as letras de seus nomes em maiúsculas. Mas isso não acontece com a série IRC5. Tudo bem, não se fabricam mais controladores da série S4, mas ainda existem muitos deles espalhados por aí. Então quando um usuário quisesse editar um arquivo do IRC5, teria que usar um arquivo de configuração e quando quisesse editar um arquivo do S4, teria que usar outro. Ou poderia ficar renomeando os arquivos, trocando a capitalização das letras. Nem preciso dizer que qualquer um dos dois métodos seria, no mínimo, contraproducente.

Enviei o arquivo para o desenvolvedor do Jota, mas ele disse que não disponibilizaria o mesmo junto com o software porque acredita que, embora a linguagem Rapid não seja muito popular, algumas de suas extensões são. O .prg, por exemplo, é utilizado pela linguagem FoxPro (alguém ainda usa isso?). O .mod pode ser um arquivo de vídeo ou um programa Fortran (alguém ainda usa isso?), e o .sys pode ser um arquivo de sistema do Windows. E isso poderia confundir alguns usuários. Para mim, essa argumentação fez sentido.

Ele disponibilizou o keyword file em seu site. Caso você se interesse, basta baixar o arquivo e colocá-lo em /sdcard/.jota/keyword/user/ (depois de ter instalado o Jota, obviamente).

Fiz os testes em um Galaxy Tab (Android 2.2) e em um Xperia X8 (Android 2.1), e ambos funcionaram como o esperado.

Infelizmente, não pude colocar screenshots aqui, porque sou preguiçoso demais para rootear meu GTab (ou para reinstalar o Z4root, que meu antivírus diz ser, bem, vírus).

Sei que editar um programa desses em uma tela minúscula não deve ser lá uma das experiências mais empolgantes do mundo, até mesmo pela dificuldade em transferir os arquivos entre o controlador do robô e a grande maioria dos dispositivos Android. Contudo, acho que é vantajoso ter a *possibilidade* de fazer isso em caso de emergência.

O próximo passo será criar os keyword files para as linguagens (v)krl/KUKA e tp/FANUC. 

ATENÇÃO 1: caso sua versão do Jota seja anterior a 0.2.10, provavelmente você terá aquele problema com os nomes dos arquivos em maiúsculas e minúsculas que eu mencionei acima. E a melhor maneira de resolver isso é atualizando o Jota.

ATENÇÃO 2: eu ainda NÃO carreguei nenhum arquivo editado pelo Jota em um controlador ABB, então não sei se haverá algum problema durante o 
upload. Acredito que não, MAS AINDA NÃO tenho certeza.  Então, caso queira impressionar seu chefe programando em seu celular, saiba que você está por usa própria conta e risco, meu chapa. Como dizem os americanos, shit happens. Faça alguns testes antes.