Jump to content

Promoção de Natal SAC Mensal

Contrate e ganhe 1 Kit agenda + Caneta
Saiba mais

LANÇAMENTO
Curso Completo - Dominando o ACBrMonitor

Conheça o Curso

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

Recommended Posts

Olá Comunidade
Sou novo no ACBr e estou tentando configurar minha aplicação.

Preciso imprimir etiquetas em uma impressora Elgin L-42, mas infelizmente não estou conseguindo.

Uso a última versão do ACBr Monitor, estou desenvolvendo em PHP e estou recebendo o seguinte erro :

ETQ.Ativo
ERRO: Comando invalido (ETQ.Ativo)
ETQ.Ativar
OK: 

 

Eu gostaria de uma luz na situação pois acredito que o comando esteja certo, não entendo como ele pode não existir.

meu cód fonte é esse:

 

namespace App\Http\Controllers;


use Mike42\Escpos\Printer;
use Mike42\Escpos\PrintConnectors\WindowsPrintConnector;
use Mike42\Escpos\PrintConnectors\FilePrintConnector;
use Mike42\Escpos\CapabilityProfile;
use Mike42\Escpos\EscposImage;
use Illuminate\Http\Request;
use App\Classes\PHPSerial;
use App\Classes\ClientSocket;


class InicioController extends Controller
{
    //

    public function index(){
        return view('index');

    }
    public function pesar(Request $request){
        $file_path = public_path()."/acbr/entra/entra.txt";
        //Ativo Balança?
        $data_to_write = "BAL.Ativo"; 

        $file_handle = fopen($file_path, 'w'); 
        fwrite($file_handle, $data_to_write);
        fclose($file_handle);
        sleep(1);

        $file_saida = public_path()."/acbr/sai/entra-resp.txt";
        $data_saida = file($file_saida);
        $line_saida = $data_saida[count($data_saida)-1];
        $ativo = substr($line_saida,4,4);
        if($ativo == "True"){

            //Le peso
            $data_to_write = "BAL.LePeso(100)"; 
            $file_handle = fopen($file_path, 'w'); 
            fwrite($file_handle, $data_to_write);
            fclose($file_handle);
            sleep(2);

            unset($data_saida);
            $data_saida = file($file_saida);
            $line_saida = $data_saida[count($data_saida)-1];

            $peso = substr($line_saida, 4, strlen($line_saida)-4);
            //$peso = substr($line_saida, -4, strlen($line_saida)-4);
            $peso = substr($peso, 0, -6);
            
            //$peso = (double)$peso /** 0.100*/;
            header("Content-type:application/json");
            if(strlen($peso) == 7){
                $peso = substr($peso, 0, 2);
            }else if(strlen($peso) == 8){
                $peso = substr($peso, 0, 3);
            }else if(strlen($peso) == 9){
                $peso = substr($peso, 0, 4);
            }
            echo $peso * 0.001;
            exit;

        }else{
            //Ativar Balança
            $data_to_write = "BAL.Ativar"; 
            $file_path = public_path()."/acbr/entra/entra.txt";

            $file_handle = fopen($file_path, 'w'); 
            fwrite($file_handle, $data_to_write);
            fclose($file_handle);
            sleep(1);

            //Le peso
            $data_to_write = "BAL.LePeso(100)"; 
            $file_handle = fopen($file_path, 'w'); 
            fwrite($file_handle, $data_to_write);
            fclose($file_handle);
            sleep(2);

            unset($data_saida);
            $data_saida = file($file_saida);
            $line_saida = $data_saida[count($data_saida)-1];

            $peso = substr($line_saida, 4, strlen($line_saida)-4);
            $peso = substr($peso, 0, -6);
            //$peso = (double)$peso /** 0.100*/;
            header("Content-type:application/json");
            if(strlen($peso) == 7){
                $peso = substr($peso, 0, 2);
            }else if(strlen($peso) == 8){
                $peso = substr($peso, 0, 3);
            }else if(strlen($peso) == 9){
                $peso = substr($peso, 0, 4);
            }
            echo $peso * 0.001;
            exit;


        }

    }

