Class: Phidgets::Accelerometer

Inherits:
Object
  • Object
show all
Includes:
Common
Defined in:
lib/phidgets-ffi/accelerometer.rb

Overview

This class represents a PhidgetAccelerometer.

Defined Under Namespace

Classes: AccelerometerAxes

Constant Summary collapse

Klass =
Phidgets::FFI::CPhidgetAccelerometer

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Common

#attached?, #attached_to_server?, attributes, #close, #detached?, #detached_to_server?, device_class, #device_class, device_id, #id, #initialize, #label, #label=, #name, #on_attach, #on_detach, #on_error, #on_server_connect, #on_server_disconnect, #on_sleep, #on_wake, #serial_number, #server_address, server_address, #server_id, server_id, server_status, #type, #version, #wait_for_attachment

Instance Attribute Details

#attributesObject (readonly)

The attributes of a PhidgetAccelerometer



16
17
18
# File 'lib/phidgets-ffi/accelerometer.rb', line 16

def attributes
  @attributes
end

#axesAccelerometerAxes (readonly)

Collection of accelerometer axes

Returns:



11
12
13
# File 'lib/phidgets-ffi/accelerometer.rb', line 11

def axes
  @axes
end

Instance Method Details

#on_acceleration_change(obj = nil, &block) ⇒ Boolean

Sets an acceleration change handler callback function. This is called when the acceleration of an axis changes by more than the set sensitivity.

As this runs in it’s own thread, be sure that all errors are properly handled or the thread will halt and not fire any more.

Examples:

acc.on_acceleration_change do |device, axis, acceleration, obj|
  puts "Axis #{axis.index}'s acceleration changed to #{acceleration}"
end

Parameters:

  • obj (String) (defaults to: nil)

    Object to pass to the callback function. This is optional.

  • Block (Proc)

    When the callback is executed, the device and object are yielded to this block.

Returns:

  • (Boolean)

    returns true or raises an error



32
33
34
35
36
37
38
# File 'lib/phidgets-ffi/accelerometer.rb', line 32

def on_acceleration_change(obj=nil, &block)
	  @on_acceleration_change_obj = obj
  @on_acceleration_change = Proc.new { |device, obj_ptr, ind, acc|
		yield self, axes[ind], acc, object_for(obj_ptr)
	}
  Klass.set_OnAccelerationChange_Handler(@handle, @on_acceleration_change, pointer_for(obj))
end