`
xwangly
  • 浏览: 131904 次
  • 性别: Icon_minigender_1
  • 来自: 鄂州
社区版块
存档分类
最新评论

Wifi层次结构状态机(一)

 
阅读更多

Android2.3中Wifi的状态都是在WifiStateTracker中维护的,4.0中将Wifi的状态全部放到WifiStateMachine中维护了。这篇文章不去深究Wifi的问题,只以Wifi为例,来分析层次结构状态机的原理。
WifiStateMachine继承于StateMachine,StateMachine是一个层次结构的状态机,它可以处理一些消息,并维护一个层次结构的状态。

 先来看看状态是什么?状态很简单,只有自已的名字(如"Connecting"表示当前正在连接Wifi),然后还有一个处理函数processMessage,它接收一个Message参数,顾名思义,它是用来处理某个事件。另外还有两个函数enter和exit,表示进入该状态和退出该状态作的一些一般操作,如enter可能会做一些初始化操作,而exit会做一些清理工作。
状态机被创造后,需要初始化它的层次结构状态,并设置其初始状态。如下面一段代码:

 

StateMachine sm = /*Create a state machine*/;
 
sm.add(mP0, null);
 
    sm.add(mP1, mP0);
 
        sm.add(mS2, mP1);
 
            sm.add(mS3, mS2);
 
            sm.add(mS4, mS2);
 
        sm.add(mS1,mP1);
 
            sm.add(mS5, mS1);
 
    sm.add(mS0, mP0);
 
sm.setInitialState(mS5);

 

 

初始后的状态机形如一个树状结构,如下图所示: 

 

分享到:
评论

相关推荐

    android wifi 工作原理

    #### 二、Android层次结构与WiFi关联 Android系统的层次结构主要包括以下几个层面: 1. **Linux内核及驱动层**:这是Android的基石,负责处理底层硬件资源管理和核心服务,包括WiFi硬件的驱动支持。 2. **本地库与...

    Android_WiFi工作原理

    **1.2 Android层次结构** Android系统基于Linux内核,并通过多层封装提供了丰富的API,使得开发者可以像编写普通的Java程序一样来开发Android应用程序。具体来说,Android的层次结构如下: 1. **Linux内核及驱动层...

    wifi android framework

    Android的Wi-Fi框架由多个层次组成,涵盖了应用程序、服务、状态机、驱动程序及底层硬件通信等多个方面: 1. **应用程序层**:主要由`WifiSettings.java`构成,提供了用户界面来控制Wi-Fi连接,包括开关、扫描AP、...

    android wifi+蓝牙的工作流程

    ### Android上的WiFi与蓝牙工作流程详解 #### 一、引言 ...综上所述,无论是WiFi还是蓝牙模块,在Android系统中都有着非常复杂的内部结构和工作流程。了解这些细节对于深入理解和优化无线通信功能至关重要。

    flamebot:构建动态状态机来驱动自主机器人

    您还可以展开和折叠层次结构以查看其他状态。 如果要编辑代码,则需要运行 coffeescript 编译器: coffee -bcw --output 。 来源/ 我在演讲中介绍了一个早期版本: : 添加: 通过网络应用程序发送事件(wifi ...

    c# wifi程序源代码

    扫描完成后,通过WlanInterface的WlanQueryInterface方法获取扫描结果,这将返回一个包含SSID、信号强度等信息的WlanAvailableNetwork结构数组。然后,可以使用WlanConnect方法连接到指定的WiFi网络。 6. 事件驱动...

    WLAN Direct overall structure and relevant process overview.doc

    - **StateMachine**: 状态机是处理消息并具有层次结构状态的机制。例如,`mP0`是顶层状态,下面分支为`mP1`和`mS0`,`mS0`再分支为`mS1`、`mS2`、`mS3`和初始状态`mS5`。当接收到消息时,处理顺序通常是`mS5`、`mS1...

    Android WiFi工作原理.pdf

    Android的层次结构和源代码结构对于Wi-Fi的实现至关重要。 1.1 Android基础知识 Android操作系统提供了丰富的Java API,即Android API,使得开发者能够使用Java语言进行应用程序开发,降低了开发难度,提高了用户...

    Android应用源码之手机通过wifi控制电脑程序源码.zip

    该压缩包文件“Android应用源码之手机通过wifi控制电脑程序源码.zip”包含的是一个Android应用程序源代码,其核心功能是实现手机通过Wi-Fi网络远程控制电脑上的程序。这个功能在很多场景下非常实用,比如远程桌面...

    基于WiFi技术的智能家居系统设计.pdf

    本文档《基于WiFi技术的智能家居系统设计.pdf》详细阐述了如何基于WiFi技术来设计一个智能家居系统,包含系统设计的三大功能模块:控制、采集和分析,以及整体的系统结构和模块设计。 首先,智能家居系统设计的基本...

    WPF实现简单的网络检测.zip

    Material Design是Google推出的一种设计语言,旨在提供一致、直观、富有层次感的用户体验。在WPF中,有多个库如MahApps.Metro和MaterialDesignInXamlToolkit可以帮助开发者实现Material Design风格的界面。在这个...

    物联网工程_基于stm32的自动施肥机.docx

    3. **无线网络通信**:系统采用WIFI组网方式实现远程数据传输,确保用户能够实时监控施肥机的工作状态并远程控制设备。通过这种方式,不仅提高了系统的灵活性,还增强了用户体验。 4. **传感器集成**:多类型传感器...

    Charles_win.zip

    结构视图显示了抓取的数据包的层次结构;查看器则详细展示了每个请求或响应的详细信息,包括HTTP头、请求参数、响应内容等;摘要部分提供了数据包的基本信息,如URL、状态码、时间戳等;断点功能允许我们在特定请求...

    Android 体系结构介绍.doc

    Android 的体系结构可以分为四个主要层次:操作系统层(OS)、各种库(Libraries)及运行时环境(RunTime)、应用程序框架(Application Framework)以及应用程序(Application)。每一层都扮演着不同的角色,并相互协作,共同...

    Android程序开发学习笔记(手电筒软件设计).doc

    **Android软件层次结构** Android软件栈是一个多层结构,从底层的Linux内核开始,向上包括HAL(硬件抽象层)、库、运行时环境和应用程序框架,最后是应用程序本身。Dalvik Virtual Machine(DVM)是Android特有的...

    Zguide文档中文翻译

    状态机是一种常见的编程模型,用于描述对象的状态变化。在ZeroMQ中,状态机可以用于管理复杂的通信流程。 **使用SASL进行身份验证:** SASL(Simple Authentication and Security Layer)是一种通用的身份验证框架...

    移动式服务机器人混合控制器关键技术研究.pdf

    然而,当前的移动式服务机器人控制系统由于功能的复杂性往往导致成本增加,结构变得复杂,并且实时性表现不佳,这对于在中低成本层次的产品应用造成了限制,严重影响了移动机器人智能化发展的步伐。 在这样的背景下...

    基于无线技术的井下综合信息平台(WIFIzigbee解决方案).pptx

    系统整体网络结构涉及多个开发课题,包括基于ZIGBEE和WI-FI的井下信息平台设计、多通道多任务通讯规约、车辆自定位算法、车载通讯机设计、交通信号管制系统、人机定位及交通管制系统的数学模型,以及智能动态库数学...

Global site tag (gtag.js) - Google Analytics