概述:
大灯页面(LampPage)主要包括:OFFbtn、Autobtn、ParkLampbtn、HeadLampbtn 这个四个 状态。我们就先简单的分析下。
1: LampPageController 页面
这个controller页面维护两个页面(FirstPage和SecondPage),其中FirstPage是 大灯Icon图标显示 ,SecondPage是大灯Icon点击展开之后的页面。按照之前的分析 策略,我们还是从 Binding 、StateManager、NodeCompent这三个方面入手。
- Binding : 空
- StateManager : SM_LampPageController ,这个状态机有两种状态:FirstPage和SecondPage 其中 初始化默认是 FirstPage,通过属性Zone1.LampPageController控制,而这个属性值初始化,是在 LampPageController的 Custom菜单 下设置的。
- Node Compent : 空
2:LampPageController/FirstPage/Button 2D
这是一个将 FirstPage切换到 SecondPage的按钮。
- Binding : 空
- stateManager : SM_Zone1LampIsDown ,它的控制属性是系统属性:ButtonConcept.IsPressed(Is Down),并且每个状态都会绑定一张 Image (这个功能是比较有用的,因为它可以 在点击的时候,可以切换icon的颜色)
- Node Compent:设置点击时间Click ,在点击的时候,切换到 SecondPage Zone1.LampPageController= SecondPage (这个是 通过LampPageController 的StateManager状态机来切换 的)
3:LampPageController/SecondPage
secondPage页面主要功能如下:需要获取大灯开关的实际状态,然后将这个实际状态显示在仪表上。
- Binding: [Zone1.MainLghtSw] = {#root/Zone1.MainLghtSw} 绑定Zone1区域大灯的状态。并控制下面的 StateManager状态机 SM_LampMainLightSwitch
- StateManager : SM_LampMainLightSwitch 四种大灯状态,被属性 Zone1.MainLghtSw控制着。
- Node Compent:空
3.1 :LampPageController/SecondPage/OFFbtn
- Binding: 空
- stateManager : SM_Zone1LampIsDown ,它的控制属性是系统属性:ButtonConcept.IsPressed(Is Down),并且每个状态都会绑定一张 Image (这个功能是比较有用的,因为它可以 在点击的时候,可以切换icon的颜色)
- Node Compent:设置三个属性
- Button::click ----->修改 Zone1.LampPageController= FirstPage
- Button::Enter ----->发送ui 点击事件 Zone1::MLSVCUReqst=1
- Button::Leave ---->发送ui 点击事件 Zone1::MLSVCUReqst = 0
3.2 :LampPageController/SecondPage/Autobtn
- Binding: 空
- stateManager : SM_Zone1LampIsDown ,它的控制属性是系统属性:ButtonConcept.IsPressed(Is Down),并且每个状态都会绑定一张 Image (这个功能是比较有用的,因为它可以 在点击的时候,可以切换icon的颜色)
- Node Compent:设置三个属性
- Button::click ----->修改 Zone1.LampPageController= FirstPage
- Button::Enter ----->发送ui 点击事件 Zone1::MLSVCUReqst= 2
- Button::Leave ---->发送ui 点击事件 Zone1::MLSVCUReqst = 0
3.3 :LampPageController/SecondPage/ParkLampbtn
- Binding: 空
- stateManager : SM_Zone1LampIsDown ,它的控制属性是系统属性:ButtonConcept.IsPressed(Is Down),并且每个状态都会绑定一张 Image (这个功能是比较有用的,因为它可以 在点击的时候,可以切换icon的颜色)
- Node Compent:设置三个属性
- Button::click ----->修改 Zone1.LampPageController= FirstPage
- Button::Enter ----->发送ui 点击事件 Zone1::MLSVCUReqst= 3
- Button::Leave ---->发送ui 点击事件 Zone1::MLSVCUReqst = 0
3.4 :LampPageController/SecondPage/HeadLampbtn
- Binding: 空
- stateManager : SM_Zone1LampIsDown ,它的控制属性是系统属性:ButtonConcept.IsPressed(Is Down),并且每个状态都会绑定一张 Image (这个功能是比较有用的,因为它可以 在点击的时候,可以切换icon的颜色)
- Node Compent:设置三个属性
- Button::click ----->修改 Zone1.LampPageController= FirstPage
- Button::Enter ----->发送ui 点击事件 Zone1::MLSVCUReqst= 4
- Button::Leave ---->发送ui 点击事件 Zone1::MLSVCUReqst = 0