Skip to main content

Module proximity

Module proximity 

Source
Expand description

Provides userspace with access to proximity sensors.

§Userspace Interface

§subscribe System Call

The subscribe system call supports the single subscribe_number zero, which is used to provide a callback that will return back the result of a proximity reading. The subscribecall return codes indicate the following:

  • Ok(()): the callback been successfully been configured.
  • ENOSUPPORT: Invalid allow_num.

§command System Call

The command system call support one argument cmd which is used to specify the specific operation, currently the following cmd’s are supported:

  • 0: driver existence check
  • 1: read proximity
  • 2: read proximity on interrupt

The possible return from the ‘command’ system call indicates the following:

  • Ok(()): The operation has been successful.
  • BUSY: The driver is busy.
  • ENOSUPPORT: Invalid cmd.

§Usage

You need a device that provides the hil::sensors::ProximityDriver trait. Here is an example of how to set up a proximity sensor with the apds9960 IC


let grant_cap = create_capability!(capabilities::MemoryAllocationCapability);

let proximity = static_init!(
  capsules::proximity::ProximitySensor<'static>,
  capsules::proximity::ProximitySensor::new(apds9960 , board_kernel.create_grant(&grant_cap)));

kernel::hil::sensors::ProximityDriver::set_client(apds9960, proximity);

Structs§

App
ProximitySensor
Thresholds

Enums§

ProximityCommand

Constants§

DRIVER_NUM