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.
Excelente, algo de muito útil e interessante.
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
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! 🙂
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
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
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
tenho um p.o.s mas ja um pouco antigo sistema operativo atual ainda windows 98 mas pretendo instalar linux para trabalhar com winrest . website ainda em construção