Ir para conteúdo
  • Cadastre-se

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

Comprar

Impressora de Etiquetas L42

Fabricada no Brasil. Benefícios exclusivos
Garantia de 18 meses   Visor na Tampa   Protocolos PPLA e PPLB
Portas USB e Serial   Baixo Custo de Manutenção   Financiamento através do BNDES

Comprar

OFF-TI

Importar as assinaturas via C#?

Recommended Posts

Olá, 

Gostaria de saber se há porte da "ACBRSAT32.dll" para importar as assinaturas via C#?

Exemplo:

[DllImport("ACBRSAT32.dll")]
public static extern string Inicializar()

string ret = ACBrSAT32.Inicializar();

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No SVN tem os Imports já prontos em "Projetos\ACBrLib\Demos\Sat\C#\Imports".

E neste link você encontra o demo em Alto Nivel em C#.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Baixei o arquivo Cdecl.zip, com a ACBrSAT32.dll versão 0.0.1.0 

ACBr\Projetos\ACBrLib\Demos\Sat\C#\Demo\ACBrLibSat.Demo\bin\Debug\ACBrSAT32.dll 

var ret = ACBrSat.SAT_Inicializar("".ToUTF8(), "".ToUTF8());  

System.DllNotFoundException: 'Não é possível carregar a DLL 'ACBrSAT32.dll': Não foi possível encontrar o módulo especificado. (Exceção de HRESULT: 0x8007007E)'

obs: como gerar as dll?

private const string ACBr = "ACBrSAT32.dll";

private const string ACBr = "ACBrETQ32.dll";

private const string ACBr = "ACBrMail32.dll";

private const string ACBr = "ACBrPosPrinter32.dll";

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

As dll precisa estar em algum Path do windows ou no mesmo local do executavel no caso na pasta "bin\debug" ou "bin\release", também é necessário as dll do OpenSSL e LibXml2 você encontra as mesma no SVN em "DLLs\LibXml2\x86" e "DLLs\OpenSSL\1.0.2.13\x86", a dll não podem ficar junto do download pois as dll de openssl e libxml2 tem o mesmo nome tanto em x64 como em x86.

Para compilar as dlls vocês precisa.

  1. Baixar os fontes do SVN.
  2. Instalar o Lazarus.
  3. Instalar os componentes ACBr no Lazarus.
  4. Abrir o projeto da lib que você deseja que estarão na pasta "Projetos\ACBrLib\Fontes" dos fontes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

Copiei as dll´s acima e ao ativar o sistema mostrou o a tela e mostrou o erro:

// Inicializando a dll
var ret = ACBrSat.SAT_Inicializar("ACBrLib.ini".ToUTF8(), "123456".ToUTF8());
System.ApplicationException: 'Chave não existe no arquivo de configuração'

obs: ACBrLib.ini criado com sucesso!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,.

Eu estudei os fontes em pascal e em C#, já uso ACBrMonitorPlus, no intuído de apreender e ajudar!

Mais eu queria tirar algumas duvidas!

1) Para eu ter acesso as dll´s (ACBrSAT32.dll, ACBrETQ32.dll", ACBrMail32.dll, ACBrPosPrinter32.dll), é necessário compilar projeto em pascal?

2) Não exite um ACBrStarKit_C# _1.0.0 com "DLLs\LibXml2\x86" e "DLLs\OpenSSL\1.0.2.13\x86" e mais as dll´s acima, com todo ambiente preparado para desenvolvimento com manual?

3) Será possível simplificar o desenvolvimento como no estilo pascal? 

Exemplo:

 ACBrSAT1.EnviarDadosVenda( mVendaEnviar.Text );

if (ACBrSAT1.Resposta.codigoDeRetorno == 6000) {...}

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  1. Não será preciso vai ter os downloads disponíveis no fórum igual temos do ACBrMonitor.
  2. Podemos adicionar as mesma para Download sem problema.
  3. No demo de alto nível tem uma simplificação do uso da lib usando classe em vez de chamada direta da dll, mas o retorno ainda fico no estilo ini do monitor para o pessoal que já trabalha com ele ter um acesso melhor, lembrando que o retorno pode ser em xml, ini e json.
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelo pronto retorno,

Pelo que entendi por suas respostas o projeto está em homologação!

