Open Inventor Release 2024.2.0
 
Loading...
Searching...
No Matches
Introduction to Sensors

Sensors are a special class of objects that can be attached to the database. They respond to database changes or to certain timer events by invoking a user-supplied callback function. Data sensors (derived from SoDataSensor) monitor part of the database and inform the application when that part changes. Timer sensors (such as SoAlarmSensor and SoTimerSensor) notify the application when certain types of timer events occur. Note that timer “events” occur within Inventor and are not part of the event model described in Handling Events and Selection. See Sensor Classes for a diagram of the portion of the class tree that includes sensors.

Sensor Classes

Sensor Queues

As the class tree in Sensor Classes suggests, sensors are placed in one of two queues:

  • Timer queue, which is called when an alarm or timer sensor is scheduled to go off
  • Delay queue, which is called whenever the CPU is idle (that is, there are no events or timer sensors to handle) or after a user-specifiable time-out When processing of either queue begins, all sensors in that queue are processed once, in order (see the section called “Using a Field Sensor”).

Key Terms

The following discussion of data and timer sensors uses a few new terms.

  • Triggering a sensor means calling its user-defined callback function and removing it from the queue.
  • Scheduling a sensor means adding it to a queue so that it can be triggered at some future time. If a sensor is already scheduled, scheduling it again has no effect. Unscheduling a sensor means removing it from the queue without processing it.
  • Notifying a data sensor means letting it know that the node (or field or path) to which it is attached has changed. A data sensor automatically schedules itself when it is notified of a change.