Скачиваний:
35
Добавлен:
15.09.2014
Размер:
1.66 Кб
Скачать
#include "stdafx.h"
#include <windows.h>
#include "stdio.h"
#include <conio.h>
#include <tchar.h>
#include <iostream>

int main(void)
{
    HANDLE port = CreateFile(L"COM2", GENERIC_READ | GENERIC_WRITE, NULL, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    if(port==INVALID_HANDLE_VALUE)
    {
        std::cout << "Can't open port" << std::endl;
		getch();
        exit(-1);
    }
    else
    {
        std::cout << "Port open." << std::endl;
    }

    DCB ourdcb;

    GetCommState(port,&ourdcb);

    COMMTIMEOUTS ourporttimeout;

    ourporttimeout.ReadIntervalTimeout		 = MAXDWORD;
    ourporttimeout.ReadTotalTimeoutMultiplier  = 0;
    ourporttimeout.ReadTotalTimeoutConstant    = 0;
    ourporttimeout.WriteTotalTimeoutMultiplier = 0;
    ourporttimeout.WriteTotalTimeoutConstant   = 1000;

    SetCommTimeouts(port, &ourporttimeout);

    ourdcb.ByteSize = 8;             
    ourdcb.Parity   = NOPARITY;        
    ourdcb.StopBits = ONESTOPBIT;    
    ourdcb.BaudRate = CBR_9600;

    SetCommState(port,&ourdcb);

    char *buf = new char [512]; // буфер для передаваемого сообщения
    DWORD bytesread=0;
    //DWORD bytestosend=0;

    while(true)
    {
		memset(buf,0,512);
        bool succes = ReadFile(port,buf,512,&bytesread,NULL);
        if(!succes)
        {
            std::cout << "Getlasterror " << GetLastError() << std::endl;
            getch();
        }
        if(bytesread>0)
        {
            std::cout << " Bufer: "<<buf;
            std:: cout << "bytes read " << bytesread << std::endl;
        }
    }


    CloseHandle(port);

    return 0;
}