porta serial e ppi no Windows XP ou 2000

M

MC & FPGA

Guest
Quero usar porta serial porta paralela no Windows 2000 ou XP como posso utilizá-los com VC
qualquer idéia ou experiência sobre esses?

 
Oi
Um dos meus amigos já postou uma resposta para a interface serial porta, esta se pode trabalhar para você.

'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''
Posso mostrar-lhe como fazê-lo aqui.Eu
tenho usado apenas uma vez, e eu não posso distribuir o código embora questões de licenciamento.

Criando o projeto

Faça um simples diálogo, através do trabalho em MSVC MFC App assistente.As opções realmente não importa, mas certifique-se de verificar a "controles ActiveX" na opção quando o assistente solicitará que você na etapa 2.

Adicionando CMSComm ao seu projeto

Abra o seu recurso editor para que você possa alterar o diálogo principal.Olhe na barra de ferramentas e verifique se você ainda não tem o controle Mscomm lá (alguém pode ter modificado o padrão de trabalho).Parece um pouco telefone.

Adicione o controle para o seu projecto.Clique o Projeto>> Adicionar ao Projeto>> Componentes e Controles comando a partir do menu.Este comando irá demorar um pouco como MSVC varredura do registro para registados controles.Selecione 'registro de controles ActiveX "e clique em Inserir.Encontre o objeto 'Microsoft Communications Control, versão 6.0. "(ou outra versão), selecioná-lo e,
em seguida, clique em Inserir, clique em OK.Neste ponto MSVC irá pedir para que partes do controle ActiveX que você deseja adicionar.Deve haver apenas um listado, CMSComm, mantê-la marcada.MSVC irá gerar uma classe wrapper para o objeto para que você possa usá-lo.Você pode mudar os nomes dos arquivos e classe nome, se quiser, mas para este efeito, eu
vou assumir que você deixou-los como é.

Feche a janela adicionar componentes.

Agora,
olhe para a sua janela de ferramentas, nela, você verá um novo ícone para o CMSComm objeto.Selecioná-lo e chamar um desses para o seu formulário principal.Um ícone irá aparecer, mas não se preocupe, o próprio controle é invisível em tempo de execução.

Inicializando o CMSComm controle

Tudo isto pode ser feito no momento da execução, mas, por enquanto, vamos apenas definir as propriedades em design tempo.Clique direito sobre o ícone para o controlo no seu diálogo comm recursos e suba diálogo das propriedades.No âmbito do controlo, Buffers, Hardware e separadores,
defina as propriedades que você desejar, como buad taxa, paridade, número de porta,
etc
Adicionar um membro para o controlo

Para usar o controle, você precisa criar uma classe membro.Abra a classe Assistente, e de o Estado-guia Variáveis, selecione o comm controle (por padrão, será chamado IDC_MSCOMM1), em seguida, clique em 'Adicionar variável ...'botão.Criar um nome, eu usei m_comm.Verifique que a variável é uma variável de controlo, e que é o direito da classe (CMSComm).Agora você pode usar este membro variável para communitcate com a sua porta COM.

Usando o controle CMSComm

Aqui está um exemplo rápido de como usar o controle.É importante que se espere até que o seu OnInitDialog () chamada (ou qualquer hora depois), antes de tentar utilizá-lo, porque nem tudo será criada / inicializada antes desta.

Código:
CMSComm m_comm; / / MFC gerada no membro. H arquivo

#
include "atlbase.h" / / CComVariant apoio
# define COM_MS_TIMEOUT 5000 / / COM1 tempo em milisegundos

/ / Gera uma saída.
CString sOut;
/ / Construa sua saída ...
sOut = _T ( "Olá mundo");
/ / Criar uma variante para a saída.
CComVariant Vout (sOut);
/ / Envia o comando.
m_comm.SetOutput (Vout);

/ / Espera por uma resposta.
/ / Este não é um processador de forma eficaz de fazê-lo,
/ / Mas fica a ideia de diâmetro.
DWORD dwNow, dwTimeOut, dwStart;
dwStart = GetTickCount ();
dwTimeOut = COM_MS_TIMEOUT;
CString pecado, sInBuffer;
CComVariant vin;
for (;

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />(
dwNow = GetTickCount ();
if (((dwNow - dwStart)> dwTimeOut) / / Tempo decorrido
| | (DwNow <dwStart)) / / Acontece se carrapato contam embrulha passado 2 ^ 32
break;
vIn.Clear ();
vin m_comm.GetInput = ();
sin = vIn.bstrVal;
sInBuffer = pecado;
/ / Check encerra um para \ r personagem.
/ / Se encontrarmos um, quebrar o ciclo, caso contrário,
/ / Os dados são mais próximos.
/ / O hardware você será podem ter uma interface com
/ / Um terminador seqüência diferente.
if (sIn.Right (1) == _T ( "\ r"))
break;
)

Esta é a maneira mais fácil de fazê-lo.Se você não
estiver usando uma caixa de diálogo a todos, será complicado criar o objeto, uma vez que não será feito automaticamente pelo seu diálogo
da ActveX tratadores.

 

Welcome to EDABoard.com

Sponsor

Back
Top