Quanto tempo você acredita ter uma biblioteca para podermos colocar em Produção?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

Framework simplificado, exemplo SAT:

namespace ACBrFrameWork
{
    public class ACBrSAT32
    {         
        #region Comandos

        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_Ativar(string CNPJ, string cUF);
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_Inicializar();
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_Desinicializar();
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_AssociarAssinatura;
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_AssociarAssinatura(string CNPJ, string Assinatura);
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_Bloquear();
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_Desbloquear();
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_TrocarCodigoAtivacao(string codigoDeAtivacaoOuEmergencia, string opcao, string novoCodigo);
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_ConsultarSAT();
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_ConsultarStatusOperacional();
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_ConsultarNumeroSessao(string NumeroDeSessao);
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_AtualizaSoftware();
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_ComunicarCertificadoICPBRASIL();
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_ExtrairLogs(string CaminhoArquivo);
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_CriarCFe(string ArqINI);
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_CriarEnviarCFe(string ArqINI);
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_EnviarCFe(string ArqXML);
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_CancelarCFe(string ArqXMLVenda);
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_ImprimirExtratoVenda(string ArqXMLVenda, string NomeImpressora);
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_ImprimirExtratoResumido(string ArqXMLVenda, string NomeImpressora);
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_ImprimirExtratoCancelamento(string ArqXMLVenda, string ArqXMLCancelamento, string NomeImpressora);
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_GerarImpressaoFiscalMFe(string cArqXMLVenda, string cNomeImpressora);
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_TesteFimAFim(string ArqXMLVenda);
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_GerarPDFExtratoVenda(string ArqXMLVenda, string NomeArquivo);
        [DllImport("ACBrFrameWork32.dll")]
        public static extern int SAT_SetLogomarca(string nLogo)

        #endregion

        #region Retornos

        [DllImport("ACBrFrameWork32.dll")]
        public static extern string SAT_Arquivo();
        [DllImport("ACBrFrameWork32.dll")]
        public static extern string SAT_CodigoDeRetorno();
        [DllImport("ACBrFrameWork32.dll")]
        public static extern string SAT_NumeroSessao();
        [DllImport("ACBrFrameWork32.dll")]
        public static extern string SAT_ChaveAcesso();
        [DllImport("ACBrFrameWork32.dll")]
        public static extern string SAT_ArquivoXML();
        [DllImport("ACBrFrameWork32.dll")]
        public static extern bool SAT_VendaAprovada();
        [DllImport("ACBrFrameWork32.dll")]
        public static extern bool SAT_VendaCancelada();
        [DllImport("ACBrFrameWork32.dll")]
        public static extern bool SAT_TesteFimConcluido();
        [DllImport("ACBrFrameWork32.dll")]
        public static extern bool SAT_StatusOperacionalConcluido();
        [DllImport("ACBrFrameWork32.dll")]
        public static extern bool SAT_AtivacaoConcluido();
        [DllImport("ACBrFrameWork32.dll")]
        public static extern string SAT_CodigoDeErro();
        [DllImport("ACBrFrameWork32.dll")]
        public static extern string SAT_Mensagem();

        #endregion 

        #region TratarRetorno

        public static string TratarRetorno(int ret) {}

        #endregion

        #region Configuração

        [DllImport("ACBrFrameWork32.dll")]

        public static extern int SAT_ConfigLoad(string ArqINI);
        public static extern int SAT_ConfigSave(string ArqINI);

        #endregion

    }
}

Grato a Equipe ACBr

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não esta em homologação pode ser usado em produção.

Esta sua interface em C# está incorreta, tem varias coisas ali que nem se quer existem.

Recomendo muito olhar o demo abaixo.
 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

O modelo acima era apenas um ideia.

Eu baixei o seu novo demostrativo Enviado Ontem às 16:06

Mais o ACBrLib.Core, está apresentando erro para mim!

Pode auxiliar por favor!

 

projeto.PNG

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Rafael,

> Restaurar Pacotes NuGet

Todos os pacotes já estão instalados e não há nada para ser restaurado.
Tempo Decorrido: 00:00:00.0658963
========== Concluído ==========

