计算机网络物理层-编码技术实现

一.编码技术

编码技术 描述
归零编码(RZ) 信号电平在一个码元内要恢复到0状态
非归零编码(NRZ) 高1低0
反向不归零编码(NRZI) 前后信号翻转表示后面一个码元为0,电平不变代表1
曼彻斯特编码 一个码元内,前高后低位1,前低后高为0
差分曼彻斯特编码 码元为1,该码元的前半个码元电平与前一个码元的后半个码元的电平相同,0则相反
4B/5B编码 比特流中插入额外比特打破一连串的0或1

二.运行效果图
在这里插入图片描述
三.详细介绍

1.为了实现每种波形的动态更新,采用多定时器来实现。一个时钟主要负责背景及UI界面的绘制,而其他每种编码对应一个定时器,共同调用响应函数OnTimer函数,对每个定时的执行通过nIDEvent来识别。

2.界面绘制与编码波形绘制函数交替执行,而每种编码波形函数同时并行执行各自的代码块。

3.OnTimer函数内部实现伪码

void CInforEncodeDlg::OnTimer(UINT_PTR nIDEvent)
{
	1.数据预处理,一批一批的进行数据处理,每次时钟1都调用。
	if (nIDEvent == 1)
	{		
		//时钟nIDEvent =1主要负责界面及背景绘制,以及数据的预处理等。
		DataPreprocess();
	}
	2.各个时钟的调度,6bool类成员变量m_xxx=false;用于控制界面和编码函数交替执行的控制,都为假时,执行界面绘制函数,为真时执行对应的编码时钟。
	switch(nIDEvent)
	{
		case 1:DrawUI();break;
		case 2:NRZ();break;
		case 3:RZ();break;
		case 4:NRZI();break;
		case 5:Man();break;
		case 6:DiffMan();break;
		case 7:To4BOr5B();break;
	}
	CDialogEx::OnTimer(nIDEvent);
}

4.MFC函数介绍

函数 功能
GetDlgItem(IDC_STATIC_BITE) 获取控件IDC_STATIC_BITE的句柄
GetClientRect(CRec r) 获取客户区,通过矩形r返回
CBrush::FromHandle((HBRUSH)GetStockObject(BLACK_BRUSH)) 创建一个画刷
FillRect 填充矩形,可以用于绘制背景色,也可以通过内存DC绘制
UpdateData(TRUE) 将输入值更新到绑定对象上,为FALSE时,把变量值更新到控件上显示
SelectObject 将画笔、画刷等选入设备
SetBkMode(TRANSPARENT) 设置背景为透明模式,绘制文本是,文本的背景为透明模式
TextOutW 用于绘制文本
MoveTo(CPoint p) 定位到点p
LineTo(CPoint p) 当前点与p点连线

代码https://pan.baidu.com/s/1iL_g-ws8YgGvFWzzlHiaXw
提取码:zect

发布了126 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/TxyITxs/article/details/104361525