Shifu高级功能:实现FSM(有限状态机)
创始人
2025-05-29 20:53:32
0

介绍

有限状态机(英语:finite-state machine,缩写:FSM)又称有限状态自动机(英语:finite-state automaton,缩写:FSA),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学计算模型。查看百度百科

FSM由一些状态和转移构成,每个状态表示系统的一种潜在状态,每个转移表示从一个状态到另一个状态的转换。FSM的运行过程是通过接收输入来触发转换的,当FSM接收到一个输入时,它会从当前状态转移到下一个状态。

在工程学中,FSM可以用来描述机器的控制系统。例如,一个机器的控制系统可能有多种状态,比如“运行”、“暂停”、“停止”等。每种状态都有不同的输入和输出,并且有不同的转移规则。例如,当机器处于“运行”状态时,接收到“暂停”的输入可能会使机器转移到“暂停”状态,而接收到“停止”的输入可能会使机器停止运行。

设计

在MQTTDeviceShifu中实现最简单的FSM模型。设备初始状态为空闲状态。在使MQTTDeviceShifu向设备发送控制命令(controlMsg)后,设备由空闲状态转移到忙碌状态(设备处于忙碌状态时,阻止其它控制命令的接收);在设备完成该控制命令时,设备会向MQTT Broker返回完成信息,设备由忙碌状态转移到空闲状态。

file

file

功能

在您的集群中运行下面的命令,向设备发送moving_the_device控制命令(可以通过不同的API选择向不同的topic发布,这里选择topic1对应的get_topicmsg1),设备进入忙碌状态:

sudo kubectl exec -it nginx -- curl -X POST -d 'moving_the_device' http://deviceshifu-mqtt.deviceshifu.svc.cluster.local/get_topicmsg1  

设备在忙碌状态时会拒绝接收新的控制命令(包括拒绝其它topic发来的控制命令或普通消息,但仍然可以通过这些topic获取设备状态等消息)。

在忙碌状态时发送新的rotating_the_device控制命令:

sudo kubectl exec -it nginx -- curl -X POST -d 'rotating_the_device' http://deviceshifu-mqtt.deviceshifu.svc.cluster.local/get_topicmsg1

MQTTdeviceShifu返回如下:

Device is blocked by moving_the_device controlMsg now! 2023-01-02 07:14:28.324501338 +0000 UTC m=+67770.982000572

在设备完成控制命令后,会向MQTT Broker发送该控制命令完成的响应,恢复空闲状态。

使用mosquitto模拟设备完成moving_the_device时,返回对应的完成信息device_finished_moving:

sudo kubectl exec -it deploy/mosquitto -n devices -- mosquitto_pub -h localhost -d -p 1883 -t /test/test1 -m "device_finish_moving" 

此时,设备已恢复空闲状态,可以接收其它控制命令。

使用

根据需要自定义设备控制命令controlMsg及其对应的完成响应,均在examples/mqttDeviceShifu/mqtt_deploy/mqtt_edgedevice.yaml文件中配置。

...
data:...controlMsgs: | # 可选,配置controlMsgs(控制命令和相应完成响应的集合),格式为"key: value"。key是通过任意topic向设备发送的控制命令,设备执行控制命令时进入忙碌状态,拒绝接收其它控制命令,value是设备返回的完成响应,表示设备已完成对应控制命令,恢复空闲状态  Moving_the_device: "Device_finished_moving" # 修改此行Rotating_the_device: "Device_finished_Rotating" ... # 根据自己的需要可继续配置controlMsgs及对应完成响应,只需按照此格式继续添加即可

本文由边无际授权发布

相关内容

热门资讯

太空光伏概念盘初活跃,连城数控... 5月12日消息,太空光伏概念活跃,连城数控涨超9%,拉普拉斯、中来股份、奥特维、亚玛顿、迈为股份涨幅...
韩国KOSPI指数持续下挫,日... 5月12日消息,韩国KOSPI指数持续下挫,日内跌超5%。(科股宝播报)
机器人概念逆势活跃,百达精工涨... 5月12日消息,机器人概念逆势活跃,百达精工涨停,唯科科技、华瑞股份涨超10%,晋拓股份、万达轴承、...
中信证券:预计供需利好共振有望... 5月12日消息,中信证券研报指出,近期非洲锂资源供应扰动未解除,国内锂云母供应或迎来新的变量,Gre...
日经225指数涨幅扩大至1%,... 5月12日消息,日经225指数涨幅扩大至1%,最新报63075.44点。(科股宝播报)
张家界队与广东铭途梯队发生肢体... 6月21日下午,张家界市足球队在广州市与广东铭途梯队进行交流赛,期间双方发生冲突,造成不良影响。有报...
易事特:陈子祥接任董事长 易事... 天眼查 App 最新工商变更信息显示,易事特集团股份有限公司(300376)完成管理层重大调整,何佳...
60天豁免令让伊朗石油重返市场... 当地时间6月22日,美国财政部长贝森特通过社交媒体宣布,作为美国与伊朗谈判框架的一部分,美国财政部已...
韩国股市熔断,港股跟跌 韩国触... 2026.06.23本文字数:1766,阅读时长大约3分钟作者 |第一财经 李隽封图 |AI生成港股...
京东全栈开源交互AI模型,全系... 近日,京东开源实时视频视觉语言交互模型JoyAI-VL-Interaction,这也是全球首个全栈开...