    public function gerarEtiqueta(Request $request){


        if(isset($request->peso) and $request->peso != "" and !empty($request->peso)){

            if(isset($request->produto) and $request->produto != "" and !empty($request->produto)){
                switch ($request->produto) {
                    case "Long Drink":

                    break;
                    case "Caneca":

                    break;
                    case "Caldereta":

                    break;
                    case "Espiralado":

                    break;
                    case "Taças":

                    break;

                    default:
                        // code...
                    break;
                }
            }else{
                $erro['erro'] = "Erro! Sem produto selecionado."; 
            }
            
            $file_path = public_path()."/acbr/entra/entra.txt";
            //Ativo etq?
            $data_to_write = "ETQ.Ativo"; 

            $file_handle = fopen($file_path, 'w'); 
            fwrite($file_handle, $data_to_write);
            fclose($file_handle);
            sleep(1);

            $file_saida = public_path()."/acbr/sai/entra-resp.txt";
            $data_saida = file($file_saida);
            $line_saida = $data_saida[count($data_saida)-1];
            $ativo = substr($line_saida,4,4);
            
            echo $ativo;
            
            if($ativo == "True"){

                //Imprimir Etiqueta
                $data_to_write = "ETQ.ImprimirTexto(0,4,1,1, 50, 240, Produto: ".$request->produto." ".$request->ml.")";
                $data_to_write .= "\n".'ETQ.ImprimirTexto(0,4,1,1, 100, 240, Cor: '.$request->cor.')';
                $data_to_write .= "\n"."ETQ.ImprimirTexto(0,4,1,1, 150, 240, Op.: ".$request->operador.")";
                $data_to_write .= "\n"."ETQ.ImprimirTexto(0,4,1,1, 200, 240, Data: ".Date("d/m/Y").")";
                $data_to_write .= "\n".'ETQ.ImprimirTexto(0,3,2,2, 250, 240, "Peso: '.$request->peso.' Kg")';
                $data_to_write .= "\n"."ETQ.SetAvanco(2)";

                $file_handle = fopen($file_path, 'w'); 
                fwrite($file_handle, $data_to_write);
                fclose($file_handle);
                sleep(1);

                $data_to_write = "ETQ.Imprimir(1,2)";

                $file_handle = fopen($file_path, 'w'); 
                fwrite($file_handle, $data_to_write);
                fclose($file_handle);

                echo $request->peso;
            }else{
                //Ativar Etiqueta
                $data_to_write = "ETQ.Ativar"; 
                $file_path = public_path()."/acbr/entra/entra.txt";

                $file_handle = fopen($file_path, 'w'); 
                fwrite($file_handle, $data_to_write);
                fclose($file_handle);
                sleep(1);

                //Ativo etq?
                $data_to_write = "ETQ.Ativo"; 

                $file_handle = fopen($file_path, 'w'); 
                fwrite($file_handle, $data_to_write);
                fclose($file_handle);
                sleep(1);

                $file_saida = public_path()."/acbr/sai/entra-resp.txt";
                $data_saida = file($file_saida);
                $line_saida = $data_saida[count($data_saida)-1];
                $ativo = substr($line_saida,4,4);

                if($ativo == "True"){
                    
                    //Imprimir Etiqueta
                    $data_to_write = "ETQ.ImprimirTexto(0,4,1,1, 50, 240, Produto: ".$request->produto." ".$request->ml.")";
                    $data_to_write .= "\n".'ETQ.ImprimirTexto(0,4,1,1, 100, 240, Cor: '.$request->cor.')';
                    $data_to_write .= "\n"."ETQ.ImprimirTexto(0,4,1,1, 150, 240, Op.: ".$request->operador.")";
                    $data_to_write .= "\n"."ETQ.ImprimirTexto(0,4,1,1, 200, 240, Data: ".Date("d/m/Y").")";
                    $data_to_write .= "\n".'ETQ.ImprimirTexto(0,3,2,2, 250, 240, "Peso: '.$request->peso.' Kg")';
                    $data_to_write .= "\n"."ETQ.SetAvanco(2)";

                    $file_handle = fopen($file_path, 'w'); 
                    fwrite($file_handle, $data_to_write);
                    fclose($file_handle);
                    sleep(1);

                    $data_to_write = "ETQ.Imprimir(1,2)";

                    $file_handle = fopen($file_path, 'w'); 
                    fwrite($file_handle, $data_to_write);
                    fclose($file_handle);

                    echo $request->peso;
                }else{
                    echo $erro['erro'] = "Erro! Etiqueta desativada";
                }
            }
        }else{
            echo $erro['erro'] = "Erro! Sem Peso, por favor pese o produto antes.";
        }
    }
}

 

Share this post


Link to post
Share on other sites

Bom dia..

gere os arquivos da balanca, e mande os txt, para nos, e os logs, e o acbrmonitorplus.ini

para saber tuas configuracoes.

leia tambem:

https://acbr.sourceforge.io/ACBrMonitor/Balanca.html

https://acbr.sourceforge.io/ACBrMonitor/ComandosdoObjetoBAL.html

qualquer coisa..tamos ai..

eu posso ajudar na parte do txt e retornos.

Share this post


Link to post
Share on other sites
18 minutos atrás, Ti Injetado disse:

ETQ.Ativo
ERRO: Comando invalido (ETQ.Ativo)

Qual a versão do Monitor está usando? Pois eu testei aqui está funcionando normalmente.

A respeito da impressão veja o manual como o Daniel falou e também veja o Demo também.

Share this post


Link to post
Share on other sites

Senhores, 

minha balança está correta, meu grande problema é referente a impressão dos dados na etiqueta.

Já verifiquei em código que as variáveis estão com os valores atribuídos corretamente.

O que noto é que quanto utilizo o comando ETQ.Ativar() ele me retorna "OK: ", mas quando executo o ETQ.Ativo() pra verificar se a impressora está ativa, ele me retorna:

"ETQ.Ativo
ERRO: Comando invalido (ETQ.Ativo)"

Preciso configurar a impressora de etiquetas apenas.

1 minuto atrás, Robert Dj disse:

Qual a versão do Monitor está usando? Pois eu testei aqui está funcionando normalmente.

A respeito da impressão veja o manual como o Daniel falou e também veja o Demo também.

Estou utilizando a última versão.

 

Você testou com o meu código?

Share this post


Link to post
Share on other sites
1 minuto atrás, Ti Injetado disse:

Estou utilizando a última versão.

Última versão SAC ou a Livre?
 

2 minutos atrás, Ti Injetado disse:

Você testou com o meu código?

O que testei foi o comando ETQ.Ativo e está funcionando. Esse erro "Comando Inválido" é quando você passa um comando inexistente, por exemplo, erro na digitação.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...