簡體   English   中英

代理狀態圖出現問題

[英]Trouble with agent state chart

我正在嘗試創建一個代理狀態圖,應該在每天的下午4點(周末除外)進行轉換。

我已經嘗試過:1.有條件的轉換(條件:getHourOfDay()== 16)2:超時轉換,每隔1 s將代理“重新插入”到圖表中,並檢查time = 16。

我的代碼仍未運行,是否有人知道如何解決?

在此處輸入圖片說明

這是我的狀態圖視圖。 客戶是一種資源,應該每天下午4點從我的庫存中“取出”產品。 它應該在“活動”狀態下發生。

在此處輸入圖片說明

我設置了一個從1秒運行的超時過渡(從Active-Active)。

在此處輸入圖片說明

在“進入動作”的“活動”狀態下,我編寫了代碼以檢查是否為下午4點,如果是,請運行我的動作。

我以為,自從我設置了一個超時轉換后,它將每隔1秒檢查一次我的狀況,但顯然它不起作用。

出於性能原因,請勿使用基於條件的轉換。 在您的情況下,它也永遠不會觸發,因為僅在模型中發生某些事情時才對其進行評估。 順便說一下,下午4點不是這種情況。

重新使用超時方法:為什么要將代理“重新插入”到自己的狀態圖中? 不確定我了解...

為什么不根據您的重復要求設置計划或事件,並使其發送消息到狀態圖: stateChart.fireEvent("trigger!"); 在狀態圖中,添加一個等待該消息的基於消息的過渡。 這將起作用。

但是,請小心了解Statechart.fireEvent()Statechart.receiveMessage()函數之間的區別。

PS:並同意Felipe的觀點:請按照其含義使用SOF,即也將答復標記為已解決。 它不僅可以幫助我們,也可以幫助未來的用戶快速找到解決方案:-)歡呼

您的代理不會通過內部轉換進入“活動”狀態。

重繪過渡以使其實際退出“活動”狀態,然后再次輸入,如下所示: 在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM