嵌入式技术应用实践报告

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
private void button1_Click(object sender, EventArgs e)
{
BluetoothRadio radio = BluetoothRadio.PrimaryRadio; //把BluetoothRadio设置成主设备
if (radio == null) //判断如果radio为空
实践意味着动手能力的锻炼和提高,即使只是运用一个新的软件,自学并且在老师的指导下自行完全一个程序,是一种能力的显示。只能说,很可惜的是,时间太短我们只能学到皮毛,而无法了解它对我们以后学习的巨大益处,这就需要我们在结束课程后自己学习了。
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) //如果用户在对话框中单击“确定”,则为System.Windows.Forms.DialogResult.OK;
否则为System.Windows.Forms.DialogResult.Cancel
Civil Aviation University of China
嵌入式技术应用实践报告
二〇一三年
一、学习目的
了解处理器的发展
掌握WinCE嵌入式系统开发方法和开发流程。
掌握WinCE嵌入式C#编程方法。
掌握WinCE嵌入式网络通信技术。
掌握Bluetooth编码技术
二、实践要求
设计蓝牙文件传输系统(包括服务器端和客户端),主要设计文件发送(客户端)
comboBox1.DataSource = cbbthDevices;//将数组赋值给下拉列表
comboBox1.DisplayMember = "DeviceName";//下拉列表显示设备名称
comboBox1.ValueMember = "DeviceAddress"; //下拉列表隐藏显示设备物理地址
}
catch
{
MessageBox.Show("发送失败!");
}
finally
{ if(response!= null)
response.Close();
}
}
//try..catch...finally..处理异常,如果try之后的内容不能正常运行则执行catch后的内容
6附加功能:创建一个名为MyText.txt的文本文件
{
textBox1.Text = ofd.FileName;
}
else
{
textBox1.Text = "";
}百度文库
}
5发送文件
private void button3_Click(object sender, EventArgs e)
{
if(comboBox1 == null || textBox1 == null)
private void button4_Click_1(object sender, EventArgs e)
{
String path = "MyText.txt";
try
{
if(File.Exists(path))
{
File.Delete(path);
}
using (FileStream fs = File.Create(path))
添加,导致程序无法正常进行。
五、心得体会
在这次实验中,了解了简单的C++语言和程序设计,学会了蓝牙设备的发送和接收,同时也认识了Visual Studio2005这个软件。这次实践还锻炼了我的自学的能力。通过自己查找资料,自己解决实践中的问题,对日后的学习有很大的帮助,懂得了在完全零基础的情况下如何更好的学习和掌握。
{
MessageBox.Show("没有选择蓝牙设备或者传送文件");
}
ObexWebResponse response = null; //判断是否已选择蓝牙设备和文件
try
{
statusLabel1.Text = "正在发送中...";
System.Uri uri = new Uri("obex://" + comboBox1.SelectedValue.ToString() + "/" + System.IO.Path.GetFileName(textBox1.Text.Trim()) + System.Net.Dns.GetHostName());
{
MessageBox.Show("没有蓝牙设备或者没有支持的蓝牙协议栈");/ /消息框显示没有蓝牙设备.....
return; //结束并返回
}
radio.Mode = RadioMode.Discoverable;//将接收机模式设置成可发现模式
BluetoothClient client = new BluetoothClient(); //创建一个新的蓝牙客户端
OBEX协议通过简单的使用“PUT”和“GET”命令实现在不同的设备、不同的平台之间方便、高效的交换信息。支持的设备广泛,例如PC,PDA、嵌入式设备。
在层次结构的蓝牙协议栈中,对象交换协议OBEX(Object Exchange)是一种面向应用的会话层协议,它运行于蓝牙协议栈的顶部,支持文件传输(File Transfer),对象“推”操作(Object Push Profile)等多种应用,提供了设备间简单易行的对象交换手段。可交换的对象可以是文件、图像,也可是应用支持的任何数据单位。对象交换采用了基于查询—应答方式的Client/Server模式,任意两台蓝牙设备间都可组成主从关系,主动发起方是主设备(Client),被找到者是从设备(Server)。
7下载到实验箱,在实验箱上进行程序调试和运行
四、遇到的问题和解决方法
1.文件发送一直失败
一开始是程序出错:if(response== null)必须改成if(response!= null),表示当结果为
时输出“发送失败”。不过,程序修改后仍然发送失败,经检查发现是实验箱的问题,这个结果告诉我们在做实验的时候,检查错误时不能拘泥于一个方面,在确认以为的错误不存在的时候,就应该把目光放向其他方面尤其是最容易遗漏的地方。
{
Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
fs.Write(info, 0, info.Length);
}
using (StreamReader sr = File.OpenText(path))
2)蓝牙文件发送
1在放置控件的区域绘制下图,控件属性自行更改
2在编辑程序前进行必要的引用
using InTheHand.Net;
using InTheHand.Net.Bluetooth;
using InTheHand.Net.Ports;
using InTheHand.Net.Sockets;
3搜索蓝牙设备
三、实践内容
1)了解什么是OBEX文件传输
OBEX全称为Object Exchange,中文对象交换,所以称之为对象交换协议。OBEX传输协议定义了数据对象和两个设备用来交换这些对象的通信协议。
蓝牙协议栈允许采用多种方法,包括RFCOMM和Object Exchange(OBEX),在设备之间发送和接收文件。如果想发送和接收流数据,那么RFCOMM更好。反过来,如果想发送对象数据即文件,则OBEX最好。
statusLabel1.Text = "蓝牙设备搜索完成"; //状态栏显示蓝牙设备....
Application.DoEvents(); //执行文件
}
4浏览文件
private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
2.遗漏引用或引用错误
在生产时出现引用有误,此时应该查看必要的引用是否缺少,添加引用。在无法理解时
可以将光标移至出错处按下F1,查看帮助。在实验过程中,或多或少都会出现错误,这时不应该光想着询问老师,运用帮助完全可以自己解决。
3.没有解决的问题:附加功能进度条
在进行进度条功能的编辑时出现了引用错误,但是由于电脑自身的病毒无法进行引用的
ObexWebRequest request = new ObexWebRequest(uri);
request.ReadFile(textBox1.Text.Trim());
response = (ObexWebResponse)request.GetResponse();
MessageBox.Show(response.StatusCode.ToString());
this.statusLabel1.Text = "正在搜索蓝牙设备..."; //状态栏显示正在.....
Application.DoEvents(); //执行上述文件操作,原因搜索需要时间
BluetoothDeviceInfo[] cbbthDevices = client.DiscoverDevices();//定义一个数组,类型是蓝牙设备信息,名称cbbthDevices,内容
{
string s = "qwqwq";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
}
catch (Exception Ex)
{
Console.WriteLine(Ex.ToString());
}
}
//简单解释,先判断该文件是否已存在,存在则不再取消该创建,然后建立一个存放文件字节的数组,写入内容,创建即成功。
相关文档
最新文档