КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Приклад програми
// laba1Dlg.cpp: implementation file //
#include "stdafx.h" #include "laba1.h" #include "laba1Dlg.h" #include "ComPort.h"
#ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif
///////////////////////////////////////////////////////////////////////////// // CLaba1Dlg dialog
CLaba1Dlg::CLaba1Dlg(CWnd* pParent /*=NULL*/) : CDialog(CLaba1Dlg::IDD, pParent) { //{{AFX_DATA_INIT(CLaba1Dlg) m_Edit = _T(""); //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); }
void CLaba1Dlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CLaba1Dlg) DDX_Text(pDX, IDC_EDIT1, m_Edit); //}}AFX_DATA_MAP }
BEGIN_MESSAGE_MAP(CLaba1Dlg, CDialog) //{{AFX_MSG_MAP(CLaba1Dlg) ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BUTTON1, OnButton1) //}}AFX_MSG_MAP END_MESSAGE_MAP()
///////////////////////////////////////////////////////////////////////////// // CLaba1Dlg message handlers
BOOL CLaba1Dlg::OnInitDialog() { CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control }
// If you add a minimize button to your dialog, you will need the code below // to draw the icon. For MFC applications using the document/view model, // this is automatically done for you by the framework.
void CLaba1Dlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } }
// The system calls this to obtain the cursor to display while the user drags // the minimized window. HCURSOR CLaba1Dlg::OnQueryDragIcon() { return (HCURSOR) m_hIcon; }
int CLaba1Dlg::WriteString(string Str) { PurgeComm(hPort,PURGE_TXCLEAR | PURGE_RXCLEAR); Str = Str + "\r"; DWORD dwError, dwNumBytesWritten; WriteFile( hPort, Str.c_str(), Str.length(), &dwNumBytesWritten, NULL); return (int)dwNumBytesWritten; }
int CLaba1Dlg::Open() { hPort = CreateFile( ComPortName.c_str(), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL ); if(hPort == INVALID_HANDLE_VALUE) { return 0; } DCB PortDCB;
PortDCB.DCBlength = sizeof(DCB);
GetCommState(hPort, &PortDCB);
PortDCB.BaudRate = 9600; PortDCB.fBinary = true; //! PortDCB.fParity = true; PortDCB.fOutxCtsFlow = false; PortDCB.fOutxDsrFlow = false; PortDCB.fDtrControl = DTR_CONTROL_ENABLE;
PortDCB.fDsrSensitivity = false; PortDCB.fTXContinueOnXoff = false; PortDCB.fOutX = false; PortDCB.fInX = false; PortDCB.fErrorChar = true; PortDCB.fNull = false; PortDCB.fRtsControl = RTS_CONTROL_ENABLE;
PortDCB.fAbortOnError = false;
PortDCB.ByteSize = 8; PortDCB.Parity = NOPARITY; PortDCB.StopBits = ONESTOPBIT; // PortDCB.EofChar = '!';
if(!SetCommState(hPort, &PortDCB)) { return 0; // ShowMessage("Unable to configure the serial port"); }
COMMTIMEOUTS CommTimeouts;
GetCommTimeouts(hPort,&CommTimeouts);
CommTimeouts.ReadIntervalTimeout = 50; CommTimeouts.ReadTotalTimeoutMultiplier = 1; CommTimeouts.ReadTotalTimeoutConstant = 50; CommTimeouts.WriteTotalTimeoutMultiplier = 1; CommTimeouts.WriteTotalTimeoutConstant = 50;
SetCommTimeouts(hPort,&CommTimeouts); FlushFileBuffers(hPort); Opened = true; return 1; }
int CLaba1Dlg::Close() { if(Opened) { CloseHandle(hPort); Opened = false; return 1; } else return 0; }
void CLaba1Dlg::OnButton1() { // TODO: Add your control notification handler code here Open(); WriteString(m_Edit.LoadString); Close(); }
Дата добавления: 2014-10-15; Просмотров: 270; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |