self.machine.ball_locks.*

class mpf.devices.ball_lock.BallLock(*args, **kwargs)

Bases: mpf.core.system_wide_device.SystemWideDevice, mpf.core.mode_device.ModeDevice

Ball lock device which can be used to keep balls in ball devices and control their eject later on.

Accessing ball_locks in code

The device collection which contains the ball_locks in your machine is available via self.machine.ball_locks. For example, to access one called “foo”, you would use self.machine.ball_locks.foo. You can also access ball_locks in dictionary form, e.g. self.machine.ball_locks['foo'].

You can also get devices by tag or hardware number. See the DeviceCollection documentation for details.

Methods & Attributes

Ball_locks have the following methods & attributes available. Note that methods & attributes inherited from base classes are not included here.

disable(**kwargs)

Disable the lock.

If the lock is not enabled, no balls will be locked.

Parameters:**kwargs – unused
enable(**kwargs)

Enable the lock.

If the lock is not enabled, no balls will be locked.

Parameters:**kwargs – unused
is_full()

Return true if lock is full.

raise_config_error(msg, error_no, *, context=None)

Raise a ConfigFileError exception.

release_all_balls()

Release all balls in lock.

release_balls(balls_to_release)

Release all balls and return the actual amount of balls released.

Parameters:balls_to_release – number of ball to release from lock
release_one(**kwargs)

Release one ball.

Parameters:**kwargs – unused
release_one_if_full(**kwargs)

Release one ball if lock is full.

remaining_space_in_lock()

Return the remaining capacity of the lock.

reset(**kwargs)

Reset the lock.

Will release locked balls. Device will status will stay the same (enabled/disabled). It will wait for those balls to drain and block ball_ending until they did. Those balls are not included in ball_in_play.

Parameters:**kwargs – unused