Business - Automação Comercial

Comunicando com 2 produtos na mesma aplicação

Veja como é possível utilizar 2 produtos, na mesma aplicação e o melhor utilizando apenas uma dll.

por Daruma Developer



Olá pessoal,

Veremos neste artigo como comunicar com 2 produtos utilizando a darumaframework.dll na mesma aplicação.

Como isto é possível, sendo que o programa trabalha comunicando com a porta serial e os dispositivos estão em portas distintas?

É isto mesmo! E ainda utilizando uma única darumaframework.dll, e sem ter que fazer aquela "gambiarra" de utilizar duas dll iguais com nomes diferentes uma da outra.

Isto é possível por causa do método eDefinirProduto_Daruma.

Este método nos permite identificar em qual produto a DarumaFramework.dll será capaz de trabalhar, alternando assim a capacidade da DarumaFramework.dll de localizar com precisão o produto a ser utilizado e trabalhar com o mesmo.

Digamos que existam dois dispositivos comunicando, conectados e reconhecidos no Gerenciador de Dispositivos como portas.

Segue abaixo:

http://www.daruma.com.br/ddemkt_imagem/img_dde_006_02.jpg

Tenho uma impressora Não-Fiscal(DR700M) conectada na porta COM2 conforme a imagem acima, e uma Impressora Fiscal(FS700 MACH2) conectada na COM1. Ambas Impressoras estão a 115200 bits por segundo.

http://www.daruma.com.br/ddemkt_imagem/img_dde_006_03.jpg

Agora vamos ver na prática a utilização doeDefinirProduto_Daruma:

C#:


[DllImport("DarumaFrameWork.dll")]
public static extern int eDefinirProduto_Daruma(System.String sProduto);

private void Button1_Click(object sender, EventArgs e)
{
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.eBuscarPortaVelocidade_ECF_Daruma();

DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.eDefinirProduto_Daruma("ECF");

DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iLeituraX_ECF_Daruma();
}
private void BT_Enviar_Click(object sender, EventArgs e)
{

DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.eDefinirProduto_Daruma("DUAL");

DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iImprimirTexto_DUAL_DarumaFramework("<b> Teste de impressão Daruma </b>”, 0);

}

VB6:

Public Declare Function eDefinirProduto_Daruma Lib "DarumaFramework.dll" (ByVal sProduto As String) As Integer

Private Sub LeituraX_Daruma_Click()
iRetorno = eDefinirProduto_Daruma("ECF")
iRetorno = eBuscarPortaVelocidade_ECF()

iRetorno = iLeituraX_ECF_Daruma
End Sub

Private Sub Enviar_Click()

iRetorno = eDefinirProduto_Daruma("DUAL")

iRetorno = iImprimirTexto_DUAL_DarumaFramework(“<b>Teste de Impressão</b>", 0)

End Sub

Delphi:

procedure Fiscal_Teste.BT_MenuTesteClick(Sender: TObject);

var
iRetorno : Integer;

begin

iRetorno := eDefinirProduto_Daruma('ECF');
Int_Retorno := eBuscarPortaVelocidade_ECF_Daruma();

Int_Retorno:= iLeituraX_ECF_Daruma();

end;

procedure TFR_DUAL_iImprimirTexto_DUAL_DarumaFramework.BT_EnviarClick(Sender: TObject);

var
iRetorno: Integer;
begin
iRetorno := eDefinirProduto_Daruma('DUAL');

iRetorno := iImprimirTexto_DUAL_DarumaFramework(‘<b>Teste de Impressão</b>’, 0);

end;

Viu só como é fácil?

E isto é válido tanto na alternação de qualquer tipo de produto que a darumaframework.dll trabalhe (Impressora Fiscal, Impressora Não-Fiscal, Modem, TA2000).

Agora é só implementar!

Um abraço e até o próximo!

Daruma Developer

Daruma Developer