实验三-TTY发送程序_第1页
实验三-TTY发送程序_第2页
实验三-TTY发送程序_第3页
实验三-TTY发送程序_第4页
实验三-TTY发送程序_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、姓名计算机控制工程实验三报告实验三TTY字符发送程序一功能描述TTY发送程序,在用户在主界面窗口中键入ASCII字符时,字符将通过串 口发送到“实验二” TTY接受程序。“串口号”、“波特率”以及“奇偶校脸类型” 可以设置。要求:1 .采用VVInAPI编程实现。2 .基于VC+ “单文档应用程序”模板实现。注意:基类选择“CEdltView”。二、实验环境1. Microsoft Visual studio 2012:2. VSPD 6.9虚拟串口软件三、界面设计1 .主界面设计以CeditView为基类创建视图窗口。并编辑菜单属性。通 无 - MFCApplicationS X文件(F)通

2、信祥助(H)定8T器 K以 信鸟及2 .设置对话框界面设计常用帔件课程设计姓名常用收件课程设计主要完成对“端口”、“波特率”、“校脸类型”的设置。四、变量声明1、在View类头文件 文件。(CMFCApplication3View. h)中声明如下成员变量及相应头HANDLE hCom;OVERLAPPED Wol;BYTE myWByte300; long dataWLen;SetupDlg mySetupDlg;LPCSTR myCom;BYTE myParity; DWORD myfParity; DWORD myBaudRate; bool blnOpened; int m-delay

3、;同时包含#include串口句柄写操作OVERLAPPED结构变量存放欲写数据发送数据的长度声明设置对话框实例串口名称奇偶校脸类型是否使用奇偶校验通信波特率串口已经打开标志延迟发送时间"SetupDlg. h"头文件以日四:=a四:MFCAp plication3»SetupDlgCDialogEx堆声比CD:setupdlg.hSS;IDO.SETUPDLG乏aw:sctupdlg.cpp命令 退息法函物H成员变星:方法丁P庄员登星控件ID关型成员 IDC_COMBO_Bintm_BaudRate9 IDC_COMBO_COMintm_Com IDC_COMB

4、O_Pintm_ParitylJidcancel tlllDOK2、利用"ClassWizard"创建设竞对话框控件成员变量五、打开串口CString strDis;hCom=CreateFile (myCom, GENERIJREAD :GENERIC_WRITE, 0, NULL, OPEN.EXISTING, FILE.ATTRIBUTE.NORNtAL FILE_FLAG_OVERLAPPED, NULL);if (hCom ! =IN'ALID.HAXDLE.VALUE) SetupComm(hCom»1024, 512);DCB myDCB;G

5、etCommState(hCom, &myDCB);myDCB. BaudRate=myBaudRate;myDCB. fBinary=true;myDCB. fParity=myfParity;myDCB. ByteSize=8;myDCB. Par ity=m5rPar ity;myDCB. StopBits=ONESTOPBIT;SetCommState(hCom, &myDCB);AfxMessageBox("串口 打开成功);blnOpened=true;)elseAfxMessageBox("串口打开失败“);blnOpened=false;六、

6、关闭串口在主界面“关闭串口”菜单项,在事件处理代码中添加: if(blnOpened) && (hCom:=NULL)CloseHandle(hCom);AfxMessageBox("串口 已经关闭);blnOpened=false;elseAfxMessageBox ("串 口未打开”);七、设置串口在主界面“设置”菜单项事件处理函数中打开“设置”对话框,对通信参数 进行设置。void CMFCApplication3View:OnSetupcom() CString strStatus;if(mySetupDlg. DoModal0=IDOK)switc

7、h(mySetupDlg. m_Com)(case 0: strStatus="COMl ; myCoHF"C0Ml"break;)case 1:strStatus="COM2" myCom="C0M2"break;)case 2:strStatus="C0M3z aiyCom="C0M3"break;)case 3:(strStatus="C0M4”; myConF, COM4”; break;)case 4:strStatus=zC0M5" myCom="C0M

8、5" break;)case 5:(strStatus="C0M6" myCom="C0M6"break;)strStatus十=",”;switch (mySetupDlg. m_BaudRate)case 0:strStatus+=/r19200z myBaudRat e=CBR_l9200; break;)case 1:(strStatus+=,9600"myBaudRat e=CBR_9600; break;)case 2:(strStatus+="ISOO"myBaudRate=CBR_4800

9、;break;)case 3:strStatus+=,2400zz;myBaudRate=CBR_2400; break;)default:break;strStatus+=","switch (mySetupDlg. m_Parity) (case 0:my fPar i ty=fa1se; myParity=XOPARITY; strStatus+="N"break;)case 1:myfParity=true;myParity=ODDPARITY; strStatus+=<z0"break;常用帔件课程设计case 2:myfPar

10、ity=true;myParity=EVENPARITY;strStatus+=E”;break;)default:break;strStatus+=*, 8, 1 ;CMainFrame* m_pGetFrame=(CMainFrame *) AfxGetApp 0 ->m_pMainWnd;strStatus=,TTY 发送程序 -"+strStatus;m_pGetFrame">SetWindowText (strStatus);) 八、发送字符在View类“OnChar”事件中发送键入字符。void CMFCApplication3View:OnChar

11、(UINT nChar, UINT nRepCnt, UINT nFlags) (/ TODO:在此添加消息处理程序代码和/或调用默认myWByte0=nChar;dataWLen=l;Wol. Internal=O;Wol. InternalHigh=O;Wol. Offset=O;Wol.OffsetHigh=0;Wol. hEvent=CreateEvent(NULL, TRUE, FALSE, NULL);WriteFile(hCom,dataWLen, NULL, &Wol);Beep (1000,10);CEditView::0nChar(nChar, nRepCnt, n

12、Flags);九、命令的有效性处理“设置”、“打开串口”、“关闭串口”、“退出”命令有效性处理。以“设置” 为例子说明:void CMFCApplication3View: :OnUpdateSetupcom(CCmdUI *pCmdUI) (/ TODO:在此添加命令更新用户界面处理程序代码if (IblnOpened) pCmdUI">Enable(true);常用帔件课程设计else常用帔件课程设计pCmdUI->Enable(false);十、定时器的设置添加定时器菜单按钮改变自动发送的定时时间:FCApplication.AINFRAME - Menu X文件但

13、 通信© 帮助口定时器MFCApplication3 ETUPDLC1青正比心差人超时时间清在此处建人通过类向导添加事件处理函数:void CMFCApplication3View::OnDelay() (/ TODO:在此添加命令处理程序代码m_delay=rand()%1000;随机产生一秒以内的定时时间添加自动发送按钮:通信(Q帮助(H) 定时器Ctrl + SCtrl+OCtrl+L Ctrl + AiSB 打开串口 关闭百口止) 二动发送® 钮也处置入添加事件处理程序:void CMFCAppli cat i on3Vi ew:OnAut os end() (/

14、TODO:在此添加命令处理程序代码KiUTimer(l);关闭之前的定时器SetTimer (1, m_delay, NULL) ;/以m_delay的定时时间打开定时器添加WMJIMER消息响应函数:,区:取杀阱:,ZfM.SJUCUPBOARD*AMSPOOCERSTATUS,AM.SYSCHAR'AM.SVSCOtORCHWMGE,AM.SVSCOMMAND郅OAC<X3 AM.SYSK'OOWN 力 M.SVSMnW AM.KARO 'AM.THeMEOUMGSD 'AMJiMECHANGE WM.TIMKOna.rWM.CHARlonTtnc*W

15、M TIMER演星 任戏方法void CMFCApp11cation3View:OnTimer(UINT_PTR nIDEvent) (/ TODO:在此添加消息处理程序代码和/或调用默认值Wol. Internal=O;Wol. InternalHigh=O;Wol. Offset=O;Wol.OffsetHigh=0;dataWLen=l;static int i=0;myWByte0=48+i;if(i<10)自动发送0-9到接收端Wol. hEvent=CreateEvent(NULL, TRUE, FALSE,NULL);WriteFile (hCom, myWByte, 1, NULL, &Wol);Beep(1000, 10);i+; else KillTimer (nIDEvent);发送完毕关闭定时器i=0; CEditView::0nTimer(nIDEvent); 十一、实验二、三联调坡?仔全空射:COM2JO2D0N8

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论