Prezados,
estou realizando testes maciços com o ACBrMonitor e PHP via socket, no que tenho tido muito sucesso até o momento.
Praticamente já passei por todos os comandos do objeto ECF sem erro.
Uma coisa que me preocupou foi a venda de muitos itens via socket. Vamos aos testes.
Temos o método ECF.VendeItem onde vamos vendendo itens, um a um. Quando há concomitância nem há tanto problema, mas quando vendemos uma pré-venda aí complica. Pois mandamos o primeiro item, aguardamos a resposta, mandamos o segundo e assim sucessivamente. Com um teste de 15 itens, levou 1 minuto e 5 segundos da abertura do cupom ao fechamento.
Vi que no utilitário ECFTeste que vem junto ao instalador para auxílio nos testes, existe uma função bem interessante no menu Cupom Fiscal, o Teste de Velocidade, vc indica a quantidade de itens, a quantidade de cupons e ele dispara para a impressora. A mesma quantidade de itens (15) nesse teste demorou 12 segundos da abertura ao fechamento. Muito mais rápido.
A lógica, creio, é que o ECFTeste usa a comunicação direta e não o socket como estou usando.
Seria viável se modificar o método no ACBrMonitor, onde passaríamos arrays?
Exemplo: Hoje temos
ECF.VendeItem(789012456780,PRODUTO TESTE, II, 3, 2.5)
O comando acima continuaria como está e a modificação poderíamos passar
ECF.VendeItem([789012456780,PRODUTO TESTE, II, 3, 2.5], [789012456780,PRODUTO TESTE, II, 3, 2.5],[789012456780,PRODUTO TESTE, II, 3, 2.5],[789012456780,PRODUTO TESTE, II, 3, 2.5],[789012456780,PRODUTO TESTE, II, 3, 2.5],[789012456780,PRODUTO TESTE, II, 3, 2.5],[789012456780,PRODUTO TESTE, II, 3, 2.5])
o método, reconhecendo que está recebendo arrays, faria exatamente o que o teste de velocidade faz, mandando estes itens ao cupom, não necessitando assim eu realizar um comando via socket para cada itens, mas apenas um comando para todos os itens.
No mais um abraço e até logo.