1>C:\Users\marco\Desktop\ACBr_C#\DemoCSharpSat\Shared\ACBrLib.Core\ACBrLib.Core.csproj(92,5): error : Este projeto faz referência a pacotes do NuGet que não estão presentes neste computador. Use a Restauração de Pacotes do NuGet para baixá-los.  Para obter mais informações, consulte http://go.microsoft.com/fwlink/?LinkID=322105. O arquivo ausente é ..\..\PosPrinter\Demos\packages\Fody.2.0.0\build\portable-net+sl+win+wpa+wp\Fody.targets.

obs: Comando executado Restaurar Pacotes NuGet, mais não encontra o pacote PosPrinter.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 Baixei o exemplo e não compilou!

Fiz novamente procedimento de restaurar a NuGet

Todos os pacotes já estão instalados e não há nada para ser restaurado.
Tempo Decorrido: 00:00:00.0575676
========== Concluído ==========

Erro:   Este projeto faz referência a pacotes do NuGet que não estão presentes neste computador. Use a Restauração de Pacotes do NuGet para baixá-los.  Para obter mais informações, consulte http://go.microsoft.com/fwlink/?LinkID=322105. O arquivo ausente é ..\..\PosPrinter\Demos\packages\Fody.2.0.0\build\portable-net+sl+win+wpa+wp\Fody.targets.    ACBrLib.Core   

Procedimentos:

> Para compilar o mesmo basta baixar a versão CDECL da lib e colocar em Import\ACBrLibPosPrinter\Resources.

> ACBrSAT32.dll (copiado para pasta)

obs: Mesmo aviso como na lib anterior!

 


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Rafael,

> Demo e Classe de Alto de Nivel em C# 20181211

>: Esta biblioteca necessita das dlls do OpenSSL e LibXml2 que se encontram no repositório SVN em "DLLs\LibXml2" e ""DLLs\OpenSSL\1.0.2.13\".

> ACBrSAT32.dll -> StdCall

>>> Perfeito compilou ACBrLibSat -

obs:    Como informar os parâmetros, para start da lib? ->  public ACBrSat(string eArqConfig = "", string eChaveCrypt = "") :

ps: Existe um manual ?

Grato.

sat_init.PNG

Editado por OFF-TI
anexo:Imagem configuração exceção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

Rafael, pesquisando o fonte eu notei o seguinte:

 ACBrMonitorPlus 1.2.0.25

Parâmetro que está funcionando normalmente com SAT:

>>> satDinamico_stdcal

ACBrSAT.Inicializado
NumeroSessao: 373279 - Comando: ConsultarStatusOperacional
NumeroSessao: 373279 - Resposta:373279|10000|Resposta com sucesso|||900009261|DHCP|192.168.000.021|70:51:16:24:61:92|255.255.255.000|192.168.000.003|008.008.008.008|008.008.004.004|CONECTADO|ALTO|4 GB|14 MB|20181212083612|02.02.00|00.07|35181208723218000186599000092610054943431246|35180908723218000186599000092610053604998019|35181208723218000186599000092610054943431246|20180914105654|20181212080336|20160824|20210824|0

namespace ACBrLib.Sat

private class Delegates
{
   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
    public delegate int SAT_Inicializar(string eArqConfig, string eChaveCrypt);
}

Troquei a ACBrSAT32.dll para versão ->  Cdecl

> Criou automaticamente o arquivo de ACBrLib.ini 

obs: CheckResult igual -3  (System.StackOverflowException: 'Exception of type 'System.StackOverflowException' was thrown.')

Grato.

sat_erro_3.PNG

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma coisa é a convenção de chamada da DLL do equipamento SAT e outra a do ACBrLibSAT

A versão da ACBrLibSAT dependerá de como a sua linguagem tem mais aptidão para instância-la... Creio que a classe em alto nível, desenvolvida pelo @Rafael Dias, usa por padrão CDECL...

O ACBrLibSAT, quando inicializada, fará a carga da DLL do Fabricante, para que a mesma fale com o SAT... A configuração de ACBrSAT.Modelo, diz respeito a como a DLL do fabricante foi construida... a grande maioria, usa satDinamico_stdcal , mas alguns como a Gertec e o Emulador de SP usam satDinamico_cdecl .. Usar o modelo errado, pode causar A.V.

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Daniel,

Segue a configuração:

Uso: Tanca S@T SDK, versão 2.0.0.0

em anexo arquivo log e ACBrLib.ini (criado automáticamente)

