ars / demos / sensors /

Full commit
"""Shows usage of the SystemTotalEnergy sensor, with the FallingBalls program.
Sensor data is stored in a queue, which is retrieved after the simulation ends
(but it can be accessed at any time).

Sensor is created in the `create_sim_objects` method.
	'self.sensor = sensors.SystemTotalEnergy(self.sim)'
It is updated in the `on_post_step` method
Sensor measurements can be retrieved at any time

from ars.lib.pydispatch import dispatcher
from ars.model.robot import sensors
from ars.model.simulator import signals

from .base import FallingBalls, PrintDataMixin

class SystemTotalEnergy(FallingBalls, PrintDataMixin):

	def __init__(self):
		dispatcher.connect(self.on_post_step, signals.SIM_POST_STEP)

	def create_sim_objects(self):
		self.sensor = sensors.SystemTotalEnergy(self.sim)
		# self.sensor = sensors.SystemTotalEnergy(self.sim, True)

	def on_post_step(self):
			time = self.sim.sim_time
		except Exception as e:
			print('Exception when executing on_post_step: %s' % str(e))