色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何生成狀態機框架

麥辣雞腿堡 ? 來源:車端 ? 作者:車端 ? 2023-09-13 16:54 ? 次閱讀

生成狀態機框架

使用FSME不僅能夠進行可視化的狀態機建模,更重要的是它還可以根據得到的模型自動生成用C++或者Python實現的狀態機框架。首先在FSME界面左邊的樹形列表中選擇"Root"項,然后在右下角的"Name"文本框中輸入狀態機的名字"DoorFSM",再從"Initial State"下拉列表中選擇狀態"Opened"作為狀態機的初始化狀態,如圖6所示。

設置初始屬性

圖片

在將狀態機模型保存為door.fsm文件之后,使用下面的命令可以生成包含有狀態機定義的頭文件:

[xiaowp@linuxgam code]$ fsmc door.fsm -d -o DoorFSM.h

進一步還可以生成包含有狀態機實現的框架代碼:

[xiaowp@linuxgam code]$ fsmc door.fsm -d -impl DoorFSM.h -o DoorFSM.cpp

如果想對生成的狀態機進行驗證,只需要再手工編寫一段用于測試的代碼就可以了:

/*
* TestFSM.cpp
* 測試生成的狀態機框架
*/

#include "DoorFSM.h"

int main()
{
DoorFSM door;
door.A(DoorFSM::Close);
door.A(DoorFSM::Lock);
door.A(DoorFSM::Unlock);
door.A(DoorFSM::Open);
}

有限狀態機是由事件來進行驅動的,在FSME生成的狀態機框架代碼中,方法A()可以被用來向狀態機發送相應的事件,從而提供狀態機正常運轉所需要的"動力"。狀態機負責在其內部維護一個事件隊列,所有到達的事件都會先被放到事件隊列中進行等候,從而能夠保證它們將按照到達的先后順序被依次處理。在處理每一個到達的事件時,狀態機都會根據自己當前所處的狀態,檢查與該狀態對應的轉換條件是否已經被滿足,如果滿足的話則激活相應的狀態轉換過程。

使用下面的命令能夠將生成的狀態機框架和測試代碼編譯成一個可執行文件:

[xiaowp@linuxgam code]$ g++ DoorFSM.cpp TestFSM.cpp -o fsm

由于之前在用fsmc命令生成狀態機代碼時使用了-d選項,生成的狀態機框架中會包含一定的調試信息,包括狀態機中每次狀態轉換時的激活事件、轉換前的狀態、所經歷的轉換、轉換后的狀態等,如下所示:

[xiaowp@linuxgam code]$ ./fsm
DoorFSM:event:'Close'
DoorFSM:state:'Opened'
DoorFSM:transition:'closeDoor'
DoorFSM:new state:'Closed'
DoorFSM:event:'Lock'
DoorFSM:state:'Closed'
DoorFSM:transition:'lockDoor'
DoorFSM:new state:'Locked'
DoorFSM:event:'Unlock'
DoorFSM:state:'Locked'
DoorFSM:transition:'unlockDoor'
DoorFSM:new state:'Unlocked'
DoorFSM:event:'Open'
DoorFSM:state:'Unlocked'
DoorFSM:transition:'openDoor'
DoorFSM:new state:'Opened'
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 框架
    +關注

    關注

    0

    文章

    403

    瀏覽量

    17475
  • 狀態機
    +關注

    關注

    2

    文章

    492

    瀏覽量

    27529
  • python
    +關注

    關注

    56

    文章

    4792

    瀏覽量

    84628
