Controlo simples de ciber com o WinRest em Linux

O WinRest tem alguma API com documentação pública para criar plug-ins?

Implementei um simples plug-in (um pouco às cegas) para gerir o registo de utilização de 2 PCs numa cafetaria, será que isto tem interesse para alguém?

Usei o cliente em FOX do Café Con Leche com algumas modificações e alguns scripts em bash para gerir o resto.

Ou seja, o POS usa Linux, e monto o share samba da root do POS no servidor. No servidor tenho também a correr a aplicação servidor do CCL.

Cada máquina (a correr Linux) para utilização corre o cliente do CCL com possibilidade de começar a sessão na máquina. Modifiquei o cliente do CCL para mostrar os segundos e tirei o mostrador dos gastos em produtos.

Controlo o ambiente com algumas chaves mandatory do gconf para impedir correr comandos, mexer nos paineis, etc. De qualquer forma o tar quando é reposto substitui quaisquer alterações no gconf da sessão terminada.

Quando o utilizador encerra a sessão, o X reinicia, limpo a $HOME (tenho um tar só com o básico) para documentos, cache, etc que o utilizador tenha deixado desaparecerem para o próximo utilizador.

A aplicação que corre no servidor regista cada sessão terminada para um ficheiro, que é tratado por um script bash quando existem registos por tratar (usando o inotifywait). Este script cria no POS um ficheiro por utilização (para simplificar o tratamento no script do WinRest) contendo o nome da máquina, o tempo usado, o custo e a hora a que a sessão terminou.

No POS criei um plug-in que lê estes ficheiros e mostra esta informação, o utilizador do POS escolhe o registo a pagamento (não sei se é possível transportar coisas de um plug-in para pagamento na caixa…), o ficheiro é actualizado com a informação de que esse acesso está pago e surgirá como pago na lista, sendo necessário aceder aos pedidos do WinRest para então processar o pagamento na caixa.

Ao fim do dia ambas as máquinas desligam-se com uma tarefa no cron, o servidor faz backups dos POS e limpa os registos de acessos às máquinas nesse dia.

Com tempo talvez substitua o CCL por algo mais simples. A ideia é mesmo ter um sistema sem muita manutenção integrado o melhor possível com o POS, para eliminar a necessidade de uma máquina dedicada para gerir os acessos e os pagamentos.

Talvez publique os scripts se interessar a alguém.

7 comentários em “Controlo simples de ciber com o WinRest em Linux”

  1. Internet Explorer 7.0 Windows Vista

    Boas Bluey,

    gostava de saber como aceder ao linux .
    Um amigo meu tem um sistema winrest fo pro em linux, mas eu nao sei como aceder ao linux.

    Ja tentei ligar a rede e ver se alguma porta estava aberta, mas parece que nao tem nenhuma porta aberta.

    O meu objectivo final era:
    – criar produtos directamente na BD do programa
    – conseguir aceder a maquina atraves de VNC

    Se poderes dar alguma ajuda agradecia.

    Pedro

  2. Mozilla Firefox 3.0.8 Ubuntu Linux

    Eu estou a fazer a actualização da lista de utilizações desse pequeno ciber e a fazer backups da BD por CIFS/SMB.

    O VNC deve ser mais complicado, sem ter a toolchain deles, até porque fiquei com a impressão que eles não usam um X, mas não olho para aquilo há algum tempo.

    Relativamente ao acesso à BD, parece-me trivial, mas sem conhecer o schema das tabelas pode ser arriscado. Talvez o melhor fosse arrancar aquilo numa VM e experimentar. Se calhar não funciona, eles usam uma chave USB para impedir cópias, não é?

    Boa sorte! 🙂

  3. Mozilla Firefox 3.0.10 Windows XP

    Simples, o winrest linux usa o framebuffer para imprimir imagens directamente no ecrã. Para usar vnc precisas de um vnc server na /dev/vc/9 ou entao usas o comserver, que usa uma versao VNC modificada por eles.
    A distribuição linux do Winrest está muito básica, sem segurança. Qualquer restaurante com wireless ne rede winrest com uso de PDA’s ou algo do genero está com a base de dados aberta a toda a rede! As portas usadas para transferencia de arquivos são as default do SMB. No windows fazes “\\IPDOSERVIDOR\Root\” para teres acesso ao sistema completo, e no linux, caso tenhas na kernel o CIFS usas “mount -t cifs //IPDOSERVIDOR/Root/ /mnt/pastaexistente -o username=root,password=”
    fazer uma copia dos ficheiros de contabilidade fazes em linux cp /mnt/pastaexistente/home/winrest/files/export/* /home/pastadaminhacopia/;
    para apagar… é melhor não o fazerem ;D
    Em termos de segurança o WinRest leva 1 de 0 a 10;

    Saudações Inteligentes

    1. Mozilla Firefox 3.0.10 Ubuntu Linux

      Claro que naquele caso as máquinas winrest estão numa rede aparte, tal como as máquinas do ciber e a rede wireless. Estão todos separados, com firewall no meio (e o wireless ainda está com canais separados para não haver malta a mexer em máquinas alheias).

      O resto da informação já conhecia (a cena do vnc não, obrigado pela dica). 🙂

      A simplicidade que é para eles configurar vários postos dá de facto aso a que outras pessoas acedam ao sistema. Deviam ter um sistema de comunicação entre postos que não obrigasse a haver partilhas do sistema de ficheiros…

      Cheers

      1. Mozilla Firefox 3.0.11 SuSE Linux

        Exacto, eu nao tenho a API deles mas estou a trabalhar numa distro mais avançada, com muitas mais tools, e com segurança. Normalmente tu tens a init2 na distro deles, imagina que por algum motivo de configuração tens que muda-la, se existir erro e não tiveres nenhum pc linux perto, estas tramado!
        Eu estou a carregar o sistema com uma imagem pre carregada para a Ram juntamente com a kernel, que faz a procura do sistema winrest e carrega as configuracoes.
        A maneira de como a configuração é salvaguardada tb é diferente, na minha distro tenho uma pasta so com classes, uma class para o ficheiro de configuracao, outra para a interacção com winrest, outra com interação com a rede, etc, de modo a que qqr plugin possa facilmente carregar as classes, e fazer o que quiser mais facilmente. EX:

        config.adicionarvar “TOUCHDEVICE” “/dev/tts/2”;
        config.flush;

        envia me um email se tiveres interessado em trocar ideias.
        Um Abraço

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

*