Olá Visitante, Por favor faça Login ou Registe-se

Autor Tópico: software para aquisiçao de dados  (Lida 1466 vezes)

Offline msr

  • Transistor
  • **
  • Mensagens: 70
    • CIDADAO.uni.cc
Re: software para aquisiçao de dados
« Responder #15 em: Janeiro 27, 2010, 23:47:53 pm »
C+aplicação gráfica não combinam bem. Não é que não seja possivel faze-lo, porque é! Mas se nao estou em erro o que tu queres é fazer uma GUI eficaz e no menor tempo possivel, e daí o suporte visual é importante.

Para isso e uma vez que tens conhecimentos de C, aconselho-te experimentares o Visual C# Express. C# e não C++ por achar que C# é muito mais intuitivo e facil de começar a obter resultados.

Tenho aqui um pequeno tutorial sobre como fazer uma aplicação em C# que comunique com o Arduino, acho que te pode ajudar: http://bravomofo.blogspot.com/2009/12/talk-to-arduino-with-c.html

Basta perceberes o básico para conseguires fazer uma coisa interessante.

Offline filjoa

  • Socket
  • **
  • Mensagens: 173
Re: software para aquisiçao de dados
« Responder #16 em: Janeiro 28, 2010, 16:00:52 pm »
viva

excelente manual.. obrigado...

como é obvio ja teste e ja esta a trabalhar.. :D

agr queria te fazer uma pergunta...

se o meu MCU me mandar uma sting com 6 caracteres como é que eu faço para armazenar essa string em C#? para que depois a possa comparar com alguma ja existente previemente no programa...

Cumps

Offline msr

  • Transistor
  • **
  • Mensagens: 70
    • CIDADAO.uni.cc
Re: software para aquisiçao de dados
« Responder #17 em: Janeiro 29, 2010, 15:46:29 pm »
Tens 3 situações possíveis: o programa apenas ENVIA dados pela porta série, o programa apenas RECEBE dados pela porta série ou o programa pode RECEBER e ENVIAR dados pela porta série (em simultâneo).

O ultimo caso é o mais complicado. Envolve teres conhecimento de multitasking que é conseguido através da implementação de Threads.

Se só pretenderes ler dados que venham da porta série, é simples, basta alterares o serialPort.Write() para um serialPort.ReadLine(). Esta ultima chamada retorna-te uma string que podes usar como quiseres.

Por ex:
string dados = serialPort.ReadLine();


Mais tarde hei de fazer um tutorial com implementação de Threads uma vez que é uma situação comum querer enviar e receber dados em simultâneo.

Offline filjoa

  • Socket
  • **
  • Mensagens: 173
Re: software para aquisiçao de dados
« Responder #18 em: Janeiro 29, 2010, 15:53:01 pm »
viva

obrigado, mas qd eu faço "string dados = serialPort.ReadLine();" qual é o criterio de paragem?

nao devia indicializar um array para "dados" ou ter alguma maneira de o comando serialPort.ReadLine() poder ser mandado ler ate por exemplo a existencia de um "#" ou "\0" por exemplo?

Cumps

Offline msr

  • Transistor
  • **
  • Mensagens: 70
    • CIDADAO.uni.cc
Re: software para aquisiçao de dados
« Responder #19 em: Janeiro 29, 2010, 18:34:29 pm »
Sim podes definir qual é o teu caracter de terminação através de, por exemplo:
serialPort.NewLine = "\0";

Assim sempre que fizeres serialPort.ReadLine() ele lê da porta série até encontrar esse caracter e devolve a string que pretendes. Nessa string não está incluido o caracter de terminação.

Também podes utilizar o método:
serialPort.Read() que te permite ler X bytes da porta série e coloca-los num buffer.

Dá uma vista de olhos na documentação do MSDN:
http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.readline.aspx
http://msdn.microsoft.com/en-us/library/34t733fh.aspx

Offline filjoa

  • Socket
  • **
  • Mensagens: 173
Re: software para aquisiçao de dados
« Responder #20 em: Janeiro 30, 2010, 03:29:40 am »
viva

muito obrigado pela ajuda msr infelizmente este fim de semana vou ter de estudar para uns examas mas 5f ja vou estar de novo a divertir-me com o C# :happy:

Cumps :great:

Offline filjoa

  • Socket
  • **
  • Mensagens: 173
Re: software para aquisiçao de dados
« Responder #21 em: Fevereiro 08, 2010, 13:52:25 pm »
viva

amigo msr imagina que por algum motivo tens um erro na comunicação, em VB eu podia abrir e fechar a porta e em C# posso fazer o mesmo?

Cumps

Offline msr

  • Transistor
  • **
  • Mensagens: 70
    • CIDADAO.uni.cc
Re: software para aquisiçao de dados
« Responder #22 em: Fevereiro 08, 2010, 22:25:51 pm »
Que tipo de erro de comunicação? Haver alguma falha na ligação?

Tal como em VB podes abrir e fechar a porta. Basta recorreres aos metodos:
serialPort.Open()
serialPort.Close()

Para verificares se a porta está aberta podes usar:
serialPort.IsOpen()

Se tentares abrir uma porta inválida ou uma que já esteja aberta através da chamada serialPort.Open() é lançada uma excepção. Todas as excepções podem ser tratadas enclausurando o código num "try" e definindo depois o respectivo "catch", tal como tenho no código que disponibilizei.