필터 지우기
필터 지우기

Stateflow messages and events

조회 수: 6 (최근 30일)
ANDREA DI MARTINO
ANDREA DI MARTINO 2020년 3월 24일
댓글: ANDREA DI MARTINO 2020년 3월 30일
I'm using stateflow for a state machine. I know that in state flow there are messages and events. With the first one I can associate a data but I can send the message only with the send(M) so I can't specify which state will receive the message M. Instead, if I use an event I can send this to a specific state with send(event,state) but I can't associate a data to the event. I need a kind of fusion between event and messages. I need to send a data in a particular state of the chart. I won't create a lot of messages like M1, M2 and so on. I ask this because i need that a message from a state 1 must be different form a message from state 2 but they must have the same name. So if the message has value 1 it comes from the state 1 and so on. Sorry for my bad english

답변 (2개)

Harsha Priya Daggubati
Harsha Priya Daggubati 2020년 3월 27일
편집: Harsha Priya Daggubati 2020년 3월 27일
Hi,
As per my understanding, you can attach a key (which can be distinct based on sender) to the message you intend to send, and can check for it at the receiver end. This might help you:
  댓글 수: 1
ANDREA DI MARTINO
ANDREA DI MARTINO 2020년 3월 27일
Thank you for the reply. The problem is that i must use messages inside a stateflow chart. I have a big stateflow chart with 3 parallel states that must comunicate with messages. I havo no reciever or sender because every state is a sender or receive. The problem is this. I send a message from a state S1 like M.data =1 and send(M). The problem is that the state S1 recieve the same message that he sent. In the picture you can see that i have 3 parallel states that must comunicate between them to use a mutual exlusive resource using the two phase commit protocol. So i need to send 3/4 messages to make the access to the resource exclusive.

댓글을 달려면 로그인하십시오.


Harsha Priya Daggubati
Harsha Priya Daggubati 2020년 3월 27일
편집: Harsha Priya Daggubati 2020년 3월 27일
By the following statement, 'I send a message from a state S1 like M.data =1 and send(M). The problem is that the state S1 recieve the same message that he sent', do you mean that the message is being received by the same state from which it is sent? But it is expected as 'send' broadcasts the message.
  댓글 수: 4
ANDREA DI MARTINO
ANDREA DI MARTINO 2020년 3월 27일
Ok but i can't use send(M,S2) if M is a message. I obtain this:
Messages do not support directed send() syntax. Please use state local messages in order to direct a message to a state. Transition in Chart 'buonastrada/SmartFactory': {send(prepare,R2)}
In model explorer prepare is a local message of the big statechart that includes all other states
ANDREA DI MARTINO
ANDREA DI MARTINO 2020년 3월 30일
Harsha Priya Daggubati, can you help me? Did you read my answer?

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Complex Logic에 대해 자세히 알아보기

태그

제품


릴리스

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by