收藏 人收藏

    評論

    相關推薦

    如何利用Linux下的工具來自動生成實用的狀態機框架

    (Finite State Machine),是一種應用非常廣泛的軟件設計模式(Design Pattern)。本文介紹如何構建基于狀態機的軟件系統,以及如何利用Linux下的工具來自動生成實用的狀態機
    的頭像 發表于 11-25 14:15 ?1354次閱讀
    如何利用Linux下的工具來自動<b class='flag-5'>生成</b>實用的<b class='flag-5'>狀態機</b><b class='flag-5'>框架</b>?

    [開源框架] 極簡信號/狀態機框架 NorthFrame

    NorthFrame 單片極簡信號/狀態機框架討論QQ群:431600056gitee地址:https://gitee.com/PISCES_X/NorthFrame單片開發中是否
    發表于 02-25 13:52

    狀態機舉例

    狀態機舉例 你可以指定狀態寄存器和狀態機狀態。以下是一個有四種狀態的普通狀態機。 // Th
    發表于 03-28 15:18 ?982次閱讀

    狀態機代碼生成工具

    狀態機代碼生成工具狀態機代碼生成工具狀態機代碼生成工具狀態機
    發表于 11-19 15:12 ?9次下載

    狀態機原理及用法

    狀態機原理及用法狀態機原理及用法狀態機原理及用法
    發表于 03-15 15:25 ?0次下載

    使用ModelSim自動生成狀態機FSM的狀態轉換圖

    HDL代碼設計中重要的內容之一就是設計程序的狀態機FSM,狀態轉換控制著整個程序的流程,為了理解程序,我們經常需要把狀態機狀態轉換圖畫出來,這樣看起來很直觀,但是,有沒有辦法自動
    發表于 02-10 15:39 ?1.5w次閱讀
    使用ModelSim自動<b class='flag-5'>生成</b><b class='flag-5'>狀態機</b>FSM的<b class='flag-5'>狀態</b>轉換圖

    狀態機概述 如何理解狀態機

    本篇文章包括狀態機的基本概述以及通過簡單的實例理解狀態機
    的頭像 發表于 01-02 18:03 ?1w次閱讀
    <b class='flag-5'>狀態機</b>概述  如何理解<b class='flag-5'>狀態機</b>

    FPGA:狀態機簡述

    本文目錄 前言 狀態機簡介 狀態機分類 Mealy 型狀態機 Moore 型狀態機 狀態機描述 一段式
    的頭像 發表于 11-05 17:58 ?7374次閱讀
    FPGA:<b class='flag-5'>狀態機</b>簡述

    什么是狀態機狀態機5要素

    玩單片還可以,各個外設也都會驅動,但是如果讓你完整的寫一套代碼時,卻無邏輯與框架可言。這說明編程還處于比較低的水平,你需要學會一種好的編程框架或者一種編程思想!比如模塊化編程、狀態機
    的頭像 發表于 07-27 11:23 ?2w次閱讀
    什么是<b class='flag-5'>狀態機</b>?<b class='flag-5'>狀態機</b>5要素

    MCU裸機編程的狀態機框架--第一部分

    MCU裸機編程的狀態機框架--第一部分1 狀態機的概念1.1 狀態機的要素1.2 狀態遷移表1.3 狀態
    發表于 12-09 13:21 ?17次下載
    MCU裸機編程的<b class='flag-5'>狀態機</b><b class='flag-5'>框架</b>--第一部分

    基于單片的極簡圖形化狀態機框架NorthFrame

    NorthFrame是基于非UML極簡理念的狀態機框架。配合NF_FsmDesigner圖形化開發工具,可無負擔替代傳統switch-case狀態機開發。
    發表于 02-08 15:44 ?3次下載
    基于單片<b class='flag-5'>機</b>的極簡圖形化<b class='flag-5'>狀態機</b><b class='flag-5'>框架</b>NorthFrame

    如何構建基于狀態機的軟件系統

    模式(Design Pattern)。本文介紹如何構建基于狀態機的軟件系統,以及如何利用Linux下的工具來自動生成實用的狀態機框架
    的頭像 發表于 09-14 10:55 ?1541次閱讀

    狀態機自動生成工具FSME

    狀態機中的各種狀態上,而不是程序本身的運行邏輯。 作為一種通用的軟件設計模式,各種軟件系統的狀態機之間肯定會或多或少地存在著一些共性,因此人們開始嘗試開發一些工具來自動生成有限
    的頭像 發表于 09-13 16:45 ?1459次閱讀
    <b class='flag-5'>狀態機</b>自動<b class='flag-5'>生成</b>工具FSME

    自動生成程序狀態機代碼狀態機建模方法

    首先運行fsme命令來啟動狀態機編輯器,然后單擊工具欄上的“New”按鈕來創建一個新的狀態機。FSME中用于構建狀態機的基本元素一共有五種:事件(Event)、輸入(Input)、輸出(Output
    的頭像 發表于 09-13 16:50 ?1135次閱讀
    自動<b class='flag-5'>生成</b>程序<b class='flag-5'>狀態機</b>代碼<b class='flag-5'>狀態機</b>建模方法

    什么是狀態機狀態機的種類與實現

    狀態機,又稱有限狀態機(Finite State Machine,FSM)或米利狀態機(Mealy Machine),是一種描述系統狀態變化的模型。在芯片設計中,
    的頭像 發表于 10-19 10:27 ?9451次閱讀
    主站蜘蛛池模板: 国产精品久久久久AV麻豆| 亚洲 欧美 日本 国产 高清| 久久不射电影网| 国产免费变态视频网址网站| 成人在线高清不卡免费视频| 91精品乱码一区二区三区| 亚洲色综合中文字幕在线| 亚洲国产cao| 亚洲精品久久久久一区二区三 | 91久久夜色精品| 韩国无遮羞禁动漫在线观看| 色尼玛亚洲综合| yellow视频免费观看| 毛片免费在线视频| 99蜜桃在线观看免费视频网站| 久久99AV无色码人妻蜜| 亚洲精品乱码8久久久久久日本 | 西西人体大胆牲交PP6777| 日产精品久久久久久久蜜殿| 日本人HD18HD18| 乳液全集电影在线观看| 试看2分钟AA片| 亚洲AV无码国产精品色午夜情| 亚洲精品电影久久久影院| 亚洲 中文 自拍 无码| 亚洲色欲国产免费视频| 影音先锋色小姐| 最新中文字幕在线视频| 99久久99| 国产成人精品三级在线| 国产毛片女人18水多| 久久yy99re66| 欧美男女爱爱| 无码专区久久综合久综合字幕| 亚洲精品成人AV在线观看爽翻| 伊人久久大香线蕉无码麻豆| 18岁男人女人插孔| 小伙无套内射老女人| 亚洲中文无码AV在线观看| 99re 这里只有精品| 大地影院日本韩国电影免费观看|