Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Flinger

Simulador

Mensagens Recomendadas

Flinger

Bom Dia

C++ não é a minha especialidade, pelo que precisava que me dessem aqui umas luzes sobre a estruturação de uma aplicação que tenho de desenvolver.

A aplicação consiste num simulador de um dispositivo que comunica por porta de série.

Estava a pensar construir uma classe que me armazena o estado interno do dispositivo, e que tem um método que recebe uma mensagem, devolvendo uma resposta, além de outros métodos que permitem alterar variáveis do estado interno da mesma.

Até aqui creio que é pacifico. para interface, vou usar QT. Tendo isto em conta, como deveria implementar a espera de mensagens pela porta de série? Ponho uma thread pendurada na porta de série, que, recebendo dados, invoca o método da classe dispositivo, recebe a resposta, envia-a e fica à escuta outra vez?

Como vai ser uma interface gráfica, se usar a main para este tipo de tarefas arrisco-me a ficar com a aplicação bloqueada enquanto espero por dados na porta, certo?

Já agora, queria que a aplicação corresse tanto em Windows como em Linux. Qual será a melhor maneira de implementar os acessos à porta de série para ser mais fácil compilar a aplicação para os 2 SO's?

Alguém que me dê umas luzes, sobre que classes/threads criar. 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Flinger

Tenho aqui um diagrama simplificado do que penso fazer.

simulador.png

Tanto Serial como Dispositivo são instâncias criadas pela Form (ou na main, se não fôr complicado a Form aceder a elas).

Quanto à classe Dispositivo, parece-me tudo pacífico. A Form invoca os métodos necessários e obtém as respostas.

Agora, como faço com a classe Serial. Queria que esta corresse numa thread, ou algo, de modo a receber as comunicações da porta de série e enviar a informação para a Form. Queria fazer isto de forma Asíncrona.

Básicamente, é possivel uma instância de uma classe correr uma thread, ou é melhor a Form criar a thread, e correr uma função que recebe como parâmetro o objecto Serial? Tou um bocado confuso com isto :S.

Em .net, podia usar os eventos da Serial, mas em c++ não sei como hei-de proceder.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.