[发明专利]有限状态机的实现方法及装置在审
申请号: | 201610052909.0 | 申请日: | 2016-01-26 |
公开(公告)号: | CN106997293A | 公开(公告)日: | 2017-08-01 |
发明(设计)人: | 李永海 | 申请(专利权)人: | 上海大唐移动通信设备有限公司;大唐移动通信设备有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京路浩知识产权代理有限公司11002 | 代理人: | 王莹 |
地址: | 200233 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 有限状态机 实现 方法 装置 | ||
技术领域
本发明涉及计算机通信技术领域,尤其涉及一种有限状态机的实现方法及装置。
背景技术
现有有限状态机的方案设计,switch,if(else)判断分支过多,不易阅读、增减、扩展;同时,继承c++不重复发明轮子的思想采用C++容器实现业务状态机模型。且线程不安全的,多线程,多进程操作需要保证同步,速度会受到影响,现有的状态机三方库虽然功能全面,但不够灵活,本方案介绍的是一种根据业务需求且可定制的、灵活、精简的方案。
发明内容
本发明提供一种有限状态机的实现方法及装置,用于解决现有技术中操作实现效率低的问题。
第一方面,本发明提供一种有限状态机的实现方法,包括:
当状态机接收到用户终端发来的状态请求时,根据对象标识符在对象状态集中确定当前对象的状态标识符;
根据当前对象的状态标识符和状态切换条件在状态查找字典中查找下一个状态标识符并更新对象状态集中的相应状态标识符;
其中,所述对象标识符和所述状态切换条件根据所述状态请求获得;所述对象状态集包括所有对象标识符和对应的当前的状态标识符;下一个状态标识符为当前的状态标识符或更新后的状态标识符。
优选地,若所述状态切换条件与预设状态切换条件匹配,则更新对象状态集中对应的对象标识符中的当前状态标识符;反之,保持当前的状态标识符。
优选地,所述状态查找字典的建立,包括:
对预设的每个对象状态设置一查找处理器;
所述查找处理器以本身对象状态为当前对象状态,根据对应的预设状态切换条件建立响应关系,确定对应的跳转对象状态,并结合当前对象状态和确定的跳转对象状态获取查找链表;
将获得的所有查找链表存储以形成对象查找字典。
优选地,所述查找链表的获取,包括:
对每个预设的对象状态匹配唯一的状态标识符;
任选一对象状态为当前对象状态;
根据当前对象状态与当前对象状态对应的状态切换条件查找,获得与当前对象状态建立响应关系的跳转对象状态,并确定所述跳转对象状态对应的状态标识符;
根据当前对象状态的状态标识符获得当前链表单元;
根据跳转对象状态的状态标识符、状态切换条件和发生事件获得发生链表单元;
根据当前链表单元和发生链表单元获得当前对象状态的查找链表。
优选地,根据当前链表单元和发生链表单元获得当前对象状态的查找链表,包括:
使当前链表单元和发生链表单元设置有链码;
当前链表单元通过链码与任选一事件对象状态的发生链表单元的标识符链接;
完成链接的发生链表单元通过链码与下一个事件对象状态的发送链表单元的标识符链接;
直到链接一空单元。
优选地,每个查找链表中本身对象状态与事件对象状态之间的响应关系为一一响应关系。
优选地,每个查找链表中以本身对象状态建立的响应关系至少为 一个。
另一方面,本发明提供一种有限状态机的实现装置,包括:
状态信息获取模块,用于当状态机接收到用户终端发来的状态请求时,根据对象标识符在对象状态集中确定当前对象的状态标识符;
判断模块,用于根据当前对象的状态标识符和状态切换条件在状态查找字典中查找下一个状态标识符并更新对象状态集中的相应状态标识符。
优选地,还包括字典生成模块,用于根据预设所有状态名、状态标识符、状态切换条件和发生事件建立状态查找字典,其中,所述字典生成模块包括:
配置模块,用于对预设的每个对象状态设置一查找处理器;
链表建立模块,用于使查找处理器以本身对象状态为当前对象状态,根据对应的预设状态切换条件建立响应关系,确定对应的跳转对象状态,并结合当前对象状态和确定的跳转对象状态获取查找链表;
链表存储模块,用于将获得的所有查找链表存储以形成对象查找字典。
优选地,所述链表建立模块包括:
标识符匹配单元,用于对每个预设的对象状态匹配唯一的状态标识符;
选择单元,用于任选一对象状态为当前对象状态;
筛选识别单元,用于根据当前对象状态与当前对象状态对应的状态切换条件查找,获得与当前对象状态建立响应关系的跳转对象状态,并确定所述跳转对象状态对应的状态标识符;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海大唐移动通信设备有限公司;大唐移动通信设备有限公司,未经上海大唐移动通信设备有限公司;大唐移动通信设备有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610052909.0/2.html,转载请声明来源钻瓜专利网。