fsm 是当前状态+输入=末状态
参数表
Format is INITIAL_STATE: EVENT -> NEW_STATE
CLOSED: APP_PASSIVE_OPEN -> LISTEN
CLOSED: APP_ACTIVE_OPEN -> SYN_SENT
LISTEN: RCV_SYN -> SYN_RCVD
LISTEN: APP_SEND -> SYN_SENT
LISTEN: APP_CLOSE -> CLOSED
SYN_RCVD: APP_CLOSE -> FIN_WAIT_1
SYN_RCVD: RCV_ACK -> ESTABLISHED
SYN_SENT: RCV_SYN -> SYN_RCVD
SYN_SENT: RCV_SYN_ACK -> ESTABLISHED
SYN_SENT: APP_CLOSE -> CLOSED
ESTABLISHED: APP_CLOSE -> FIN_WAIT_1
ESTABLISHED: RCV_FIN -> CLOSE_WAIT
FIN_WAIT_1: RCV_FIN -> CLOSING
FIN_WAIT_1: RCV_FIN_ACK -> TIME_WAIT
FIN_WAIT_1: RCV_ACK -> FIN_WAIT_2
CLOSING: RCV_ACK -> TIME_WAIT
FIN_WAIT_2: RCV_FIN -> TIME_WAIT
TIME_WAIT: APP_TIMEOUT -> CLOSED
CLOSE_WAIT: APP_CLOSE -> LAST_ACK
LAST_ACK: RCV_ACK -> CLOSED
我的处理方案 当前状态+输入=末状态 2个状态一个输入恰好可以构成一个字符串用|连接,刚好组成一个数组,再遍历数组各个元素搜索状态,搜索输入 若匹配则将第3个赋予state
代码如下:
参数表
Format is INITIAL_STATE: EVENT -> NEW_STATE
CLOSED: APP_PASSIVE_OPEN -> LISTEN
CLOSED: APP_ACTIVE_OPEN -> SYN_SENT
LISTEN: RCV_SYN -> SYN_RCVD
LISTEN: APP_SEND -> SYN_SENT
LISTEN: APP_CLOSE -> CLOSED
SYN_RCVD: APP_CLOSE -> FIN_WAIT_1
SYN_RCVD: RCV_ACK -> ESTABLISHED
SYN_SENT: RCV_SYN -> SYN_RCVD
SYN_SENT: RCV_SYN_ACK -> ESTABLISHED
SYN_SENT: APP_CLOSE -> CLOSED
ESTABLISHED: APP_CLOSE -> FIN_WAIT_1
ESTABLISHED: RCV_FIN -> CLOSE_WAIT
FIN_WAIT_1: RCV_FIN -> CLOSING
FIN_WAIT_1: RCV_FIN_ACK -> TIME_WAIT
FIN_WAIT_1: RCV_ACK -> FIN_WAIT_2
CLOSING: RCV_ACK -> TIME_WAIT
FIN_WAIT_2: RCV_FIN -> TIME_WAIT
TIME_WAIT: APP_TIMEOUT -> CLOSED
CLOSE_WAIT: APP_CLOSE -> LAST_ACK
LAST_ACK: RCV_ACK -> CLOSED
我的处理方案 当前状态+输入=末状态 2个状态一个输入恰好可以构成一个字符串用|连接,刚好组成一个数组,再遍历数组各个元素搜索状态,搜索输入 若匹配则将第3个赋予state
代码如下:
var FSMData=[//构建数组 'CLOSED | APP_PASSIVE_OPEN | LISTEN', 'CLOSED | APP_ACTIVE_OPEN |SYN_SENT', 'LISTEN| RCV_SYN | SYN_RCVD', 'LISTEN| APP_SEND | SYN_SENT', 'LISTEN| APP_CLOSE | CLOSED', 'SYN_RCVD| APP_CLOSE | FIN_WAIT_1', 'SYN_RCVD| RCV_ACK | ESTABLISHED', 'SYN_SENT| RCV_SYN | SYN_RCVD', 'SYN_SENT| RCV_SYN_ACK | ESTABLISHED', 'SYN_SENT| APP_CLOSE | CLOSED', 'ESTABLISHED| APP_CLOSE | FIN_WAIT_1', 'ESTABLISHED| RCV_FIN | CLOSE_WAIT', 'FIN_WAIT_1| RCV_FIN | CLOSING', 'FIN_WAIT_1| RCV_FIN_ACK | TIME_WAIT', 'FIN_WAIT_1| RCV_ACK | FIN_WAIT_2', 'CLOSING| RCV_ACK | TIME_WAIT', 'FIN_WAIT_2|RCV_FIN | TIME_WAIT', 'TIME_WAIT|APP_TIMEOUT | CLOSED', 'CLOSE_WAIT| APP_CLOSE | LAST_ACK', 'LAST_ACK| RCV_ACK | CLOSED'] function traverseTCPStates(eventList){ var state = "CLOSED"; // initial state, always for(var i=0;i<eventList.length;i++) { if(! judge (eventList[i]) ) return state; //若返回false,不再进行,返回 } return state;//最终返回 function judge(_eventListPara){ //判断该输入是否有匹配,有的话更改state,返回//true,无返回false 更改state为error for(var j=0; j<FSMData.length; j++) { FSMData [j]=FSMData [j].replace(/\s+/g,'');//去空格因为数组不会自动去空格 var arr=FSMData [j].split("|");//剥离三个东东 if(arr[0]==state && arr[1]==_eventListPara) { state= arr[2]; return true; } } state ='ERROR'; return false; } }
发表评论
-
vue
2017-06-03 19:41 0比如 假如没有添加上响应式属性的话,那么就会出现b只是一个简 ... -
自动配置代理
2017-02-13 15:42 1614有些时候 手机或者pc上面需要频繁的切换代理与取消代理,感觉切 ... -
对话框回调
2017-01-11 10:26 872今天遇见一个需求 在提交数据时需要同时弹出3个确认菜单,点击了 ... -
svg, 支持mouseover
2017-01-09 18:07 1072今天项目中的需求,是在一个fill后的svg path上面加上 ... -
vue 生命周期钩子
2017-01-07 22:11 1692和生命一样,vue组件创 ... -
vue,vue-router,vux,综合
2017-01-04 17:36 948实例化vue实例时初始化router store 状态管理。触 ... -
分享vue脚手架工具,vue-cli
2017-01-04 15:42 775脚手架渲染原理: 下面 ... -
平时chrome调试遇见的 浏览器优化
2017-01-04 11:23 459js基础:在一个事件处理器(click)会形成一个闭包,可以访 ... -
百度文库复制方法
2015-11-11 10:24 1166即时对象初始化方法 (function(){ //cod ... -
js array对象的迭代方法
2015-07-16 12:09 683所有方法都接受两个参数:(fn,ctx); 默认的函数里面ct ... -
qq空间刷评论工具
2015-06-25 17:48 884var a=document.getElementsB ... -
jquery内部链式调用机理
2015-06-07 21:17 1086只需要在调用该对象合适(比如下列的setStyles)的方法后 ... -
this问题 js
2015-06-07 21:08 458任何一个函数都可以被当做构造函数使用!并且new了之后一定是返 ... -
js delete 删除机理以及它的内存泄露问题的解决方案
2015-06-02 12:43 918delete删除属性时只是解除了属性与对象的绑定,故当属性值为 ... -
浮动布局
2015-05-13 17:27 0c由于其宽度略大于右边的空格,故不会飘到右边去,会被卡住 恰好 ... -
zoom.js
2015-05-12 19:01 708它的基于bootstrap 的https://raw.gith ... -
jquery-avgrund
2015-05-12 12:31 0先引入这些文件 <link r ... -
workmark
2015-05-10 18:07 483在一个容器当中 指定 ... -
jquery
2015-05-09 16:33 0$(document).ready(function(){ ... -
豆瓣电影首页的分析
2015-05-08 22:48 845网址http://movie.douban.com 1 先上 ...
相关推荐
标题中的"fsm_hello_fsm_hello_FSM_"似乎是一个与有限状态机(Finite State Machine,FSM)相关的项目或文件命名约定,其中"hello"可能代表一个示例或特定的模块,而"FSM"是有限状态机的缩写。在描述中,我们只有一...
有限状态机(FSM)是数字电子系统中的一种重要模型,用于设计和分析具备一定决策能力的系统。本文讨论了在可编程逻辑器件(PLD)中实现FSM的分析,特别是通过VHDL语言的描述和在EMP7032可编程逻辑器件上的合成特性...
标题中的"FSM.rar_FSM_FSM MATLAB"表明这是一个与MATLAB相关的文件,重点在于"FSM",它可能是“Focal Spot Measurement”的缩写,因为描述中提到了"Measurement of focal spot size using knife edge method",这...
`otg_fsm.rar_FSM_otg`这个标题暗示了我们讨论的是关于ChipIdea USB IP核心中的OTG FSM驱动程序。 `otg_fsm.c`文件很可能是实现这个驱动的核心代码,它包含了FSM的定义、状态转换逻辑以及与OTG相关的操作处理。在...
在介绍如何在Verilog中编写FSM之前,我们需要先理解摩尔状态机与米利状态机的区别。摩尔状态机的输出信号在时钟的上升沿之前是不会改变的,这意味着无论输入信号何时改变,只要它们是在当前时钟周期内,输出信号的...
视频中工程代码 class8_FSM视频中工程代码 class8_FSM视频中工程代码 class8_FSM视频中工程代码 class8_FSM视频中工程代码 class8_FSM视频中工程代码 class8_FSM视频中工程代码 class8_FSM视频中工程代码 class8_FSM...
在数字电路设计中,有限状态机(Finite State Machine,简称FSM)是一种重要的控制结构,它能够使硬件系统按照预定义的顺序执行一系列操作。本文主要探讨了如何使用Verilog语言来描述和实现FSM,特别是Moore FSM和...
在这个“fsm.rar”压缩包中,我们可以找到关于FSM设计的资源,特别是用VHDL编写的FSM代码。 FSM是一种逻辑控制单元,它可以被设计成具有多个状态,并根据输入信号和当前状态进行转换。这些状态之间的转换由一组预...
通过这个`fsm.zip`文件,初学者可以学习如何定义状态、事件和转换,理解FSM的工作原理,并尝试编写自己的FSM实现。同时,也可以通过实例分析,加深对FSM在实际问题中的应用理解。对于进一步深入学习,推荐了解形式...
FSM(Finite State Machine,有限状态机)是一种常用的同步时序方式设计方法,广泛应用于 FPGA 设计中。FSM 状态机设计规则是指在设计 FSM 时需要遵守的一些基本原则和方法,以确保设计的正确性和可靠性。 首先,...
在这个"用Verilog语言编写的交通灯(FSM)"项目中,我们关注的是如何使用Verilog来实现一个状态机(FSM),模拟实际生活中交通灯的运行规律。 交通灯的控制逻辑可以通过有限状态机来实现,这是一种非常常见且实用的...
### FSM-60S光纤熔接机:详细操作指南与安全规范 #### 一、重要安全须知 在使用FSM-60S光纤熔接机之前,必须全面理解并严格遵守以下安全规程和警告: 1. **环境条件**:确保工作区域干净、无尘、通风良好,并远离...
在这里,它被用来读取描述FSM状态和转换的数据,并生成对应的C源代码,这可以极大地简化编程工作,特别是在处理复杂的状态变化逻辑时。 使用awk脚本来生成C代码的优势在于: 1. **简洁性**:awk的语法简洁,可以...
总之,FSM是一个强大的工具,它可以帮助开发者将复杂逻辑分解为一系列清晰、独立的状态和转换,从而简化代码,提高可读性和可维护性。通过分析“FSM有限状态机demo”,我们可以学习如何构建和使用FSM,将这种理论...
有限状态机(FSM)是一种广泛应用于数字系统设计中的重要工具。它不仅被用来解决复杂的逻辑控制问题,还能有效地简化设计流程并提高系统的整体性能。在不同的编程语言中,FSM的实现方式各有特色。本文将重点探讨如何...
标题中的“FSM状态机生成工具”是指一种用于创建有限状态机(Finite State Machine, FSM)的软件工具,它特别适用于编程领域。FSM是一种计算模型,由一系列状态、转移条件和动作组成,广泛应用于软件工程、计算机...
论文中指出,在FSM设计中,输出逻辑可以由组合逻辑产生,基于状态的比较,或者直接从特定状态位派生。然而,注册输出(即通过寄存器产生的输出)在合成优化中表现出显著优势。注册输出减少了毛刺现象,增强了设计的...
状态机(Finite State Machine, FSM)是数字系统设计中一种重要的概念,特别是在VHDL这样的硬件描述语言中,它被广泛用于实现各种控制逻辑。在本压缩包“fsm.rar”中,我们可以看到一系列与FSM相关的VHDL代码实例,...
有限状态机(FSM,Finite State Machine)是数字系统设计中的一个重要概念,尤其在FPGA(Field-Programmable Gate Array)开发中扮演着核心角色。这篇教程将深入讲解FSM设计的基本原理、技巧和方法,帮助FPGA新手...
SNOW 3G,全称为“Simplified New Orthogonal Frequency Division Multiplexing ...在研究“SNOW3G FSM”的过程中,对压缩包中的“FSM”文件进行深入分析,可以揭示算法的细节,帮助我们更好地理解和实现这一加密技术。