DLL C#

– Funções / Comandos DLL V.9 _ C# para terminais TED famílias TC e TX
– Fonte de aplicação “SOMACALCCSHARP”
1 – Host ( aplicação ) para os TED´s “saída” _
Lista de comandos / funções :
– Abrindo comunicação _
[DllImport(DLL_LOCATION, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDStart(int port);
– Enviando mensagem ao display TED _
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDDisplaySend(string ip, string data);
– Enviando alarmes de buzzer ( n beep´s ) ao TED _
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDBeep(string ip, int times);
– Enviando dados à saída COM serial 1 do TED _
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDCom1Send(string ip, string data);
– Enviando dados à saída COM serial 2 do TED _
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDCom2Send(string ip, string data);
– Enviando comando de apagar display do TED _
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDDisplayClear(string ip);
– Enviando comando de apagar lista de atalhos na paginação ( veja comando abaixo ) _
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDListClear(string ip);
– Enviando lista de atalhos ( sequência ) para paginação _
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDListAdd(string ip, string data);
obs. Os TED´s da família TX com visor ( display ) de 7 linhas, permitem paginação com 7 atalhos por página, até 4 páginas.
Usando este comando, pode-se programar até 28 atalhos ( acionados pelas teclas Enter+seta ) estacionados na memória interna do TED
… veja explo. a seguir: TEDListAdd(‘192.168.0.10’, ‘PRODUTO A|PRODUTO B|PRODUTO C|’ …….. até 28 )
– Enviando comando para acionamento de “headers” – preâmbulos das tarefas _
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDHeaderOn(string ip);
– Enviando comando para desacionamento de “headers” – preâmbulos das tarefas _
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDHeaderOff(string ip);
– Enviando comando de “on” ( nível de saída = 1 – Vcc ) da saída digital _
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDDigitalOn(string ip);
– Enviando comando de “off” ( nível de saída = 0 – gnd ) da saída digital _
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDDigitalOff(string ip);
– Enviando comando de leitura do status ( nível 1 ou 0 ) da entrada digital _
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDDigitalRead(string ip);
DLL_LOCATION _ ligação com as funções de mesmo nome que estão DENTRO da DLL.
2 – TED´s para o Host ( aplicação ) “entrada” _ A recepção do Host ( aplicação ) vinda do TED – teclado alfanumérico /
teclas de atalho via paginação / leitor de cód. de barras externo – USB / leitor cód. de barras interno (embutido) /
leitor RFID interno (embutido) / porta serial 1 / porta serial 2 / entrada digital
public delegate void TTEDReceiveEvent(string ip, string data, int hdr);
[DllImport(DLL_LOCATION,
EntryPoint = “onTEDReceive”,
CharSet = CharSet.Ansi,
CallingConvention = CallingConvention.StdCall)]
internal static extern void OnTEDReceive(TTEDReceiveEvent hnd);
o que chega quando algo é recebido:
public void Recebido(string ip, string data, int hdr)
{
logging(“Recebido ” + data + ” de ” + ip + ” com header: ” + hdr.ToString());
int num;
if (int.TryParse(data, out num))
{
TEDDisplaySend(ip, “soma: ” + (num + 1).ToString());
}
pedeNumero(ip);
}
A partir das funções descritas, realizar a ligação _
[DllImport(
DLL_LOCATION,
EntryPoint = “onTEDConnect”,
CharSet = CharSet.Ansi,
CallingConvention = CallingConvention.StdCall
)]
internal static extern void OnTEDConnect(TTEDConnectEvent hnd);
[DllImport(DLL_LOCATION,
EntryPoint = “onTEDReceive”,
CharSet = CharSet.Ansi,
CallingConvention = CallingConvention.StdCall)]
internal static extern void OnTEDReceive(TTEDReceiveEvent hnd);
onTedConnect informa o que chega na porta 55555 e o onTedReceive informa o que chega na porta 8
( ou outra porta configurada antecipadamente no menu de configuração do TED )
3 – TRATAMENTO DAS PORTAS SERIAIS

– HABILITAR LEITURA DA PORTA SERIAL COM1

Assinatura da função

[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDCom1On(string ip);

Exemplo de uso

TEDCom1On(‘192.168.10.1’);

– DESABILITAR LEITURA DA PORTA SERIAL COM1
Assinatura da função
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDCom1Off(string ip);
Exemplo de uso
TEDCom1Off(‘192.168.10.1’);
– HABILITAR LEITURA DA PORTA SERIAL COM2

Assinatura da função

[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDCom2On(string ip);

Exemplo de uso

TEDCom2On(‘192.168.10.1’);

– DESABILITAR LEITURA DA PORTA SERIAL COM2

Assinatura da função
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDCom2Off(string ip);

Exemplo de uso
TEDCom2Off(‘192.168.10.1’);

– EXEMPLO SOMACALCCSHARP
Obs.: No explo. de aplicação SOMACALCCSHARP ( calculadora ) incluído nos anexos, são nomeados conectado e recebido conforme abaixo:
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace SomaCalcCSharp
{
public partial class Form1 : Form
{
// Atualizar localização da DLL!
const String DLL_LOCATION = “C:\\Users\\Carlos\\Documents\\Projetos\\Colleter\\DLL\\ted.dll”;
string[] TEDStartMessages = {“Erro na abertura da porta!”,”Porta aberta com sucesso!”};
ArrayList TEDs = new ArrayList();
public delegate void TTEDConnectEvent(string ip);
public delegate void TTEDReceiveEvent(string ip, string data, int hdr);
[DllImport(DLL_LOCATION, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDStart(int port);
[DllImport(DLL_LOCATION, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDBeep(string ip, int port);
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDDisplaySend(string ip, string data);
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDCom1On(string ip);
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDCom1Off(string ip);
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDCom1Send(string ip, string data);
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDCom2On(string ip);
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDCom2Off(string ip);
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDCom2Send(string ip, string data);
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDDisplayClear(string ip);
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDListClear(string ip);
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDListAdd(string ip, string data);
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDHeaderOn(string ip);
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDHeaderOff(string ip);
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDDigitalOn(string ip);
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDDigitalOff(string ip);
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
internal static extern int TEDDigitalRead(string ip);
[DllImport(
DLL_LOCATION,
EntryPoint = “onTEDConnect”,
CharSet = CharSet.Ansi,
CallingConvention = CallingConvention.StdCall
)]
internal static extern void OnTEDConnect(TTEDConnectEvent hnd);
[DllImport(DLL_LOCATION,
EntryPoint = “onTEDReceive”,
CharSet = CharSet.Ansi,
CallingConvention = CallingConvention.StdCall)]
internal static extern void OnTEDReceive(TTEDReceiveEvent hnd);
public Form1()
{
InitializeComponent();
}
private void logging(string data)
{
Console.WriteLine(data);
}
private void button1_Click(object sender, EventArgs e)
{
OnTEDConnect(new TTEDConnectEvent(Conectado));
OnTEDReceive(new TTEDReceiveEvent(Recebido));
int ret = TEDStart(8);
logging(TEDStartMessages[ret]);
}
private void pedeNumero(string ip)
{
TEDDisplaySend(ip, “numero para somar 1”);
TEDDisplaySend(ip, “numero:”);
}
public void Conectado(string ip)
{
if (TEDs.IndexOf(ip) >= 0) return;
TEDs.Add(ip);
logging(ip + ” conectado!”);
TEDDisplayClear(ip);
pedeNumero(ip);
}
public void Recebido(string ip, string data, int hdr)
{
logging(“Recebido ” + data + ” de ” + ip + ” com header: ” + hdr.ToString());
int num;
if (int.TryParse(data, out num))
{
TEDDisplaySend(ip, “soma: ” + (num + 1).ToString());
}
pedeNumero(ip);
}
private void button2_Click(object sender, EventArgs e)
{
}
}
}
Ressaltando que neste explo. SOMACALCCSHARP onTEDConnect e onTEDReceive espera cada um deles uma função para “LIGAR” e “RECEBER” os dados
São chamados Conectado e Recebido

CARRINHO DE COMPRAS

close
WeCreativez WhatsApp Support
Nossa equipe de suporte ao cliente está aqui para responder às suas perguntas. Pergunte-nos qualquer coisa!
👋 nosso Whats: 11 94990-7361