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
Não estou conseguindo pegar o peso, pode me ajudar?
ResponderExcluirOlá 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
ResponderExcluircara usei o framework 4.5.1 funcionou certinho, alterei para o 4.0 e ocorre o erro ao executar o fechaporta();
ResponderExcluirNã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á
Estranho, pois eu utilizei o 4.0, qual versão da P05 está utilizando? A declaração do import do método está ok?
ResponderExcluirConsegue disponibilizar a DLL em um LINK? A DLL é x86 ou x64?
ResponderExcluirConsegue disponibilizar as DLLs? é x64 ou x86? Grato
ResponderExcluirIndico pegar a última versão com o próprio fabricante
ResponderExcluirhttp://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)
Estava com o mesmo erro (Exceção de HRESULT: 0x8007007E), e descobri que a DLL so funciona em x86.
ResponderExcluirAlguém saber como fazer para captar no microsoft Access
ResponderExcluirboa noite,
ResponderExcluirprimeiramnte gostaria de parabenizar pelo otimo trabalho.