文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程Asp.Net用.Net的Web服务实现天气预报
精品推荐
特别推荐
·技巧实例:ASP.NET生成静态页面实现方法
·ASP.NET、JSP及PHP之间的抉择
·.net基础知识错误注意二十二点知识
·asp.net2.0学习历程 菜鸟到中级程序员的飞跃
·.NET基础知识-什么是.NET
·初学C#+ASP.NET+Oracle时积累的备忘点滴
·专家详解:复杂表达式的执行步骤
·asp.net中的加密方法
·DataGrid常见关注问题解决方案
·学习笔记 ASP.NET 5种页面转向法
·ASP.NET网络编程中经常会用到的27个函数集
·ASP.NET之上传文件管理策略
·专家:用.NET动态创建类的实例讲解
·ASP.NET WEB服务和Flash打造MP3播放器
·精通ASP.NET中弹出窗口技术
·asp.net常用代码
·asp.net创建文件夹的IO类的问题
·Asp.Net函数集
·Asp.net cache 简述
·如何最大限度提高.NET的性能 (续)
热点TOP10
·DataTable控件的使用
·ASP.NET上传文件的实例
·ASP.NET2.0下含有DropDownList的GridView编辑、删除的完整例子!
·asp.net(C#)海量数据表高效率分页算法(易懂,不使用存储过程)
·ASP.NET购物车的实现及结算处理
·在ASP.NET中防止注入攻击[翻译]
·使用ASP.NET2.0的ReportViewer查看RDLC报表
·asp.net程序中最常用的三十三种编程代码
·ASP.NET 2.0的导航控件treeview和menu的实例
·asp.net常用代码
·Lucene.net 实现全文搜索
·在C#后代码里使用IE WEB Control TreeView
·asp.net2.0学习历程 菜鸟到中级程序员的飞跃
·Access 通用数据访问类(asp.net 2.0 c#)
·.Net分页控件发布
·ASP.NET之上传文件管理策略
·AspNetPager分页控件--使用方法
·asp.net 2.0中gridview里嵌套dropdownlist
·ASP.net在线购物商城系统完全解析
·手把手教你在Win2003下配置ASP.NET开发环境

用.Net的Web服务实现天气预报

日期:2007年7月8日 作者: 查看:[大字体 中字体 小字体]


   该例子演示了利用微软.Net框架的Web服务与天气预报站点的硬件进行数据交换来实现Web天气预报的服务。

    微软力推.Net的目的,用他自己的话来说就是“使人们能够在任何时候、任何地点以及任何设备上通过我们开发的软件发挥最大的潜能”。在这里大多数人可能认为微软所讲的“任何设备”是指袖珍PC、手持设备、台式电脑及笔记本电脑等。下面的例子我们将向大家展示.Net如何使那些电脑硬件设备驱动程序开发人员发挥自己的潜能,这些设备驱动程序可能和一些专用的PC控制器或PC的标准端口直接通讯。这些驱动程序开发人员大多依靠Windows的驱动开发工具包(DDK)及其其他各种工具,如可安装文件系统开发工具包(IFS)等。虽然这些微软的工具包并没有随着.Net的推出而改变,但是.Net构架仍然给这些硬件设备开发带来了新的机遇。
 
  我们将要构造的示例方案的目的就是通过专用的PC卡自动采集来自于不同天气情报采集点的天气信息。PC卡可以通过每个采集点的标识ID来同时控制每个采集点的数据,按要求每个采集点可以提供该点的温度、湿度和气压等数据。
 
  我们的目标是让用户通过互联网(Web)获得指定采集点的天气预报信息。接下来我们开始结构设计。首先需要为PC卡写一个Windows的驱动程序以便PC卡可以读取指定采集点的天气信息,另外我们还需要利用.Net构造一个网络服务(Web Service)以便互联网用户可以通过Internet访问采集到的天气信息数据。

  .Net的托管代码是不能直接访问Windows的内核的。所有我们必须先利用非托管代码写一个用户级(User level)的模块以便网络服务和PC卡的驱动程序之间可以相互交流数据。

  PC卡的驱动程序接口

  假设我们PC采集卡已安装到专用PC上,而且采集点到PC采集开的信号电缆也连接好。接下来的任务就是驱动程序开发人员开始开发硬件驱动程序。

  我们并不打算深入研究如何开发PC卡的硬件驱动程序。其实网上有很多介绍开发驱动程序的工具和资源,也有一些介绍在NT和XP下开发驱动程序差异的文章。我们的主要目的是关心采集数据的封装形式以及用户模块和驱动程序通讯的方法。

  我们准备有下面定义的结构来封装采集到的数据:

  typedef struct {

  unsigned long stationID;

  unsigned long state; // for management purposes

  unsigned long timeStamp;

  double temperature; // celcius

  double humidity; // percent
  
  double airPressure; // millibar

  } WEATHER_DATA, *PWEATHER_DATA;

    从PC卡读取数据我们可以利用Win32 API - DeviceIOControl(...)。为了调用该函数设备驱动程序和用户程序必须共享用户定义的IOCTL码。为了简单起见,我们用WEATHER_DATA结构表示用户程序和驱动程序共享的数据缓冲区。但是在实际应用中,应该小心谨慎,您可以参考微软的技术文章Q126416和Q186775。

  用户要求得到指定的采集点的天气信息的过程如下:

  1.用户程序分配WEATHER_DATA结构,设置 stationID 和 dataTag。

  2.用户程序利用Win32 API - CreateFile(...)打开与PC卡相关联的设备句柄。

  3.用户程序调用DeviceIOControl(),并将结构 WEATHER_DATA 作为参数。

  4.驱动程序处理调用,利用用户选择的数据采集点的数据填充WEATHER_DATA数据缓冲区。(在我们的例子中,用虚拟数据以模仿显示中的数据采集。)

  5.驱动程序返回数据个用户程序,结束DeviceIOControl()调用。
  
  6.用户程序处理得到的数据。

  以下的头定义文件为驱动程序和用户程序共用:

  // weather_common.h

  // Common definitions used by both user level module and

  // kernel driver

  //

  #define WEATHER_TYPE 40000

  // The IOCTL function codes from 0x800 to 0xFFF

  // are for customer use.

  #define IOCTL_GET_WEATHER_DATA

  CTL_CODE( WEATHER_TYPE, 0x900, METHOD_BUFFERED, FILE_READ_ACCESS FILE_WRITE_ACCESS)

  // Define common used weather data structure

  typedef struct {

  unsigned long stationID;

  unsigned long state;

  unsigned long timeStamp;

  double temperature;

  double humidity;

[1] [2] [3] 下一页 




上一篇:微软.NET战略和ASP.NET简介

下一篇:解读.NET Framework中的COM+与MTS

用.Net的Web服务实现天气预报 相关文章:
·图文详解 Windows 2003服务器集群安装
·如何实现局域网打印机共享
·Dell PowerEdge 2950 服务器 Windows 2003安装手册
·自己电脑做smtp服务器不求人
·解决与HTTP 500 – 内部服务器错误错误信息有关的问题
·TCP/IP编程实现远程文件传输
·Visual C++ 实现数字化图像的分割
·Helix流媒体服务器架设及RMVB制作教程
·Linux各种服务器的架设
·ASP.NET购物车的实现及结算处理
用.Net的Web服务实现天气预报 相关软件:
·TCP-IP详解卷2:实现
·勤哲Excel服务器 2007 V7.1.4 完整企业版
·黑客视频教程-网吧代理服务器使用灰鸽子端口映射方法
·Windows 2000 高级服务器版
·腾讯企业QQ 服务器端 V 3.0.3
·CS服务器插件AMX Mod X 1.76 中文版
·多线程ping服务系统V1.2
·asp.net服务器控件与组件开发
·架设自己的QQ服务器
·入侵天堂服务器修改人物

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot