- System Requirements
- Using Stateflow on a Laptop Computer
- Related Products
- MATLAB
- Simulink
- Real-Time Workshop
- Using This Guide
- Chapter Quick Reference
- Typographical Conventions
- Installing Stateflow
- Overview
- What Is Stateflow?
- Examples of Stateflow Applications
- Stateflow Components
- Design Approaches
- Finite State Machine Concepts
- What Is a Finite State Machine?
- FSM Representations
- Stateflow Representations
- Notations
- Semantics
- References
- Anatomy of a Model and Machine
- The Simulink Model and Stateflow Machine
- Defining Stateflow Interfaces
- Stateflow Diagram Objects
- Quick Start
- The Power Switch Model
- Creating a Simulink Model
- Creating a Stateflow Diagram
- Defining Input Events
- Defining the Stateflow Interface
- Defining Simulink Parameters
- Parsing the Stateflow Diagram
- Running a Simulation
- Debugging
- Generating Code
- Creating a Chart
- Using the Stateflow Editor
- Displaying Shortcut Menus
- Drawing Objects
- Specifying Object Styles
- Selecting and Deselecting Objects
- Cutting and Pasting Objects
- Copying Objects
- Editing Object Labels
- Exploring Objects in the Editor Window
- Zooming a Diagram
- Creating States
- Moving and Resizing States
- Creating Substates
- Grouping States
- Hiding a State's Contents
- Specifying State Decomposition
- Specifying Activation Order for Parallel States
- Labeling States
- Using the State Properties Dialog
- Naming States
- Defining State Actions
- Outputting State Activity to Simulink
- Creating Boxes
- Creating Transitions
- What Is a Default Transition?
- Creating Default Transitions
- Editing Transition Attach Points
- Labeling Transitions
- Valid Labels
- Changing Arrowhead Size
- Moving Transition Labels
- Using the Transition Properties Dialog
- Creating Junctions
- Changing Size
- Changing Arrowhead Size
- Moving a Junction
- Editing Junction Properties
- Specifying Chart Properties
- Waking Up Charts
- Creating Chart Libraries
- Stateflow Printing Options
- Printing a Stateflow Diagram
- Printing a Stateflow Book
- Defining Events
- Adding Events to the Data Dictionary
- Setting Event Properties
- Event Properties
- Naming Events
- Defining Local Events
- Defining Input Events
- Defining Output Events
- Exporting Events
- Importing Events
- Specifying Trigger Types
- Describing Events
- Documenting Events
- Implicit Events
- Defining Data
- Adding Data to the Data Dictionary
- Setting Data Properties
- Data Properties
- Defining Data Arrays
- Defining Input Data
- Defining Output Data
- Associating Ports with Data
- Defining Temporary Data
- Exporting Data
- Importing Data
- Documenting Data
- Overview
- Interfaces to Stateflow
- Typical Tasks to Define Stateflow Interfaces
- Where to Find More Information on Events and Data
- Defining the Stateflow Block Update Method
- Stateflow Block Update Methods
- Defining a Triggered Stateflow Block
- Defining a Sampled Stateflow Block
- Defining an Inherited Stateflow Block
- Defining a Continuous Stateflow Block
- Defining Output to Simulink Event Triggers
- Overview
- Defining Function Call Output Events
- Defining Edge-Triggered Output Events
- Event Inputs from Simulink
- Add an Event Choosing a Chart as the Parent
- Choose Input from Simulink as the Scope
- Select the Trigger
- Apply the Changes
- Data Inputs from Simulink
- Add a Data Object Choosing a Chart as the Parent
- Choose Input from Simulink as the Scope
- Specify Data Attributes
- Apply and Save the Changes
- Event Outputs to Simulink
- Add an Event Choosing a Chart as the Parent
- Choose Output to Simulink as the Scope
- Apply the Changes
- Data Outputs to Simulink
- Add a Data Object Choosing a Chart as the Parent
- Choose Output to Simulink as the Scope
- Specify Data Attributes
- Apply the Changes
- MATLAB Workspace
- What Is the MATLAB Workspace?
- Using the MATLAB Workspace
- Defining the Interface to External Sources
- What Are External Sources?
- Exported Events
- Imported Events
- Exported Data
- Imported Data
- Overview
- Exploring and Searching
- Stateflow Explorer User Interface
- Explorer Main Window
- Moving Objects/Changing Parent
- Moving Objects/Changing Index and Port Order
- Deleting Objects
- Editing Objects
- Stateflow Finder User Interface
- Finder Dialog Box
- Finder Display Area
- Searching for a Wildcard String
- Example
- Searching for an Exact String Match
- Example
- Searching for All Objects of a Specified Object Type
- Example
- Searching Based on Multiple Conditions
- Example
- Searching for an Object to Edit Properties
- Example
- Overview
- What Is Meant by Notation?
- Motivation Behind the Notation
- How Is the Notation Checked?
- What Are the Graphical Objects?
- What Are the Nongraphical Objects?
- What Is the Data Dictionary?
- Keywords
- How Is Hierarchy Represented?
- States
- Overview
- What Is a State Decomposition?
- Active and Inactive States
- What Are Combination States?
- Labeling a State
- Transitions
- What Is a Transition?
- Labeling a Transition
- What Is a Valid Transition?
- Types of Transitions
- What Is a Default Transition?
- Labeling of Default Transitions
- What Is an Inner Transition?
- What Is a Self Loop Transition?
- Connective Junctions
- What Is a Connective Junction?
- What Is Flow Diagram Notation?
- History
- What Is a History Junction?
- History Junctions and Inner Transitions
- Action Language
- What Is an Action Language?
- Objects with Actions
- Transition Action Notation
- State Action Notation
- Action Language Components
- Bit Operations
- Binary Operations
- Unary Operations
- Unary Actions
- Assignment Operations
- User-Written Functions
- ml() Functions
- MATLAB Name Space Operator
- Choosing Between the ml() Function and the ml Name Space Operator
- Data and Event Arguments
- Arrays
- Pointer and Address Operators
- Hexadecimal Notation
- Event Broadcasting
- Directed Event Broadcasting
- Conditions
- Time Symbol
- Literals
- Continuation Symbols
- Comments
-
Use of the Semicolon
- Using the Notation Efficiently
- Designing for Efficiency
- Optimizing for Speed
- Optimizing for Code Size
- Optimizing for Memory Use
- Overview
- What Are Semantics?
- List of Semantic Examples
- Event-Driven Effects on Semantics
- What Does Event-Driven Mean?
- Top-Down Processing of Events
- Semantics of Active and Inactive States
- Semantics of State Actions
- Semantics of Transitions
- Transitions to and from Exclusive (OR) States
- Condition Actions
- Default Transitions
- Inner Transitions
- Connective Junctions
- Event Actions
- Parallel (AND) States
- Directed Event Broadcasting
- Execution Order
- Overview
- Execution Order Guidelines
- Parallel (AND) States
- Semantic Rules Summary
- Entering a Chart
- Executing an Active Chart
- Entering a State
- Executing an Active State
- Exiting an Active State
- Executing a Set of Flow Graphs
- Executing an Event Broadcast
- Overview
- Objectives
- Provided Models for This Chapter
- Carousel Tutorial Example
- Basic Operation
- Designing the Carousel Stateflow Diagram
- Overview
- The Design Questions
- What Are the States?
- What Is a State Decomposition?
- What Are the State Labels?
- Will Junctions Simplify the Design?
- What Are the Transitions?
- Are There Default Transitions?
- Are There Events?
- Is There Data?
- Procedure
- Overview
- Create a Simulink Model
- Sample Stateflow Diagram
- Create and Label the OR States
- Create and Label the Superstates
- Create and Label the AND States
- Create the Transitions
- Label the Transitions
- Create Default Transitions
- Add and Define Event Objects
- Add and Define Data Objects
- Save the Model
- Run the Simulation for the Provided Solution
- Overview
- Carousel Simulink Model Solution
- Carousel Operator's Console
- Carousel Solution Stateflow Diagram
- Procedure
- Run the Carousel Demo
- Overview
- Carousel Operator's Console
- Procedure
- Overview
- Target Types
- Building a Target
- How Stateflow Builds Targets
- Setting Up Target Build Tools
- Setting Up Build Tools on UNIX
- Setting Up Build Tools on Windows
- Starting a Build
- Starting from a Target Builder Dialog Box
- Configuring a Target
- Specifying Code Generation Options
- Specifying Custom Code Options
- Parsing
- Parser
- Parse the Machine or the Stateflow Diagram
- Error Messages
- Parser Error Messages
- Code Generation Error Messages
- Compilation Error Messages
- Overview
- Debugging
- Typical Debugging Tasks
- Including Debugging in the Target Build
- Breakpoints
- Runtime Debugging
- Stateflow Debugger User Interface
- Debugger Main Window
- Status Display Area
- Break On Controls
- Debugger Action Control Buttons
- Animation Controls
- Display Controls
- MATLAB Command Field
- Debugging Runtime Errors
- Example Stateflow Diagram
- Typical Scenario to Debug Runtime Errors
- Create the Model and Stateflow Diagram
- Define the sfun Target
- Invoke the Debugger and Choose Debugging Options
- Start the Simulation
- Debug the Simulation Execution
- Resolve Runtime Error and Repeat
- Solution Stateflow Diagram
- Debugging State Inconsistencies
- What Is a State Inconsistency?
- Causes of State Inconsistency
- Detecting State Inconsistency
- Debugging Conflicting Transitions
- What Is a Conflicting Transition?
- Detecting Conflicting Transitions
- Debugging Data Range Violations
- What Is a Data Range Violation?
- Detecting Data Range Violations
- Debugging Cyclic Behavior
- What Is Cyclic Behavior?
- Detecting Cyclic Behavior
- Commands
- sfnew
- sfexit
- sfsave
- stateflow
- sfprint
- sfhelp
[ Previous | Help Desk | Next ]