VS2008中开发智能设备程序的一些总结收藏
结合前几日开发的《全国大坝基础数据库采集端》中的PDA程序开发过程,对VS2008开发智能设备上的程序做个小总结。
1 程序结构
程序中包括四个部分:
1. 系统配置
这个部分用来配置系统中的相关参数,参数包括数据库信息和串口的配置信息。这部分的主要技术是XML文件的读取和写入。
2. 数据下载
从数据库中下载数据到PDA,PDA上的保存也是使用数据库。这部分的技术主要是PDA设备上的移动数据库开发和使及用PDA连接PC数据库
3. 数据上传
把PDA上的数据上传到PC数据库中,使用的技术和2相同。
4. GPS数据获取
通过外置蓝牙GPS模块获取当时所在位置的经纬度,并将经纬度保存在PDA上的移动数据库中。涉及到的技术有串口数据的读取,GPS数据的解析。
2 开发环境
软件环境: Visual studio 2008
PC数据库: sql server
智能设备: Windows Mobile 6
3 建立工程3.1 建立项目
建立工程的过程和VS建立其他工程步骤相同,通过vs2008中的菜单“文件-新建-项目 ”,建立一个新项目。
VS2008已经集成了智能设备的开发环境,根据开发语言的不同,在不同的开发语言树中选择“智能设备”,下方的名称中填写项目名称,点击“确定”按钮,就建立了一个智能设备的程序项目。
3.2 建立调试环境
VS2008中已经包括了智能设备的仿真程序,编写的程序可以通过PC机上的仿真程序进行调试,不必在PDA上逐个调试程序。
建立项目后,通过菜单“项目--项目属性”中的“设备”页中设置调试内容。
在下拉框中,选择目标设备的类型。类型的选择要根据PDA的操作系统进行确定,PDA上如果是中文操作系统,请选择“CHS”打头的选项。具体如何选择,请根据PDA的操作系统进行。如果对选项中的内容不了解,请查阅其他资料。
仿真程序的选择和设置不仅仅只有这一种方式,也可以通过VS2008中的“工具-设备仿真器管理器”进行设置。
3.3 绘制窗体
智能设备的窗体和windows窗口的差别不是很大。在工程中选择添加窗体后,VS中出现PDA屏幕模样的模板。需要什么功能,在工具箱中把对应的控件拖到模板上即可。这部分的开发和普通的Windows程序开发没有什么不同。
不同的部分就是菜单。智能设备的菜单中有缺省菜单,就是在屏幕底部有个菜单控件,可以通过增加菜单项的方式增加菜单。需要注意的是,一级菜单只能有两个,而且设置的时候,只能先设置左边的菜单项内容,才能设置右边菜单项内容。
控件的使用也是有严格限制的。VS2008中能使用的控件分布在工具箱的“所有设备控件V、“公共设备控件 v、“设备容器 v、“设备菜单和工具栏V、“设备数据V、“设备组件V、“设备对话框V。使用控件的方式和Windows窗体的设计没有什么不同。
4 调试
调试程序的方式同普通的程序调试差别不大,也通过单步调试等等的功能。唯一的差别就在于调试中程序在仿真器中运行。
4.1 其他文件
在调试中,程序如果只有一个EXE文件,而不涉及到其他文件,可以直接在仿真程序中运行。但是如果程序还有其他文件的话,需要把文件也要部署到PDA仿真器上。如何部署其他文件,请参考下面步骤:
1. 通过仿真器上的菜单“文件――配置…”菜单设置共享文件夹。
通过后面的按钮,浏览电脑中的磁盘,并选择恰当的目录。“共享文件夹”在设置完成后,将作为PDA仿真器的扩展存储空间,仿真器中共享文件夹被命名为“Storage Card”。那么在仿真器中就可以直接操作共享文件夹中的文件。
这时候,就可以把其他和程序相关的文件拷贝到需要的地方。下面以一个XML文件为例。这个XML和程序的可执行程序在一个目录下,用来保存程序的设置参数。XML文件在电脑上,程序中通过读取可执行程序所在的目录来指定XML文件的目录。但是很不幸,仿真器在运行过程中,认为EXE可执行程序在“program files\\项目名称”这个目录下,这个目录是仿真器中的路径,肯定是不会找到XML文件的。这就需要把XML文件也放置到“program files\\项目名称”目录下面去。
在仿真器中点击“开始-资源管理器”,打开后选择“Storage Card”。在这个里面通过目录-文件的方式选中文件,然后点击下面的“菜单-编辑-复制”,将文件复制出来。
然后通过仿真器界面上的文件-目录功能,找到“我的设备-program files-项目名称”,进入以项目名称为名称的目录,通过“文件-编辑-粘帖”,把文件拷贝到可执行程序所在的运行目录下。
5 移动数据库
在这个项目中,使用的是微软的SQL SERVER Mobile Compact Editor 3.5。其他的数据库还没有使用过。仅仅就SQL SERVER Mobile Compact Editor 3.5的使用方法说明。
5.1 获得SQL SERVER Mobile Compact Editor 3.5
SQL SERVER Mobile Compact Editor 3.5可以直接从微软的网站上下载,网址为:http://www.microsoft.com/downloads/details.aspx?familyid=7849B34F-67AB-481F-A5A5-4990597B0297&displaylang=zh-cn
下载后在电脑上进行安装。默认安装到C:\Program Files\Microsoft SQL Server Compact Edition下。
3.5版本为最新版,增加了设置数据库文件密码的功能。也可以使用其他版本的SQL SERVER MOBILE替代。
5.2 在SQL SERVER MANAGER STUDIO中使用SQL SERVER MOBILE
在登录部分,服务器类型选择“SQL SERVER MOBILE”,数据库文件通过下拉框中的“浏览更多…”选择建立的数据库文件,也可以通过选择窗体中的“新建数据库”建立新的数据库。
输入数据库密码,即可登录到SQL SERVER MOBILE数据库中。需要说明的是,3.5版本建立的数据库,在SQL SERVER MANAGE STUDIO 2005中可能无法登录。
5.3 Sql server mobile数据库中建立数据表
Sql server mobile中建表可以通过sql server manage studio 2005中的建表向导进行建表,也可以通过sql语句进行建表。建表的时候需要注意字段类型和sql server中的字段类型并不相同,在sql server中能使用的字段类型,在sql server mobile中可能无法使用,在建表的过程中需要注意这点。
5.4 在智能设备上部署sql server Mobile数据库
把建好的数据库文件通过4.1中描述的方式,拷贝到相应的仿真器目录下。这时候仿真器就可以连接并操作SQL SERVER MOBILE数据库了。
但是如果使用PDA访问SQL SERVER MOBILE,注意Windows Mobile中不包含数据库引擎,需要额外的安装四个包。如果不安装这四个包,程序将无法连接和读取SQL SERVER MOBILE数据库。
这四个包在sql server mobile安装目录下,具体的是C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Devices\wce500\armv4i目录下面,包括:
sqlce.dev.CHS.ppc.wce5.armv4i.CAB
sqlce.ppc.wce5.armv4i.CAB
sqlce.repl.ppc.wce5.armv4i.CAB
sqlce.wce5.armv4i.CAB
将这四个文件拷贝到仿真器上,并安装。
安装后,PDA的程序中增加了三个程序: sqlservercompact 3.5 Repl
SqlserverCompact 3.5 Tools CN
SqlserverCompact 3.5 Core
当不用移动数据库时,可以卸载这三个程序。
6 智能设备连接操作PC数据库
智能设备操作PC数据库,有两种方式:
一种是通过无线连接,一种是通过USB连接到电脑上。无线连接在普通环境下使用普遍性不足,很多情况下是通过USB数据线进行连接的。使用USB数据线连接,PC电脑上需要安装同步工具,目前使用较多的为微软的ActiveSync,下载地址是;
智能设备和PC同步后,就可以把智能设备看作一台电脑,可以连接数据库。
7 数据库连接字符串7.1 Sql server mobile
在工程中增加引用,引用System.data.sqlserverCe
类中使用命名空间:System.data.sqlserverCe
数据库链接类名、命令类名及记录集类名中都使用包含Ce的类。
具体代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlServerCe;
using System.Data.SqlClient;
namespace GPSDataReader
{
public partial class frmDamUp : Form
{
SqlCeConnection ConnMobile;
SqlCeCommand command;
public frmDamUp()
{
InitializeComponent();
}
private void frmDamUp_Load(object sender, EventArgs e)
{
//获取可执行程序所在目录和数据库文件
string sFilePath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "";
//连接sql server Mobile数据库的连接字符串
string ConnStr = "Data Source=" + sFilePath + ";Persist Security Info=False;password=admin;";
//建立链接
ConnMobile = new SqlCeConnection(ConnStr);
try
{
ConnMobile.Open();
}
catch (Exception ex)
{
MessageBox.Show("不能正确连接移动数据库!" + ex.Message);
this.Close();
}
command = new SqlCeCommand();
command.Connection = ConnMobile;
string sqlstr = "select * from DamInfo where IsUP='1'";
command.CommandText = sqlstr ;
SqlCeDataReader rs = command.ExecuteReader();
while (rs.Read())
{
ListViewItem lv_Item = new ListViewItem();
lv_Item.Text = rs["RSID"].ToString();
lv_Item.SubItems.Add(rs["RSNM"].ToString());
lv_Item.SubItems.Add(rs["DMPRV"].ToString());
lv_Item.SubItems.Add(rs["DMCT"].ToString());
lv_Item.SubItems.Add(rs["DMTW"].ToString());
lv_Item.SubItems.Add(rs["EL"].ToString());
lv_Item.SubItems.Add(rs["NL"].ToString());
lv_Item.SubItems.Add("未上传");
lv_DamInfo.Items.Add(lv_Item);
}
rs.Close();
if (lv_DamInfo.Items.Count == 0)
{
MessageBox.Show("没有需要上传的数据!");
this.Close();
}
}
7.2 智能设备连接PC上的SQL SERVER
智能设备不支持OLEDB连接方式,只能使用SQLSERVER .Net的连接方式。所以增加System.data.SqlClient引用。在需要连接的类中增加System.data.SqlClient命名空间。
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlServerCe;
using System.Data.SqlClient;
private void b_Down_Click(object sender, EventArgs e)
{
string sqlstr;
string Connstr = "user id=sa;password=2centit13;initial catalog=DamBase;Server=" + ConfigInfo.IP + ";Connect Timeout=30";
SqlConnection Conn = new SqlConnection(Connstr);
try
{
Conn.Open();
}
catch (Exception ex)
{
MessageBox.Show("无法连接到指定的PC数据库!" + ex.Message);
return;
}
}
VS2008中开发智能设备程序的一些总结收藏的更多相关文章
- VS2008中开发智能设备程序的一些总结
原文链接:http://blog.csdn.net/citybug_nj/article/details/2598705 程序中包括四个部分: 系统配置 这个部分用来配置系统中的相关参数,参数包括数据 ...
- VS2008中开发手持终端程序(PDA软件)总结
VS2008中开发手持终端程序(PDA手机软件)的项目总结 1程序结构 程序中包括四个部分: 1.系统配置 这个部分用来配置系统中的相关参数,参数包括数据库信息和串口的配置信息.这部分的主要技术是XM ...
- cygwin,在win中开发linux程序
cygwin,在win中开发linux程序 http://www.cygwin.cn/site/info/show.php?IID=1001 很多用windows的朋友不习惯于用linux的开发环境 ...
- Delphi XE8中开发DataSnap程序常见问题和解决方法 (二)想对DBExpress的TSQLDataSet写对数据库操作的SQL语句出错了!
当我们搞定DataSnap后,我们进入客户端程序开发阶段了,我们建立了客户端模块后,打算按照刚才开发服务器的步骤开发客户端程序,随后加入了DBExpress的TSQLDataSet,设定数据库连接后, ...
- 在Eclipse中开发MapReduce程序
一.Eclipse的安装与设置 1.在Eclipse官网上下载eclipse-jee-oxygen-3a-linux-gtk-x86_64.tar.gz文件并将其拷贝到/home/jun/Resour ...
- OpenTK学习笔记:C#的中开发OpenGL程序的4种开源封包库SharpGL、CsGL、OpenTK、Tao框架的简单对比
最近要在C#的语言环境下开发OpenGL程序,参考了网上的博客论坛http://www.cnblogs.com/hanyonglu/archive/2012/06/12/2546581.html,总结 ...
- Delphi XE7中开发安卓程序一些有用的帮助资源
说明:要想看到下面资源,打开帮助后,在搜索里面输入URL最后一部分,如果最后带“.html”,则把它删除,随后搜索一下,就看到了. 例如:想看下面的FireMonkey类关系图,只在搜索里面输入&qu ...
- WSL2:在Windows系统中开发Linux程序的又一神器
作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux. ...
- Delphi XE8中开发DataSnap程序常见问题和解决方法 (-)启动创建好的DBExpress工程时候报错了!
当我们成功创建了使用DBExpress的DataSnap的服务器和客户端程序后,我们关闭了当前工程,当我们再次打开时候,有可能会出现这样的问题: 问题原因:这个问题是因为当前工程组默认启动的是客户端工 ...
随机推荐
- 改变placeholder的字体颜色大小
input::-webkit-input-placeholder { /* WebKit browsers */ font-size:14px; color: #333; } input::-moz- ...
- Netty入门(3) - ChannelHandler
ChannelPipeline ChannelHandler实例的列表,用于处理或者截获通道的接收和发送数据,让用户可以在ChannelPipeline中完全控制一个事件以及处理ChannelHand ...
- 第18月第21日 vue cnpm
1. 首先我们需要下载npm,因为我已经提前安装了node.js,安装包里面集成了npm,然后我们就可以利用npm命令从获取淘宝镜像的cnpm了. 1.打开命令行窗口,输入 npm install - ...
- HTML5中<template>标签的详细介绍
HTML5中<template>标签的详细介绍(图文) 这篇文章主要介绍了HTML5中的template标签,是HTML5入门中的重要知识,需要的朋友可以参考 一.HTML5 templa ...
- 通过Application传递数据
1:通过Application传递数据 假如有一个Activity A, 跳转到 Activity B ,并需要推荐一些数据,通常的作法是Intent.putExtra() 让Intent携带,或者有 ...
- js获取当前日期时间“yyyy-MM-dd HH:MM:SS”
获取当前的日期时间 格式“yyyy-MM-dd HH:MM:SS” 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 function getNowFormatDat ...
- 从Nexus私服下载和上传资源(二)
上传资源到私服 当项目完成后如果需要deploy 部署jar 包到私服,则可以添加如下配置: 1.在项目的 pom.xml 文件中添加上传部署的路径: 注意:如果需要对 releases版本进行多次部 ...
- shiroWeb项目-授权(十一)
使用PermissionsAuthorizationFilter 在applicationContext-shiro.xml中配置url所对应的权限. 测试流程: 1.在applicationCont ...
- ubuntu14.04下 Kinect V2+Ros接口安装
1. 首先git下载代码,放到主文件夹下面 git clone https://github.com/OpenKinect/libfreenect2.git 2. 然后安装依赖项如下,最好事先编译安装 ...
- vux安装中遇到的坑
1.输入 npm install vux --save 2.输入 npm install vux-loader --save-dev(没安装的时候,会一直报错) 3.build/webpack.bas ...