17/12/18 08:52:58:816 - Destravar
17/12/18 08:52:58:822 -    SetRetorno(0, )
17/12/18 08:52:58:829 - LIB_ConfigLerValor(SAT, NomeDLL)
17/12/18 08:52:58:834 -    Valor:, len:0
17/12/18 08:52:58:839 -    SetRetorno(0, )
17/12/18 08:52:58:845 - LIB_ConfigLerValor(SAT, Modelo)
17/12/18 08:52:58:850 -    Valor:0, len:1
17/12/18 08:52:58:855 -    SetRetorno(0, 0)
17/12/18 08:52:58:860 - LIB_ConfigLerValor(SAT, CodigoDeAtivacao)
17/12/18 08:52:58:865 -    Valor:, len:0
17/12/18 08:52:58:870 -    SetRetorno(0, )
17/12/18 08:52:58:875 - LIB_ConfigLerValor(SATConfig, infCFe_versaoDadosEnt)
17/12/18 08:52:58:880 -    Valor:0,07, len:4
17/12/18 08:52:58:885 -    SetRetorno(0, 0,07)
17/12/18 08:52:58:890 - LIB_ConfigLerValor(SATConfig, PaginaDeCodigo)
17/12/18 08:52:58:895 -    Valor:0, len:1
17/12/18 08:52:58:899 -    SetRetorno(0, 0)
17/12/18 08:52:58:904 - LIB_ConfigLerValor(SAT, SignAC)
17/12/18 08:52:58:908 -    Valor:, len:0
17/12/18 08:52:58:913 -    SetRetorno(0, )
17/12/18 08:52:58:919 - LIB_ConfigLerValor(SATConfigArquivos, SalvarCFe)
17/12/18 08:52:58:923 -    Valor:0, len:1
17/12/18 08:52:58:928 -    SetRetorno(0, 0)
17/12/18 08:52:58:940 - LIB_ConfigLerValor(SATConfigArquivos, SalvarEnvio)
17/12/18 08:52:58:945 -    Valor:0, len:1
17/12/18 08:52:58:952 -    SetRetorno(0, 0)
17/12/18 08:52:58:959 - LIB_ConfigLerValor(SATConfigArquivos, SalvarCFeCanc)
17/12/18 08:52:58:966 -    Valor:0, len:1
17/12/18 08:52:58:972 -    SetRetorno(0, 0)
17/12/18 08:52:58:979 - LIB_ConfigLerValor(SATConfigArquivos, SepararPorCNPJ)
17/12/18 08:52:58:984 -    Valor:0, len:1
17/12/18 08:52:58:990 -    SetRetorno(0, 0)
17/12/18 08:52:58:997 - LIB_ConfigLerValor(SATConfigArquivos, SepararPorDia)
17/12/18 08:52:59:003 -    Valor:0, len:1
17/12/18 08:52:59:008 -    SetRetorno(0, 0)
17/12/18 08:52:59:017 - LIB_ConfigLerValor(Extrato, Tipo)
17/12/18 08:52:59:022 -    Valor:0, len:1
17/12/18 08:52:59:027 -    SetRetorno(0, 0)
17/12/18 08:52:59:033 - LIB_ConfigLerValor(Extrato, NumCopias)
17/12/18 08:52:59:038 -    Valor:1, len:1
17/12/18 08:52:59:043 -    SetRetorno(0, 1)
17/12/18 08:52:59:047 - LIB_ConfigLerValor(Extrato, SoftwareHouse)
17/12/18 08:52:59:053 -    SetRetorno(-3, Chave não existe no arquivo de configuração)

===================================================================================================

17/12/18 08:52:59:060 - LIB_UltimoRetorno
17/12/18 08:52:59:065 -    Codigo:-3, Mensagem:Chave n[195][163]o existe no arquivo de configura[195][167][195][163]o

===================================================================================================

obs: S@T TANCA SDK. compatível com a versão ACBrMonitorPLUS 1.2.025

Qualquer coisa me prontifico caso necessário a disponibilizar o terminal para remoto e testes!

ps: Ao mostrar a janela de configuração já mostra a mensagem, será que tenho que configurar editando o arquivo ACBrLib.ini?

Grato.

sat-ini-log.PNG

Editado por OFF-TI
observações

Compartilhar este post


Link para o post
Compartilhar em outros sites

×