用Visual C++编写一个SDI应用程序,按以下要求编程:

用Visual C++编写一个SDI应用程序,按以下要求编程:,第1张

MFC基础编程,你这个要求挺简单的,我们课本上貌似就有,不过我现在这里没有安装vc,你这个程序就是一些 *** 作,也不好贴代码,如果你要是实在弄不出来,我回去帮你弄一下,然后把 *** 作过程写清楚,把工程都发给你吧,不过至少得到搏仔明天,今天没时间。

现在把 *** 作过程发给你吧,希望你能 *** 作出来,我已经编译运行过了的。如果有问题,可能是你 *** 作上的问题,我一步步 *** 作然后一步步发给你。实在还有问题就找我交流吧,

1.新建MFC工程,命名MySdi,选择单文档,完成。

2.插入(insert)->资源(resources),选择Dialog,点击new(新建)。 //这步完成新建一个对话框资源

3.然后就是编辑这个资源了,画两个静态文本框提示x和y,画两个编辑框用来输入坐标的。

4.在对话框最上面点右键点击类向导,为资源添加一个新类,命名为CTestDlg。

5.给类CTestDlg添加成员变量POINT m_point,公有变量。然后在CTestDlg的构造函数中初始化

m_point.x=0

m_point.y=0

6.回到对话框资源编辑那里(就是刚才画图那里),在OK按钮双击确定然后进入OnOk()函数编州旦写中。添加如下代码:

m_point.x=GetDlgItemInt(IDC_EDIT1)

m_point.y=GetDlgItemInt(IDC_EDIT2)

7.以上就弄好了对话框了,下面就是菜单和显示对话框的问题了。

首先在菜单资源中编辑中添加菜单项“基迹汪输入数据(I)..”,ID为IDM_INPUT,caption为“输入数据(I)...\tCtrl+I”,点击资源中Accelerator下的IDR_MAINFRAME然后添加快捷键(这个会吧。。。)。

8.回到刚才菜单资源编辑中,在输入数据菜单项上点击右键选择类向导添加菜单项的命令响应,选择CMySdiVie类,选择command,点击add function,edit exsiting进入代码编辑状态。添加如下代码:

CMyDialog dlg

if(dlg.DoModal()==IDOK)

{

x=dlg.m_point.x

y=dlg.m_point.y

Invalidate()

}

然后给CMySdiView类添加成员变量x,y并在构造函数中初始化。

注意:还要在这个文件最上面添加如下代码:#include "TestDlg.h"

9.这个时候你可以编译试试,点菜单项可以d出对话框了。

10.最后,就是在OnDraw()函数中添加如下代码:

pDC->MoveTo(0,0)

pDC->LineTo(x,y)

(我这里每次画一条原点到输入点的线,不知道你题目说的“画一条从当前位置到输入坐标的直线”中当前位置是什么意思,你也可以自己改一下坐标就可以画出你要的线了)。

哎,够详细吧,我可是画了几个小时啊,写这么详细,为了保证不出错,我先做出来了,然后重新做了一次,做一步写一步。如果你 *** 作正确,肯定错不了。不过万一你还有什么问题就直接找我交流就是了。

不是吧,给你弄这么详细还不给个好评给我,我伤心啊。。。

1.接口的电气性能

接口规定了总线使用三芯电缆,定义如下: 

一根为串行数据线,双向半双工通信

一根为12V供电线,向传感器供电

一根为地线,即作为电源的回路又作为数据信号线的回路。

2.串行数据的逻辑和电压值

二进制值                      电压范围

1                        -0.5V¬ — 1.0V

0          饥纯槐烂友               3.5V — 5.5V

3.>SDI-12传感网络结构

三、>SDI-12的通信协议

1.通信速率和字帧结构

协议规定了通信的波特率为1200

字帧结构

起始位: 1

数据位: 7

校  验: 偶校验

停止位: 1

2.可实现特性

所有在SDI-12总线上发送的字符必须是可印刷的ASCII字符。

所有的指令以地址码开始,以“!”为结束符。

所有的传感器响应以地址码开始,以为结束符。

3.SDI-12的地址范围

规范约定地址由0-9 、a-z、A-Z ,出厂初始化地址为0,但大部分厂家没有对这个范围进行限制,经过实验验证,所有的可显示的键盘码都可以做为地址,但建议用户在地址资源充足的情况下,不要将地址设置超出该范围,以免带来不必要的麻烦。

四、>SDI-12传感器

1.传感器的特点

传感器自身具有微处理器,可以实现适合自身特点的算法

可以通过指令对其进行校准

内部采用EEPROM,用来放置校准信息和其他配置信息。

单总线的串行接口简化了数据采集器的设计

传感器在未来的发展上可以独立完成。

2.传感器的组成结构

3.传感器的休眠与唤醒机制

这个协议里最特殊的点是它的休眠与唤醒机制12mS和8.33mS标识。由于>SDI-12传感器低功耗模式,当不进行工作时即进入休眠,因此每个命令前需要加裤逗上一个12mS的标识信号,用于唤醒总线上所有的传感器,传感器从低功耗模式中唤醒后,在收到下一个8.33mS标识信号后,开始寻找和自己匹配的地址,地址匹配开始测量。如果地址无效或空闲超过100mS将返回到低功耗待机状态。

注意:这项功能是由数据采集器或>SDI-12协议转换器自动执行的,用户只要理解就可以了。

读取文件腊做历的类或者函数中文件名不是参数么,按你的胡燃要求轮搜把文件名拼到对应字符串变脸里面不就行了。STL中可以用stringstream。stringstreamssss<<文件名<


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12560882.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存