Dicas sobre desenvolvimento de software, gestão e tributações

Rede Social

26 de setembro de 2015

Pegar peso da balança Toledo C#


Nesta dica iremos pegar peso de uma balança Toledo através da DLL P05 com C#.

Primeiro vamos declarar os métodos utilizados.

[DllImport(P05.DLL")]
public static extern int AbrePorta(int porta, int velocidade, int dataBits, int paridade);

[DllImport(P05.DLL")]
public static extern int FechaPorta();

[DllImport(P05.DLL")]
public static extern int PegaPeso(int tipoEscrita, StringBuilder peso, string diretorio);
O tipo escrita serve para disponibilizar em arquivo texto quando 0 e quando 1 é para disponibilizar na área de transferência
O diretório é para indicar onde será salvo o arquivo.

Após isso vou criar um método que irá abrir a porta, pegar o peso e fechá-la.

public decimal RetornaPeso(int portaCom)
{
int retorno = P05.AbrePorta(portaCom, 0, 0, 2);

if (retorno == 1)
{
StringBuilder pesoString = new StringBuilder();
retorno = P05.PegaPeso(1, pesoString, "");
decimal peso = pesoString.ToString().ConvertTo<decimal>();

retorno = P05.FechaPorta();

if(retorno == 1)
{
return peso;
}
else
{
//Erro ao fechar porta
}
}
else
{
//Erro ao abrir a porta
}

return 0;
}

private const string LOCAL_ESCRITA = ""; //Diretorio onde será gravado o arquivo. Se vazio significa o diretorio local do programa
private const int OPCAO_ESCRITA = 1; //Disponibilizar em     => 0 = Arq Texto, 1 = Área de Transferência

10 comentários:

  1. Não estou conseguindo pegar o peso, pode me ajudar?

    ResponderExcluir
  2. Olá desculpe a demora fiquei uns dias sem conseguir trabalhar no blog, se ainda precisar de ajuda diga qual a sua situação, o que está tentando utilizar e tudo mais

    ResponderExcluir
  3. cara usei o framework 4.5.1 funcionou certinho, alterei para o 4.0 e ocorre o erro ao executar o fechaporta();
    Não é possível carregar a DLL 'P05.DLL': Não foi possível encontrar o módulo especificado. (Exceção de HRESULT: 0x8007007E)

    sabe me dizer se existe alguma resolução para isso?
    Obrigado desde já

    ResponderExcluir
  4. Estranho, pois eu utilizei o 4.0, qual versão da P05 está utilizando? A declaração do import do método está ok?

    ResponderExcluir
  5. Consegue disponibilizar a DLL em um LINK? A DLL é x86 ou x64?

    ResponderExcluir
  6. Consegue disponibilizar as DLLs? é x64 ou x86? Grato

    ResponderExcluir
  7. Indico pegar a última versão com o próprio fabricante
    http://www.toledobrasil.com.br/suporte-tecnico
    Mas assim que possível disponibilizo a dll que utilizei (creio que não está atualizada com a última versão)

    ResponderExcluir
  8. Estava com o mesmo erro (Exceção de HRESULT: 0x8007007E), e descobri que a DLL so funciona em x86.

    ResponderExcluir
  9. Alguém saber como fazer para captar no microsoft Access

    ResponderExcluir
  10. boa noite,

    primeiramnte gostaria de parabenizar pelo otimo trabalho.

    ResponderExcluir