在SmartPhone上实现类似城管通的系统

     这段时间参与了一个项目,我被分派的任务是做一个类似与城管通的运行于smartphone上的软件,基于windows ce 5.0 +  windows mobile smartphone sdk,因为此前对次一无所知,我们公司此前也没有做过,都是外包给别的公司做的,因为考虑到接下来还有较多类似项目,所以想借此机会,自己把它拿下。

    通过内部的协调,这块任务的安排是由我和项目经理共同完成,我主要负责应用端的,而他主要负责服务器端的,通过初步分析,我们概括出几大技术难点:

    1)XML技术:主要用于系统的配置,元数据定义;

    2)数据压缩:因为是通过gprs传送数据,所以数据容量应尽可能的小,主要数据包括照片或者语音等;

    3)电话功能:单键拨号;

    4)拦截短消息:因为服务器端是通过短消息的方式给应用端发送短消息,因此程序需要能够拦截特定的短消息;

    5)获取系统中的各种资源:资源包括照片,语音等等,还有可能包括设备的控制,比如启用摄像头等等;

    6)GPRS发送数据:数据压缩后通过gprs进行发送,这里面涉及的技术细节较多,我对此目前还是比较模糊,下文将就gprs这块做详细说明,当然还有很多疑惑目前不得而知。

    通过两周的学习,随着对智能手机的逐步了解,最终决定采用.net cf + vs2005的方式进行开发,当然还是使用自己习惯的语言C#,MFC 尽管之前也用过,但已经丢下好一段时间了,考虑到时间问题(只有一个多月的时间),采用了较为稳妥的方法。

   1、 XML方面已经有了一些较为简单但适用的类,应该不存在太大问题;

    2、数据压缩方面使用目前开发源代码的SharpZipLib;从官方网站下载压缩包的话,里面还带有一些sample可以参考。使用起来也很方面,目前还不知道如何实现分卷压缩,但这个问题也不是重点。

   3、单键拨号的功能事实上很简单,只需要调用一个api就完事了,so easy!api还真是好东西。

    4、拦截短消息方面,微软包装了一个类(MessageInterceptor),通过它,只需要简单的几行代码,即可实现短信拦截,但目前还没有开始进行测试。

    5、目前只需要找到图片和语音,采用一个类似于openfiledialog的form,找文件也算是比较方便,这些类也是包含在MSDN上提供的sample solution中的,以微软的实力,这些东西的测试都可以省了,在此感谢他们:)

    6、GPRS方面可以说是我目前碰到的最大的障碍了,在网上看了很多帖子,搜了很多资料,适用的好少,看的懂的就更少了,感谢csdn上的几位前辈,让我多了一些了解。在此我摘抄一些片段:

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

下面的图例为   串行接口和以太网口   在INTERNET   上传输的比较  
   
                                -----                     应用层                         --------            
  __________________                                                                 __________________  
  |                                     |                                                                    |                                    |  
  |         TCP                    |                         传输层                               |             TCP               |  
  |----------------|                                                                                    |----------------|      
  |           IP                      |                         网络层                                |             IP                   |  
  |----------------|                                                                                    |----------------|  
  |         PPP协议            |                         数据链路层                       |         以太网协议       |    
  |----------------|                                                                                    |----------------|  
  |       串行接口              |                         物理层                               |           以太网             |  
  |________________|                                                                    |________________|    
   
   
   
  GPRS模块   首先通过AT命令   拨号   ,如中国移动的“*99***1#”,如果   CONNECT   OK的话,那么就说明物理层已经连通了。  
  那么接着要做的 工作 就是连通   数据链路层   ,那么就是   PPP协议了。  
      PPP协议包括   LCP(链路控制协议),NCP(网路控制协议),  
      也就是说物理层连通之后,首先就要通过LCP协议   来配置   串口线路的各项数据格式,和双方的传送数据的约定(详见   RFC,后面结尾会列出RFC的具体文件,供参考),之后就是NCP协议了,NCP   主要是获得IP地址,以及以后在PPP封装中的IP报文的一些具体约定。  
      之后就可以在PPP报文中封装IP报文进行传送了。  
      TCP层,当然就是按照TCP协议建立稳定可靠的TCP连接,  
      最终在物理层(串行线路)传送的的数据格式应该如下了  
      _____________________________________________________  
      |     PPP数据头     |     IP数据头     |     TCP数据头     |       数据       |  
      |_____________|____________|_____________|__________|  
   
  1549   PPP   in   HDLC   Framing    
  1552   The   PPP   Internetwork   Packet   Exchange   Control   Protocol   (IPXCP)    
  1334   PPP   Authentication   Protocols    
  1332   PPP   Internet   Protocol   Control   Protocol   (IPCP)    
  1661   Link   Control   Protocol   (LCP)    
  1990   PPP   Multilink   Protocol    
  2125   The   PPP   Bandwidth   Allocation   Protocol   (BAP),   The   PPP   Bandwidth   Allocation   Control   Protocol   (BACP)    
  2097   The   PPP   NetBIOS   Frames   Control   Protocol   (NBFCP)    
  1962   The   PPP   Compression   Control   Protocol   (CCP)    
  1570   PPP   LCP   Extensions    
  2284     PPP   Extensible   Authentication   Protocol   (EAP)   )

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

DTE是指数据终端设备,比如你可以认为PC就是一个DTE(当它利用MODEM通信时,而MODEM就是DCE)。如果你是在 开发 手机上运行的软件的话,那么应该可以找到相应的接口获得IP而不使用PPP。但是如果你是开发PC、DTE上利用GPRS   MODEM上网的软件,那么目前没法绕过PPP。

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

暂时先写这些,后续有什么发现,再追加上来,希望到时候这篇文章不会臃肿不堪。
在项目完成之后,到时会做一个总体的介绍,时间大概是在半个月之后吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值