毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

以太网LED图文显示系统的设计 第17页

更新时间:2009-6-3:  来源:毕业论文
以太网LED图文显示系统的设计 第17页
为了使用户更直观的体验到显示信息在显示屏上的显示情况,本设计的控制软件部
分将显示屏的形状在控制软件上形象的画了出来。用户在文本框中输入将要显示的信息
之后,立即就可以在控制界面的这一部分显示出来,使用户对将要显示在显示屏上的信
息有一个直观的认识。另外,用户还可以在界面中白色的圆点上单击,画出自己想象中
的简单图形,进而在显示屏上进行显示。点击红色的圆点之后,相应的圆点会变成白色。
如果不想一个点一个点这样画,那么本软件也实现了一个显示简单位图的功能,通过点
击控制软件上的打开位图,选择一幅想要显示的图片,然后点击显示按钮,即可将这幅
图片以黑白的方式显示出来。鼠标右键双击对话框,显示的内容会被清除。
这部分内容的实现利用了对位图的操作,BMP图像文件格式是肠ocrostf为其
Wnidows环境设置的标准图像格式。一个Wnidows的BMP位图实际上是一些和显示像
素相对应的位阵列,它有两种类型:一种称之为GDI位图,另一种是DBI位图
口eviec一hdi即nednetBimtPa)。GDI位图包含了一种和windows的GDI模块有关的
Windows数据结构,该数据结构是与设备有关的,故此位图又称为DDB位图
D(veeci一DPenedentBimtPa)。当用户的程序取得位图数据信息时,其位图显示方式视显
示卡而定。由于GDI位图的这种设备依赖性,当位图通过网络传送到另一台PC,很可
能就会出现问题。
Dm是标准的Window位图格式,BMP文件包含了Dm比GDI位图有很多编程优
势:例如它自带颜色信息,从而使调色板管理更加容易。且任何运行windows的机器
都可以处理Dm,并通常以后缀为.BMP的文件形式被保存在磁盘中或作为资源存在于
程序的EX卫或DLL文件中[36]。
直接利用画图函数在对话框中将点阵信息画出来也可以,但是这样作的效果不是很
好,画面的质量很差,而且当移动对话框时画面不停的闪烁。所以本设计采用了位图方
式进行点阵信息的显示。
本设计中在VC.6O的环境下利用C一编写了一个类CDbi,利用该类首先将背景位
图载入到对话框中,由于点阵显示的点有两种颜色:白色和红色,所以本设计中又利用
了白点和红点两个位图,并在程序初始化阶段将其载入,之后利用该类可以方便的对这
三种位图进行各种操作,就如类CDib里的各个成员函数所示。
关于位图操作的这一部分实现了以下功能,当从对话框中输入将要显示的汉子或
(和)AScn字符后,通过点阵提取程序将它们的点阵信息提取出来,然后把它们显示出
来,这时还可以通过鼠标左键点击使点阵中某一点变白或变红,以修改点阵信息。不仅
如此,用户还可以直接在点阵上点击,画出任意的自己想要的图形。该功能用到的几个
函数如下:
基于以太网的LED图文显示系统的设计
voidCCOmbniDe:gl:OhLButto瓦Down(UNITFnlgas,CPontiponti);该函数是鼠标左击
事件的响应函数,其功能是将对话框上的点阵选为红色或者选为白色,它是通过修改点
阵信息的数组实现的,该数组是一个全局变量,具体定义是:巩.Bodar田OARDee
L仆正少刃MBER」[BOARD--ROWJ几加田RE],BOARD一L仆正‘NU侧旧ER和BOARDes
ROWNIJMBER分别代表点阵的行和列的数目。
vodiCCombinDe:gl:O证出uttoDnblCkIU(NITFnlgas,CPontiPonti);该函数是鼠标右
键双击事件的响应函数,它的作用是将对话框中的信息清除,以便进行新的信息的输入,
它是调用UPdateNewO来实现的。
BoOLCCombniDelg::poinTotB哪pos(Cponitp,tCpoint&Ptstno)e;该函数是将鼠标
点击位置的坐标转换成对话框中白色或红色位图的位置坐标。
voidCCmobinDelg:二pu份哪B(YTEbyColo,rCpontiponti,CDC*DPC);该函数利用函
数PoniTtBomPPosO转换后的坐标,将对应的位图显示出来。
vodiCC0mbnieDgl::DiPsBmPO;该函数是控制界面上打开位图按钮的响应函数,它
将一幅图片转换为黑白图片后,将其图像信息存储到数组几匕Bodar中,从而实现简单图
像信息的显示。
vodiCCombniDe:gl:UPdatNeweO;该函数将变量m--B。ard[1[]的所有值清零,以实现
清屏的功能。
5..24Pc机的网络通信程序设计
(1)TCP/正建立连接的三次握手过程v[3]:
第一次握手:建立连接时,客户端发送sny包(sny月)到服务器,并进入SYN二SEND
状态,等待服务器确认;
第二次握手:服务器收到sny包,必须确认客户的sny(ac目+1),同时自己也发送
一个s皿包(s扣=k),即sny+ack包,此时服务器进入SYNRECv状态;
第三次握手:客户端收到服务器的s”+ack包,向服务器发送确认包ack(aCk==k+1),
此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
(2)客户机用及务器模式
在TCP仰网络应用中,通信的两个进程相互作用的主要模式是客户机/服务器模式,
即客户端向服务器发出请求,服务器接收到请求后提供相应的服务。客户机用及务器模式
的建立基于以下两点:首先,建立网络的起因是网络中软、硬件资源、运算能力和信息
不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务
这一非对等作用。其次,网间进程通信完全是异步的,相互通信的进程间既不存在父子
大连理工大学硕士学位论文
关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立一种联系,为
二者的数据交换提供同步,这就是基于客户机/服务器模式的TCP胆。
客户机/服务器模式在操作过程中采取的是主动请求方式:
首先服务器方要启动,并根据请求提供相应服务:
计算机网络是相互连接的独立自主的计算机的集合,最简单的网络形式由两台计算
机组成。本设计实现了一种接入nItmeet网络的显示屏,通过在显示屏的控制器上实现
TCP胆协议栈,可以将其看成一台接入网络的计算机。前文已经介绍了控制器上网络协
议的实现,并且介绍了应用程序的编写方法,本节将介绍与其对应的PC上这部分程序
的实现。
①打开一通信通道并告知本地主机,它愿意在某一公认地址端口上(周知口,如h仰
为80)接受客户请求。
②等待客户请求到达该端口。
③接收到重复服务请求,处理该请求并发送应答信号。接收并发服务请求,要激
活一新进程来处理这个客户请求。新进程处理此客户请求,并不需要对其他请求做出应
答。服务完成后,关闭此新进程与客户的通信链路,并终止。
④返回第二步,等待另外的客户请求
⑤关闭服务器。
客户方:
①打开一通信通道,并连接到服务器所在主机的特定端口。
②向服务器发出服务请求报文,等待并接收应答;继续提出请求。
③请求结束后关闭通信通道并终止。
从上面的描述过程可知:
①客户与服务器进程的作用是非对称的,因此编码不同。
②服务进程一般是先于客户请求启动的。只要系统运行,该进程一直存在,直到
正常终止或者强迫终止。
(3)WindowsSocket的实现
WnidowsSockats是MierosotfWnidows的网络程序设计接口,它是从Be次eley
Sokcets扩展而来的,以动态连接库的形式提供给我们使用。WnidowsSokcets在继承了
Bekrelyeoskcest主要特征的基础上,又对它进行了重要扩充。这些扩充主要是提供了一
些异步函数,并增加了符合Wnidows消息驱动特性的网络事件异步选择机制。它为上
层应用程序完成网络数据通讯,而不关心底层网络链路的通讯情况,真正实现了底层网
络通讯对应用程序的透明。
基于以太网的LED图文显示系统的设计
oskcet编程中用到一个很重要的结构体sockdadi泣in,它用来指定一个连接到某一个
Socke的本地或远端的终端地址。具体定义如下:
sUrtctSokcadd--rin{
shortsi--nafmily;刀地址族
u‘shortsin夕ort;刀端口号
s恤etniaddrsinaddr;刀正地址
hcarsin-zeor[8];//一般填充。
};
同嵌入式协议栈Lw正一样,WindowsSocket也提供了一些接口函数,用于完成网
络上主机之间的通讯[38]。下面将具体介绍这些函数:
Sockeot调用返回一个整型oskcet描述符,你可以在后面的调用中使用它。一旦通
过socket调用返回一个socket描述符,应该将该socket与本机上的一个端口相关联(往
往当在设计服务器端程序时需要调用该函数。随后就可以在该端口监听服务请求;而客
户端一般无须调用该函数)。
bndio函数将oskceto建立的套接字与一个具体的端口联系起来。BndiO函数在成功
被调用时返回O;遇到错误时返回“一1’’并将en刀0置为相应的错误号。另外要注意的是,
当调用函数时,一般不要将端口号置为小于1024的值,因为1一1024是保留端口号,我
们可以使用大于1024中任何一个没有被占用的端口号。
ocmleeot函数用来与远端服务器建立一个TCP连接,遇到错误时返回一1,并且emr。
中包含相应的错误码。进行客户端程序设计时无须调用。
hindo,因为这种情况下只需知道目的机器的企地址,而客户通过哪个端口与服务
器建立连接并不需要关心,内核会自动选择一个未被占用的端口供客户端来使用。
slitneo用于监听是否有服务请求。在服务器端程序中,当oskcet与某一端口捆绑以
后,就需要监听该端口,以便对到达的服务请求加以处理。当listne遇到错误时返回一1,
emr。被置为相应的错误码。
acc即0t用于连接端口的服务请求。当某个客户端试图与服务器监听的端口连接时,
该连接请求将排队等待服务器accPe()t它。通过调用acc即()t函数为其建立一个连接,
accPeot函数将返回一个新的socket描述符,来供这个新连接来使用。而服务器可以继续
在以前的那个socket上监听,同时可以在新的socket描述符上进行数据sned()(发送)和
recvo(接收)操作。
esnd()和ercv()这两个函数是用于面向连接的socket上进行数据传输。

 << 上一页  [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] 下一页

以太网LED图文显示系统的设计 第17页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。