示波器设计—波形滑动浏览

发布者:GoldenEclipse最新更新时间:2021-07-08 来源: eefocus关键字:示波器  波形 手机看文章 扫描二维码
随时随地手机看文章

第7章        示波器设计—波形滑动浏览

类似手机的滑动功能用在示波器上还是比较实用的,可以用来调节波形位置和滑动浏览波形的存储记录。

7.1   滑动基础知识

7.2   滑动基础知识总结

7.3   滑动功能在窗口上的实现

7.4    总结

 

7.1  滑动基础知识

滑动的实现是基于emWin提供的Motion功能。在emWin的官方手册中对这部分功能讲解的比较少,但是仍然需要大家去读一下,有一个大概的了解。

 

7.2   滑动基础知识总结

望大家务必看了emWin官方手册中Motion章节的内容,这里将这些知识点做个汇总,方便大家后面使用。


WM_MOTION_Enable()            使能motion

WM_MOTION_SetMoveable()      使能窗口X方向或者Y方向的Motion

WM_MOTION_SetMovement()     设置窗口以指定的速度移动一段距离。

=================

WM_MOTION_SetDeceleration()    设置窗口减速度

WM_MOTION_SetSpeed()          设置窗口的移动速度。

WM_MOTION_SetMotion()         设置初始速度和加速度。等同于上面两个函数之和

=======================

WM_MOTION_SetDefaultPeriod() 

设置指针输入设备(触摸,鼠标,键盘等)等释放后,减速度默认持续的时间。

1、如果窗口在移动中,将减速,直到停止运行。

2、如果窗口没有移动,但是使能了snap功能,那么窗口会在设置的时间内移动到下一个栅格内。

3、如果窗口在移动,且使能了snap功能,那么窗口会减速运动直到停止在最近的一个栅格上。

 

上面的这些函数都是独立的操作Motion功能,而二代示波器中使用Motion功能是基于窗口的,其实就是把上面这些函数的功能在窗口上实现。下面我们就讲解二代示波器的Motion功能实现。


7.3   滑动功能在窗口上的实现

我们这里以二代示波器的滑动功能实现过程为例,给大家做个说明。


第1步:使能滑动,设置周期。

WM_MOTION_Enable(1);              /* 使能滑动 */


WM_MOTION_SetDefaultPeriod(100);  /* 设置滑动周期 */


第2步:创建一个透明的窗口,正好覆盖600*400的波形显示区。


hMotion = WM_CreateWindowAsChild(40,


                                 40,


                                  600,


                                  400,


                                  WM_HBKWIN, 


                                  WM_CF_MOTION_Y | WM_CF_SHOW | WM_CF_HASTRANS,


                                  _cbMotion,


                                  sizeof(pPara));


                                      


WM_SetUserData(hMotion, &pPara, sizeof(pPara));


函数里面的标志WM_CF_MOTION_Y | WM_CF_SHOW | WM_CF_HASTRANS比较重要,滑动标志既可以在这里设置,也可以在窗口回调函数的WM_MOTION消息里面设置。


WM_CF_MOTION_Y:表示窗口支持垂直滑动。


WM_CF_MOTION_X:表示窗口支持水平滑动(在窗口回调里面进行了设置)。


WM_CF_HASTRANS:表示窗口透明,这个标志不要忘记设置,这样使用滑动功能的时候对示波器显示区没有任何影响。


第3步:也是最后一步,滑动窗口的回调函数。


源代码是如下这样的:

/*


*********************************************************************************************************


*    函 数 名: _cbMotion


*    功能说明: Motion窗口的回调函数,主要是桌面图标的滑动处理


*    形    参: pMsg  WM_MESSAGE类型指针变量  


*    返 回 值: 无


*********************************************************************************************************


*/


static void _cbMotion(WM_MESSAGE * pMsg)


{


     WM_MOTION_INFO * pInfo;


     WM_HWIN          hWin = pMsg->hWin;


     PARA           * pPara;


 


     switch (pMsg->MsgId)


     {


         case WM_MOTION:


              WM_GetUserData(hWin, &pPara, sizeof(pPara));


              pInfo = (WM_MOTION_INFO *)pMsg->Data.p;


              switch (pInfo->Cmd)


              {


                   /* Motion功能初始化,设置X方向和Y方向都支持滑动 */


                   case WM_MOTION_INIT:


                       pInfo->Flags =  WM_CF_MOTION_X | WM_CF_MOTION_Y | WM_MOTION_MANAGE_BY_WINDOW;


                       pInfo->SnapY = 1;


                       pInfo->SnapX = 1;


                       break;


 


                   case WM_MOTION_MOVE:


                       pPara->FinalMove = pInfo->FinalMove;


                        /* Y轴方向,上下滑动 */


                       if(g_Flag->ucMotionXY == 0)


                       {


                            if((pInfo->pState->Pressed == 1)&&(pInfo->pState->x <= 340))


                            {


                                 pPara->iCH1Pos += pInfo->dy;


                                 if(pPara->iCH1Pos >= 440)


                                 {


                                     pPara->iCH1Pos = 440;


                                 }


                                 if(pPara->iCH1Pos <= 40)


                                 {


                                     pPara->iCH1Pos = 40;


                                 }


 


                                 g_DSO1->usRefPos = pPara->iCH1Pos;


                            }


                            else if((pInfo->pState->Pressed == 1)&&(pInfo->pState->x > 340))


                            {                          


                                 pPara->iCH2Pos += pInfo->dy;


                                 if(pPara->iCH2Pos >= 440)


                                 {


                                     pPara->iCH2Pos = 440;


                                 }


                                 if(pPara->iCH2Pos <= 40)


                                 {


                                     pPara->iCH2Pos = 40;


                                 }


 


                                 g_DSO2->usRefPos = pPara->iCH2Pos;


                            }


 


                            WM_InvalidateArea(&rRefPos);


                       }


                       /* X轴方向,左右滑动 */


                       else


                       {


                            if(pInfo->pState->Pressed == 1)


                            {


                                 g_DSO1->sCurTriStep -= pInfo->dx;


                            }


 


                            if(TriggerFlag == 0)


                            {


 


                            }


                            else

[1] [2]
关键字:示波器  波形 引用地址:示波器设计—波形滑动浏览

上一篇:示波器设计—测量功能
下一篇:重度使用示波器进行优化分析——一个DSDA项目回顾

推荐阅读最新更新时间:2024-11-07 12:10

示波器测量汽车COP独立点火信号及简要分析
示波器点火信号波形分析是检测发动机点火系统故障常用的手段,在国内外应用十分普遍。 我们先来大致了解下汽车的点火系统: 发动机点火系统一般分为三种:第一种比较老式的是发动机所有气缸共用一个点火线圈,点火线圈产生的高压电通过分电器分配给各缸的火花塞。一般早期的汽车桑塔纳、夏利面包车等使用。然后第二种是双缸点火,即两缸共用一个点火线圈,这种点火方式只能用于气缸数目为偶数的发动机上,常见的四缸发动机就是一缸和四缸共用一个点火线圈,二缸和三缸共用一个点火线圈。第三种被称为COP独立点火,Coil-On-Plug中文直译为“线圈在火花塞上”,线圈直接安装在火花塞上,即一个汽缸一个独立线圈,俗称“独立点火”。每缸火花塞上一个点火线圈,通过凸
[测试测量]
<font color='red'>示波器</font>测量汽车COP独立点火信号及简要分析
简单双通道示波器的通道选择功能的设计
  通道选择功能可以实现在示波器波形图上显示不同通道的波形,可以实现两路信号同时显示以及两个通道单独显示。实现的程序框图如图所示。通道选择开关作为case_switch的选择判断,在选择判断case块中,通过通道选择子Ⅵ控件 channel A and Or B.VI ,根据输入的触发源电平、触发极性以及采样点数实现两路信号的重新配置,并输出所需要的通道信号。   图 通道选择功能的程序框图   通道选择子Ⅵ的输出信号根据产生的信号 创建数组 ,进一步和分度数值 捆绑 成簇,输入到波形图进行输出信号的显示。两路通道的信号选择,主要通过case块中的通道选择子VI控件 channel A and or B.VI 来实现。图所示为
[测试测量]
简单双通道<font color='red'>示波器</font>的通道选择功能的设计
泰克示波器MDO3系参数对比表,买前必看!
在确定要买哪一款示波器之前,除了了解品牌,型号之外,清楚的了解它的详细指标和应用是十分有必要的,泰克示波器MDO3系作为当前热销的“明星”产品,近期来咨询的人非常多,为了让大家详细了解泰克示波器MDO3系的详细参数,安泰测试给大家分享泰克示波器MDO3系参数对比表,建议要购买的工程师详细了解一下: 看完泰克示波器MDO3系的详细参数,也得了解一下它的详细应用: 1、嵌入式设计和物联网 使用 3 系列 MDO 在混合信号嵌入式系统上执行系统级调试,并支持各种常用的串行总线,包括当今较常用的串行总线技术,迅速发现和解决问题。 2、功率设计 使用自动功率质量、开关损耗、谐波、纹波、调制和安全作业区测量,在经济的解决方案中提
[测试测量]
泰克<font color='red'>示波器</font>MDO3系参数对比表,买前必看!
内置汽车测试波形的大功率直流电源介绍!
新能源汽车电子产品规模庞大,从摄像头到激光雷达,从安全气囊到复杂的辅助驾驶系统,都是汽车电子的组成部分。以新能源汽车而言,双向充放电以及三电系统仍在快速发展。汽车电子生产厂家一方面面对着电压等级提高、供电容量增大的挑战,另一方面汽车行业测试标准的多样性及编程功能的复杂性为这项工作增添了难度。艾德克斯IT3900C系列电源的汽车功率网用电压曲线测试功能就可以解决这些问题。 IT3900C系列双向可编程直流电源内建标准波形,供客户方便的调用并直接执行测试。内置波形所涉及的标准包括DIN40839、ISO167502、ISO21848、SAEJ1113–11、LV123、LV124、LV148、ISO21780等。这些波形使汽车电子
[嵌入式]
内置汽车测试<font color='red'>波形</font>的大功率直流电源介绍!
示波器截图原来可以这么简单!
  一份测试报告可能包含几十张示波器截图,因此示波器截图是否便捷非常关键。传统的示波器截图通常是用U盘将图片从示波器拷贝到电脑上,如果工作电脑不支持插入U盘,则更加复杂。能不能只按下CTRL+V就自由粘贴当前的示波器界面呢?   1、上位机软件Wave_Analyze:深度优化截图体验   Wave Analyze是示波器的PC分析软件。除了本身的波形分析功能外,还解决用户后期编写测试文档截图繁琐的问题。安装方便,无需驱动程序,只需一根网线即可实现电脑和示波器的快速连接。   图 1 Wave_Analyze软件   2、设备持续截图:选择最适合你的截图方式   点击Wave_Analyze软件的截图菜单,如图
[测试测量]
<font color='red'>示波器</font>截图原来可以这么简单!
示波器和信号源之间的无缝互连
常常有人会问,怎样才能把示波器和信号源两者连接起来,实现数据共享呢?其实,鼎阳SDS1000系列示波器是可以将采集到的波形信息以CSV文件的格式发送给鼎阳SDG1000信号源;而SDG1000信号源也可以将CSV文件数据转化为波形信息并发送给信号源,实现示波器和信号源的无缝互连、数据共享。那如何实现呢?鼎阳科技提供了两种方式来传输数据,实现无缝互连。 通过PC电脑传输数据 SDG1000信号源配套有功能强大的任意波形编辑软件EasyWave,可以直接将SDS1000示波器采集的波形信息导入其中: 生成CSV文件格式的波形文件: 将波形文件直接发送到SDG1000信号源任意波形存储空间:
[测试测量]
<font color='red'>示波器</font>和信号源之间的无缝互连
声音定位的距离误差到底有多高?
验证方案 安装在精确测量位置重新获得多组数据; 在实验中分别将拾音的MIC放置在距离蓝牙音箱15cm,50cm,100cm,145cm的位置接收蓝牙音箱发送的Chirp信号。Chirp信号的频率从250Hz线性变化到2000Hz,声音长度为250ms。 每组数据都同时使用外部示波器进行同步采样; 可以监视声音是否收到外部噪声的干扰。 通过相关差分计算得到每组对应的延迟数据; 可以消除测量基点位置定义不同而带来的系统误差。 具体实验场景和手持测距激光仪如下图所示。 音箱和MIC都距离地面15厘米左右。 实验中的音箱和拾音器的位置和高度 配置示波器DS6104双通道采集发送和接收的数据 测试声音发送时间为2.048ms。需
[测试测量]
声音定位的距离误差到底有多高?
第五届(2001年)全国大学生电子设计竞赛题目
A题波形发生器 一、任务 设计制作一个波形发生器,该波形发生器能产生正弦波、方波、三角波和由用户编辑的特定形状波形。示意图如下: 二、要求 1.基本要求   (1)具有产生正弦波、方波、三角波三种周期性波形的功能。   (2)用键盘输入编辑生成上述三种波形(同周期)的线性组合波形,以及由基波及其谐波(5次以下)线性组合的波形。   (3)具有波形存储功能。   (4)输出波形的频率范围为100Hz~20kHz(非正弦波频率按10次谐波计算);重复频率可调,频率步进间隔≤100Hz。   (5)输出波形幅度范围0~5V(峰-峰值),可按步进0.1V(峰-峰值)调整。   (6)具有显示输出波形的类型、重复频率(周期)和
[半导体设计/制造]
小广播
最新测试测量文章
换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved