一文了解在AP_EM上的骚操作
最近大家都对AP兴趣很大,也不知CP大家玩转了木有,反正咱也不知道咱也不敢问,这次楼主就扯下AP中的状态管理SM和执行管理EM部分。
言归正传:AP的应用,在通过工具配置后,会生成可供APP开发使用的代码和JSON的Manifest配置信息文件,经编译后APP会生成可执行文件BIN。
EM作为执行管理,其会负责读取APP的Manifest文件,获取APP的配置信息,不同的 APP在 Manifest 文件中被关联到不同的系统状态 (Machine State) 中,SM是状态管理,通过改变进程所属的功能组状态可对进程进行启动和停止,两者之间的关系如下:
首先,SM和EM其实从本质上看都属于AP的一个进程,在AP中每个进程的生命周期如下:
EM是AP第一个启动的进程,EM启动就绪后,EM将把MachineState的状态由OFF切换到Startup状态。
EM启动起来后会将SM的进程启动起来,SM可通过ExecutionClient::ReportExecutionState向EM报告此时自己进程的状态(每个进程都可通过该API向EM报告状态)。
SM正常启动运行起来后,就可通过StateClient::SetState函数对某个功能簇的工作状态进行控制,从而对隶属于相应功能簇的进程进行统一管理。
这里要介绍下功能簇的概念,功能簇可以理解为进程的集合,每个功能簇有自己的状态和过程,成为功能组Function Group States,功能组的最小单位就是一个进程,一个功能组可以配置一组进程,当SM请求相应功能组进入到对应状态时,配置在该状态下的进程都会被启动,下面就是个小示例:
其中,Machine State、Function Group1 和 Function Group2 为不同的功能组,A~F 代表不同的进程,为了简化,每个进程只有Idle、Running、Terminated三个进程状态。
进程 A 依赖于 Machinestate功能组的的 Startup 状态, EM 在启动后会Machine state 设置为 Startup状态,因此,EM 启动后将直接启动进程 A;而进程 A 为自终止进程,将在运行一次后自动终止。
进程 B 依赖于 Machinestate功能组的 Startup 和 Running 状态,同时依赖于进程 A 的终止状态,因此,进程 B 将在进程 A 终止后启动,而在 machine state 离开 Running 时终止。
进程 C 仅依赖于 Machinestate 的Running 状态,在 Machine state 进入 Runing 时启动,在离开Running 时终止。
进程 D 仅依赖于 FunctionGroup1 的 FG1:Running 状态。
进程 E 依赖于FG1:Running 和 FG2:Running 状态。
进程 F 依赖于FG2:Running 和 FG2:Fallback 状态
最新活动更多
-
4月23日火热报名中>> 莎益博多物理仿真技术介绍及案例在线研讨会
-
即日-4.30免费预约申请>> 艾睿光电-开阳及瑶光系列专家级红外热像仪-产品试用
-
5月8-10日立即报名>> 国际物流解决方案展览会
-
5月10日立即下载>> 【是德科技】精选《汽车 SerDes 发射机测试》白皮书
-
5月28日立即观看>> 【在线研讨会】Ansys镜头点胶可靠性技术及方案
-
即日-8.25立即报名>> OFweek2024中国优·智算力年度评选
- 1 赋能新质生产力 | 格力工业装备新品发布会圆满召开
- 2 iEi威强电医疗平板电脑IASO-W10B-N6210
- 3 苏州源控:打造优质计算机产品,助力生产生活高效便捷
- 4 Ansys 粉末/颗粒流多物理仿真技术介绍及案例网络研讨会4月23日正式上线!
- 5 劳易测合作伙伴Pizzato 新品上市|带锁定功能的NX系列RFID安全开关
- 6 博世力士乐2023年销售额再创新高 积极应对未来挑战
- 7 2024年海柔升级渠道政策体系,新产品、新服务全方位助力伙伴成长
- 8 劳易测5B系列光电传感器升级推出长光斑XL型号,性能强悍
- 9 创新驱动、开放共享、工具赋能,助力工业企业供应链数智化转型升级
- 10 【参会指南】2024星火生态大会邀您参会!
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论