Ir ao conteúdo
  • Cadastre-se

Porta serial no Delphi


Posts recomendados

Pessoal, boa noite.

Vamos ver se tem alguem aqui que seja O CARA e possa me ajudar.

Estou desenvolvendo um aplicativo que trabalhe recebendo dados de um leitor conectado a porta serial do micro, meu maior problema aqui esta sendo encontrar algum codigo no delphi ou componente que possa abrir a porta serial e energiza-la, para que eu jogue a programação na caixa edit e ela receba os dados que o leitor enviar.

Ja instalei aqui o Tcomport, agora nao sei se nao estou sabendo usar ou o que pode ser, eu consigo conectar na porta, [porém meu equipamento nao recebe energia, ele nao acende o led e nem le o codigo, sei que esta conectado a porta, porque se abrir um outro programa que baixei de testar porta e mandar abrir a porta, ele diz que ela ta sendo usada e se fecho meu aplicativo no delphi, o soft de teste consegue acessa-la. Nao sei, mas esta faltando algo, so nao sei o que. Pelo HiperTerminal, também me conecto e consigo alimentar a porta normalmente, so pelo delphi que nao.....

Por favor, alguem me da um help que a parada aqui ta PUNK!!!!

Qualquer duvida, por favor entrem em contato comigo, quem resovler isso bom hein!!!!:mad:

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

Maninho, estou meio com pressa agora, porque vou viajar daqui a pouco...

Mas dá uma olhada aqui no site tem um exemplo legal de como você manipular totalmente a porta serial e ainda conversar com perifericos ligados a ela.

e pouco abaixo do inicio dessa página, vai ter um topico chamado

"Algumas das funções da API do Windows usadas nos programas aqui apresentados, com o objetivo de acessar a Porta Serial".

Estude este tópico e veja se te ajuda em algo.

No fim da página você poderá fazer download de códigos fonte.

Com relação a componentes do delphi, como o TComPort, vários componentes para Serial sao distribuidos com o codigo-fonte, permitindo a você modificar os dados para controlar pinos da porta

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Vinício Fonseca

Se puder me ajudar eu também estou querendo

Um aplicativo que trabalhe recebendo dados de um leitor conectado a porta serial do micro

Eu já tenho um programa feito só que a pessoa que me fornecei ele

Não tem mais o código fonte

Se puder me ajudar falando ontem tem um código para eu dar uma olhas usar de modelo

rockzilla2109

Link para o comentário
Compartilhar em outros sites

Coloquei pra download no 4shared uma pasta compactada que contém o componente TComport para delphi e um exemplo de uso.

Este componente TComport é o que eu uso para minhas aplicações, e já tinha testado alguns outros componentes mas este foi o que mais me agradou.

Link para download (lembrando que para fazer o download é necessário ter uma conta no 4shared que é simples de fazer e sem custo):

http://www.4shared.com/rar/Hl-jckrU/delphi_tcomport.htm

Para instalar o TComport deve-se abrir o arquivo PkgComPort.dpk pelo delphi, clicar em compilar e depois em instalar. O componente TComport será instalado na paleta "Samples".

A seguir, para que o delphi encontre os arquivos do componente, no delphi deve-se clicar no menu Tools->Environment Options->Library-> e clica no botao "..." ao lado da caixa de texto de "library path".

Na janela que se abre clique no botao "..." e localize a pasta onde estão os arquivos do componente TComPort (a mesma pasta que contem o arquivo PkgComport.dpk). Clique no botao "Add" e pode-se fechar as janelas que foram abertas.

Pronto, agora pode usar o componente comport sem problemas...

Notas sobre o Comport:

Para "abrir" a porta serial, ou seja, ativá-la, usa-se o método: "ComPort1.Open".

Para "fechar" a porta serial, ou seja, desativá-la, usa-se o método:

"ComPort1.Close";

Para receber os dados da porta serial, usa-se o evento "ReceiveCallBack".

Para transmitir dados pela porta serial, usa-se o método "ComPort1.Send";

O componente Comport possui uma propriedade chamada "ReceiveMode" que pode ser definida como "rmTERM" ou "rmRAW". Esta propriedade define o modo como o comport receberá os dados via porta serial.

ReceiveMode = rmTERM -> isso fará com que o evento "ReceiveCallBack" seja acionado (recepção) apenas quando a string recebida for terminada com os bytes definidos na propriedade "Terminator", que por padrão são #13 e #10.

ReceiveMode = rmRAW -> isso fará com que o evento "ReceiveCallBack" seja acionado (recepção) a cada byte recebido pela porta serial. Com isso a propriedade "Terminator" não terá influencia nenhuma no processo.

Acho que com essas informações já dá pra brincar bastante, né?!?

Qualquer dúvida pode perguntar que ajudarei no que for dentro de minha capacidade.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 4 anos depois...
Em 17/02/2013 às 11:09, rockzilla2109 disse:

Coloquei pra download no 4shared uma pasta compactada que contém o componente TComport para delphi e um exemplo de uso.

Este componente TComport é o que eu uso para minhas aplicações, e já tinha testado alguns outros componentes mas este foi o que mais me agradou.

Link para download (lembrando que para fazer o download é necessário ter uma conta no 4shared que é simples de fazer e sem custo):

http://www.4shared.com/rar/Hl-jckrU/delphi_tcomport.htm

Para instalar o TComport deve-se abrir o arquivo PkgComPort.dpk pelo delphi, clicar em compilar e depois em instalar. O componente TComport será instalado na paleta "Samples".

A seguir, para que o delphi encontre os arquivos do componente, no delphi deve-se clicar no menu Tools->Environment Options->Library-> e clica no botao "..." ao lado da caixa de texto de "library path".

Na janela que se abre clique no botao "..." e localize a pasta onde estão os arquivos do componente TComPort (a mesma pasta que contem o arquivo PkgComport.dpk). Clique no botao "Add" e pode-se fechar as janelas que foram abertas.

Pronto, agora pode usar o componente comport sem problemas...

Notas sobre o Comport:

Para "abrir" a porta serial, ou seja, ativá-la, usa-se o método: "ComPort1.Open".

Para "fechar" a porta serial, ou seja, desativá-la, usa-se o método:

"ComPort1.Close";

Para receber os dados da porta serial, usa-se o evento "ReceiveCallBack".

Para transmitir dados pela porta serial, usa-se o método "ComPort1.Send";

O componente Comport possui uma propriedade chamada "ReceiveMode" que pode ser definida como "rmTERM" ou "rmRAW". Esta propriedade define o modo como o comport receberá os dados via porta serial.

ReceiveMode = rmTERM -> isso fará com que o evento "ReceiveCallBack" seja acionado (recepção) apenas quando a string recebida for terminada com os bytes definidos na propriedade "Terminator", que por padrão são #13 e #10.

ReceiveMode = rmRAW -> isso fará com que o evento "ReceiveCallBack" seja acionado (recepção) a cada byte recebido pela porta serial. Com isso a propriedade "Terminator" não terá influencia nenhuma no processo.

Acho que com essas informações já dá pra brincar bastante, né?!?

Qualquer dúvida pode perguntar que ajudarei no que for dentro de minha capacidade.

 

Olá Rockzilla2109, sei que já tem muito tempo (uns 4 anos) que você postou aqui, mas estou procurando este TComport que tem estes métodos e propriedades que você citou e não estou conseguindo achar.

O link que você colocou na época (http://www.4shared.com/rar/Hl-jckrU/delphi_tcomport.htm) já está fora do ar. Tem como você disponibilizar novamente este componente pro Delphi7 ?

Para ilustrar segue trecho do meu código:

begin
  if cmprt1 <> nil then
    FreeAndNil(cmprt1);
  cmprt1 := TComPort.Create(Self);
  with cmprt1 do
  begin
    Parent := frmNewTest;
    ReceiveCallBack := p_ReceiveCallBack;
    ReceiveMode := rmRAW;
    Baud := 115200;
    Port := '\\.\' + cbbComPort.Text;
    try
      Open;
    except
      ShowMessage('Can''t open port, please check!');
      cbbComPort.SetFocus;
      Exit;
    end;
    Send(INIT_CMD);
  end;

Se puder confirmar que o TComport que você usa funcionaria com este meu código, agradeço imensamente.

 

Muito obrigado.

Um abraço.

Link para o comentário
Compartilhar em outros sites

Componente ComPort:

https://sourceforge.net/projects/comport/

Deve-se instalar os dois packages, o DsgnCport e o CportLib.

O codigo que você indicou já faz parte do componente CPort.

Para usar deve-se:

1- indicar a porta serial. Exemplo: ComPort1.Port:= COM1;

2- selecionar um baudrate padrão. Exemplo: Comport1.BaudRate:= br115200;

Ou usar um baudrate customizado. Exemplo: ComPort1.BaudRate:= brCustom; ComPort1.CustomBaudRate:= 250000;

3- abrir a porta serial através do comando "ComPort1.Open;" ou "Comport1.connected:= true;"

4- envio de string pela porta pelo comando: ComPort1.WriteStr('texto');

5- recepçao serial: recomendo usar o evento OnRxChar. Dentro do evento pra ler o que recebeu use o comando:

Comport1.ReadStr(string_destino,Count); //string destino é uma variavel criada por você pra armazenar o que recebeu. Count é variavel da propria funçao que indica qtos bytes foram recebidos.

6- pra fechar a porta é só usar o comando "Comport1.close;" ou "Comport1.connected:= False;"

 

Função util:

Para enumerar, ou alistar, as portas seriais identificadas no PC coloque um combobox e no evento "OnDropDown" do combobox você coloca o codigo:

"TTComboBox(Sender).items.clear;

EnumComPorts(TCombobox(Sender).items);"

 

Eu usei este componente até com controle de fluxo Xon/Xoff e funciona muito bem.

Link para o comentário
Compartilhar em outros sites

Olá FBO_Coutinho. Obrigado pela dica.

Eu já tentei usar este componente CPort, realmente parece ser bom e completo. Para um projeto novo, também usaria este.

Porém eu tenho um programa legado, pronto que foi todo feito usando aquele outro TComPort. Como não iremos alterar nada neste SW legado, preciso encontrar exatamente o mesmo componente que foi usado na época (uns 7 a 10 anos atrás).

Um abraço.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...