# SoftBank Robotics documentation What's new in NAOqi 2.8?

# Loading, unloading, starting and stopping a behavior, a box, a diagram or a Timeline

Behavior

  When a behavior is loaded:

  1. All boxes contained in the behavior are constructed. So the constructor of each box `__init__` is called.
  2. Its diagram is loaded.

  When it is unloaded:

  1. Its diagram is unloaded.
  2. All boxes contained in the behavior are destroyed.

  When it is started (or played):

  1. The behavior is loaded.
  2. Its onStart input is stimulated.

  When it is stopped, it is unloaded.

Box

  When a box is loaded, the `onLoad` function of its script is called. For further details about this kind of built-in functions, see the section: Built-in functions in the script of a box.

  When it is unloaded:

  1. The `onUnload` function of its script is called.
  2. Its diagram or its Timeline is unloaded.

  When it is started (with an onStart input):

  1. The `onInput_<input_name>` function of its script is called.

  2. Its diagram or its Timeline is loaded.

  3. If it is a flow diagram box, then the signal received on the onStart input is transmitted to the diagram of the box.

     If it is a Timeline box, then its time cursor is played. So it starts being regularly incremented.

  When it is started but its resources are not available and even after the timeout specified they are still unavailable:

  - If a function named `onResourceError` is defined in the box script, it is called.
  - Else, the output named `onStopped` is stimulated (if any).

  When it is stopped with an onStop input:

  1. The `onInput_<input_name>` function of its script is called.
  2. Its diagram or its Timeline is unloaded.

  When it is stopped with an onStopped output:

  1. Its diagram or its Timeline is unloaded.
  2. The signal received on the onStopped output is transmitted to the parent diagram.

  When it is stopped because its resources are set to Stop on demand and they are asked by another box:

  1. If a function named `onResourceLost` is defined in the box script, it is called.
  2. The diagram or the Timeline of the box is unloaded.
  3. If there was no `onResourceLost` function defined in the script, the output named `onStopped` is stimulated (if any).

  Note

  Sometimes it can take some time for a behavior to stop. For instance, if NAO is walking, the “Walk” behavior you want to stop will wait for NAO’s feet to be stable before stopping, so that the robot doesn’t fall down.

Flow diagram

  When a diagram is loaded:

  1. The boxes within the diagram are loaded.
  2. The links between these boxes are activated. Note that before this step the stimulation of any I/O within the diagram would be inefficient.
  3. The onLoad input of the diagram (if any) is stimulated.

  When it is unloaded:

  1. The links between the boxes within the diagram are broken. Note that after this step the stimulation of any I/O within the diagram would be inefficient.
  2. These boxes are unloaded.
Timeline

  When a Timeline is loaded:

  1. The time cursor is set to the start frame.
  2. The diagrams of the Behavior keyframes present on this frame are loaded.

  When it is unloaded:

  1. The time cursor is paused. So it stops being incremented.
  2. The diagrams of the Behavior keyframes present on this frame are unloaded.
  3. The time cursor is set to -1.

Glossary Site map Index Support Contact Legal Notices