@jibestream-dev/jmap-device-kit
Version:
Kit for the Jibestream SDK to utilize Devices plotted in the CMS
1,271 lines (907 loc) • 342 kB
Markdown
# DeviceKit
Jibestream plugin for using Devices
### Documentation
## Classes
<dl>
<dt><a href="#Device">Device</a></dt>
<dd></dd>
<dt><a href="#DeviceCollection">DeviceCollection</a> ⇐ <code>jmap.core.BaseCollection</code></dt>
<dd><p>Class representing a collection of Devices.</p>
</dd>
<dt><a href="#DeviceKit">DeviceKit</a></dt>
<dd><p>Kit for working with Jibestream Devices</p>
</dd>
</dl>
## Typedefs
<dl>
<dt><a href="#DeviceViewConfig">DeviceViewConfig</a> : <code>Object</code></dt>
<dd><p>The configuration object for the creation and update of an asset</p>
</dd>
</dl>
<a name="Device"></a>
## Device
**Kind**: global class
* [Device](#Device)
* [new Device()](#new_Device_new)
* [.heading](#Device+heading) : <code>Number</code>
* [.name](#Device+name) : <code>String</code>
* [.waypointId](#Device+waypointId) : <code>Number</code>
* [.mapId](#Device+mapId) : <code>Number</code>
* [._getLocation(model)](#Device+_getLocation)
<a name="new_Device_new"></a>
### new Device()
Class representing a Device.
<a name="Device+heading"></a>
### device.heading : <code>Number</code>
**Kind**: instance property of <code>[Device](#Device)</code>
<a name="Device+name"></a>
### device.name : <code>String</code>
**Kind**: instance property of <code>[Device](#Device)</code>
<a name="Device+waypointId"></a>
### device.waypointId : <code>Number</code>
**Kind**: instance property of <code>[Device](#Device)</code>
<a name="Device+mapId"></a>
### device.mapId : <code>Number</code>
**Kind**: instance property of <code>[Device](#Device)</code>
<a name="Device+_getLocation"></a>
### device._getLocation(model)
Create a Device.
**Kind**: instance method of <code>[Device](#Device)</code>
| Param | Type | Description |
| --- | --- | --- |
| model | <code>object</code> | The model object passed back from the /full payload |
<a name="DeviceCollection"></a>
## DeviceCollection ⇐ <code>jmap.core.BaseCollection</code>
Class representing a collection of Devices.
**Kind**: global class
**Extends**: <code>jmap.core.BaseCollection</code>
* [DeviceCollection](#DeviceCollection) ⇐ <code>jmap.core.BaseCollection</code>
* [new DeviceCollection()](#new_DeviceCollection_new)
* [.isDevice(item)](#DeviceCollection+isDevice) ⇒ <code>Boolean</code>
* [.getByName(name)](#DeviceCollection+getByName) ⇒ <code>Array</code>
* [.getByWaypoint(waypoint)](#DeviceCollection+getByWaypoint) ⇒ <code>Array</code>
* [.getByMap(map)](#DeviceCollection+getByMap) ⇒ <code>Array</code>
<a name="new_DeviceCollection_new"></a>
### new DeviceCollection()
Create a collection of Devices.
<a name="DeviceCollection+isDevice"></a>
### deviceCollection.isDevice(item) ⇒ <code>Boolean</code>
Returns a boolean for weather or not argument is constructed as an Device object
**Kind**: instance method of <code>[DeviceCollection](#DeviceCollection)</code>
**Returns**: <code>Boolean</code> - Boolean based on evaluation result
| Param | Type | Description |
| --- | --- | --- |
| item | <code>Object</code> | Item to evaluate |
<a name="DeviceCollection+getByName"></a>
### deviceCollection.getByName(name) ⇒ <code>Array</code>
Get a specific set of devices belonging to a waypoint
**Kind**: instance method of <code>[DeviceCollection](#DeviceCollection)</code>
**Returns**: <code>Array</code> - an array of devices
| Param | Type | Description |
| --- | --- | --- |
| name | <code>String</code> | A device name |
<a name="DeviceCollection+getByWaypoint"></a>
### deviceCollection.getByWaypoint(waypoint) ⇒ <code>Array</code>
Get a specific set of devices belonging to a waypoint
**Kind**: instance method of <code>[DeviceCollection](#DeviceCollection)</code>
**Returns**: <code>Array</code> - an array of devices
| Param | Type | Description |
| --- | --- | --- |
| waypoint | <code>jmap.core.Waypoint</code> | Any waypoint to query with |
<a name="DeviceCollection+getByMap"></a>
### deviceCollection.getByMap(map) ⇒ <code>Array</code>
Get a specific set of devices belonging to a map
**Kind**: instance method of <code>[DeviceCollection](#DeviceCollection)</code>
**Returns**: <code>Array</code> - an array of devices
| Param | Type | Description |
| --- | --- | --- |
| map | <code>jmap.core.Map</code> | Any map to query with |
<a name="DeviceKit"></a>
## DeviceKit
Kit for working with Jibestream Devices
**Kind**: global class
* [DeviceKit](#DeviceKit)
* [new DeviceKit(core, control)](#new_DeviceKit_new)
* [.getDevices(callback)](#DeviceKit+getDevices) ⇒ <code>[DeviceKit](#DeviceKit)</code>
* [.wayfindToDevice(callback, device, number)](#DeviceKit+wayfindToDevice) ⇒ <code>Array</code>
* [.wayfindFromDevice(waypoint, device, number)](#DeviceKit+wayfindFromDevice) ⇒ <code>Array</code>
* [.focusToDevice(callback, device, animation)](#DeviceKit+focusToDevice) ⇒ <code>[DeviceKit](#DeviceKit)</code>
* [.focusToDeviceWithHeading(device)](#DeviceKit+focusToDeviceWithHeading) ⇒ <code>[DeviceKit](#DeviceKit)</code>
* [.getWaypointFromDevice(device)](#DeviceKit+getWaypointFromDevice) ⇒ <code>jmap.core.Waypoint</code>
* [.addComponentOverDevice(device, component)](#DeviceKit+addComponentOverDevice) ⇒ <code>[DeviceKit](#DeviceKit)</code>
* [.removeComponentFromDevice(device)](#DeviceKit+removeComponentFromDevice) ⇒ <code>[DeviceKit](#DeviceKit)</code>
* [.showDevice(device, config)](#DeviceKit+showDevice) ⇒ <code>[DeviceKit](#DeviceKit)</code>
* [.hideDevice(device)](#DeviceKit+hideDevice) ⇒ <code>[DeviceKit](#DeviceKit)</code>
* [.showAllDevices(config)](#DeviceKit+showAllDevices) ⇒ <code>[DeviceKit](#DeviceKit)</code>
* [.hideAllDevices()](#DeviceKit+hideAllDevices) ⇒ <code>[DeviceKit](#DeviceKit)</code>
* [.pingDevice(device, onComplete)](#DeviceKit+pingDevice) ⇒ <code>[DeviceKit](#DeviceKit)</code>
<a name="new_DeviceKit_new"></a>
### new DeviceKit(core, control)
Create a DeviceKit.
| Param | Type | Description |
| --- | --- | --- |
| core | <code>JCore</code> | instanciated JCore |
| control | <code>JController</code> | instanciated JController |
<a name="DeviceKit+getDevices"></a>
### deviceKit.getDevices(callback) ⇒ <code>[DeviceKit](#DeviceKit)</code>
Make request to JACS to populate the DeviceCollection of the ActiveVenue
**Kind**: instance method of <code>[DeviceKit](#DeviceKit)</code>
**Returns**: <code>[DeviceKit](#DeviceKit)</code> - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| callback | <code>function</code> | callback fired when devices are ready, passes error, deviceCollection as arguments |
<a name="DeviceKit+wayfindToDevice"></a>
### deviceKit.wayfindToDevice(callback, device, number) ⇒ <code>Array</code>
Draws a path to the selected device
**Kind**: instance method of <code>[DeviceKit](#DeviceKit)</code>
**Returns**: <code>Array</code> - List of path points, seperted by floor
| Param | Type | Description |
| --- | --- | --- |
| callback | <code>jmap.core.Waypoint</code> | waypoint to wayfind from |
| device | <code>[Device](#Device)</code> | device model |
| number | <code>accessLevel</code> | level of accessibility of the path |
<a name="DeviceKit+wayfindFromDevice"></a>
### deviceKit.wayfindFromDevice(waypoint, device, number) ⇒ <code>Array</code>
Draws a path from the selected device
**Kind**: instance method of <code>[DeviceKit](#DeviceKit)</code>
**Returns**: <code>Array</code> - List of path points, seperted by floor
| Param | Type | Description |
| --- | --- | --- |
| waypoint | <code>jmap.core.Waypoint</code> | waypoint to wayfind to |
| device | <code>[Device](#Device)</code> | device model |
| number | <code>accessLevel</code> | level of accessibility of the path |
<a name="DeviceKit+focusToDevice"></a>
### deviceKit.focusToDevice(callback, device, animation) ⇒ <code>[DeviceKit](#DeviceKit)</code>
Focuses the view center to the position of the device, changes the mapView if needed
**Kind**: instance method of <code>[DeviceKit](#DeviceKit)</code>
**Returns**: <code>[DeviceKit](#DeviceKit)</code> - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| callback | <code>jmap.core.Waypoint</code> | waypoint to wayfind to |
| device | <code>[Device](#Device)</code> | device model |
| animation | <code>jmap.Animation</code> | animation definition |
<a name="DeviceKit+focusToDeviceWithHeading"></a>
### deviceKit.focusToDeviceWithHeading(device) ⇒ <code>[DeviceKit](#DeviceKit)</code>
Rotates the map to match the device heading
**Kind**: instance method of <code>[DeviceKit](#DeviceKit)</code>
**Returns**: <code>[DeviceKit](#DeviceKit)</code> - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| device | <code>[Device](#Device)</code> | device model |
<a name="DeviceKit+getWaypointFromDevice"></a>
### deviceKit.getWaypointFromDevice(device) ⇒ <code>jmap.core.Waypoint</code>
Returns the waypoint matching the device waypointId if the waypoint exists in a loaded map
**Kind**: instance method of <code>[DeviceKit](#DeviceKit)</code>
**Returns**: <code>jmap.core.Waypoint</code> - waypoint
| Param | Type | Description |
| --- | --- | --- |
| device | <code>[Device](#Device)</code> | device model |
<a name="DeviceKit+addComponentOverDevice"></a>
### deviceKit.addComponentOverDevice(device, component) ⇒ <code>[DeviceKit](#DeviceKit)</code>
Adds an html component ontop of your devoce, commonly used for 'You are here' indicators
**Kind**: instance method of <code>[DeviceKit](#DeviceKit)</code>
**Returns**: <code>[DeviceKit](#DeviceKit)</code> - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| device | <code>[Device](#Device)</code> | device model |
| component | <code>DOMElement</code> | any html element wrapped in a div |
<a name="DeviceKit+removeComponentFromDevice"></a>
### deviceKit.removeComponentFromDevice(device) ⇒ <code>[DeviceKit](#DeviceKit)</code>
Removes any html component added ontop of your device.
**Kind**: instance method of <code>[DeviceKit](#DeviceKit)</code>
**Returns**: <code>[DeviceKit](#DeviceKit)</code> - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| device | <code>[Device](#Device)</code> | device model |
<a name="DeviceKit+showDevice"></a>
### deviceKit.showDevice(device, config) ⇒ <code>[DeviceKit](#DeviceKit)</code>
Display the device on its respecive map
**Kind**: instance method of <code>[DeviceKit](#DeviceKit)</code>
**Returns**: <code>[DeviceKit](#DeviceKit)</code> - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| device | <code>[Device](#Device)</code> | device model |
| config | <code>[DeviceViewConfig](#DeviceViewConfig)</code> | configuration used to generate the appearance of the device. only read the first time a device is shown |
<a name="DeviceKit+hideDevice"></a>
### deviceKit.hideDevice(device) ⇒ <code>[DeviceKit](#DeviceKit)</code>
Hide the divice
**Kind**: instance method of <code>[DeviceKit](#DeviceKit)</code>
**Returns**: <code>[DeviceKit](#DeviceKit)</code> - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| device | <code>[Device](#Device)</code> | device model |
<a name="DeviceKit+showAllDevices"></a>
### deviceKit.showAllDevices(config) ⇒ <code>[DeviceKit](#DeviceKit)</code>
Display all the devices on thier respecive maps
**Kind**: instance method of <code>[DeviceKit](#DeviceKit)</code>
**Returns**: <code>[DeviceKit](#DeviceKit)</code> - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| config | <code>[DeviceViewConfig](#DeviceViewConfig)</code> | configuration used to generate the appearance of the device. only read the first time a device is shown |
<a name="DeviceKit+hideAllDevices"></a>
### deviceKit.hideAllDevices() ⇒ <code>[DeviceKit](#DeviceKit)</code>
Hides all divices
**Kind**: instance method of <code>[DeviceKit](#DeviceKit)</code>
**Returns**: <code>[DeviceKit](#DeviceKit)</code> - DeviceKit
<a name="DeviceKit+pingDevice"></a>
### deviceKit.pingDevice(device, onComplete) ⇒ <code>[DeviceKit](#DeviceKit)</code>
Plays a pulse animation for the decive once, fires an onComplete callback when done
**Kind**: instance method of <code>[DeviceKit](#DeviceKit)</code>
**Returns**: <code>[DeviceKit](#DeviceKit)</code> - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| device | <code>[Device](#Device)</code> | device model |
| onComplete | <code>function</code> | callback fired once animation is complete |
<a name="DeviceViewConfig"></a>
## DeviceViewConfig : <code>Object</code>
The configuration object for the creation and update of an asset
**Kind**: global typedef
**Properties**
| Name | Type | Default | Description |
| --- | --- | --- | --- |
| width | <code>number</code> | <code>20</code> | The width of the icon |
| height | <code>number</code> | <code>20</code> | The height of the icon |
| url | <code>string</code> | | The URL of the image to be used as the asset's icon |
| scaleWithMap | <code>boolean</code> | <code>true</code> | Whether the asset's icon should scale with the map |
| iconColor | <code>string</code> | | If no url is provided for the icon, the colour of the default icon |
| confidenceMax | <code>number</code> | | The maximum radius of the confidence circle (in pixels) |
| confidencePercent | <code>number</code> | | The confidence in the position of the item (between 0 and 1). 0 will hide the confidence circle; 1 will display the full circle |
| confidenceColor | <code>string</code> | | The color of the confidence circle in hexadecimal format |
| confidenceAlpha | <code>number</code> | | The transparency of the confidence circle (between 0 and 1) |
| pulseColor | <code>string</code> | | The color of the pulse circle |
| pulseStartAlpha | <code>number</code> | | The starting opacity of the pulse circle (between 0 and 1) |
| pulseEndAlpha | <code>number</code> | | The ending opacity of the pulse circle (between 0 and 1) |
| pulseDuration | <code>number</code> | | The length of time of the pulse animation (in seconds) |
| pulseDelay | <code>number</code> | | The delay between pulse animation (in seconds) |
| pulseVisible | <code>boolean</code> | | Whether the pulse should be visible |
## Classes
<dl>
<dt><a href="#Device">Device</a></dt>
<dd></dd>
<dt><a href="#DeviceCollection">DeviceCollection</a> ⇐ <code>jmap.core.BaseCollection</code></dt>
<dd><p>Class representing a collection of Devices.</p>
</dd>
<dt><a href="#DeviceKit">DeviceKit</a></dt>
<dd><p>Kit for working with Jibestream Devices</p>
</dd>
</dl>
## Typedefs
<dl>
<dt><a href="#DeviceViewConfig">DeviceViewConfig</a> : <code>Object</code></dt>
<dd><p>The configuration object for the creation and update of an asset</p>
</dd>
</dl>
<a name="Device"></a>
## Device
**Kind**: global class
* [Device](#Device)
* [new Device()](#new_Device_new)
* [.heading](#Device+heading) : <code>Number</code>
* [.name](#Device+name) : <code>String</code>
* [.waypointId](#Device+waypointId) : <code>Number</code>
* [.mapId](#Device+mapId) : <code>Number</code>
* [._getLocation(model)](#Device+_getLocation)
<a name="new_Device_new"></a>
### new Device()
Class representing a Device.
<a name="Device+heading"></a>
### device.heading : <code>Number</code>
**Kind**: instance property of [<code>Device</code>](#Device)
<a name="Device+name"></a>
### device.name : <code>String</code>
**Kind**: instance property of [<code>Device</code>](#Device)
<a name="Device+waypointId"></a>
### device.waypointId : <code>Number</code>
**Kind**: instance property of [<code>Device</code>](#Device)
<a name="Device+mapId"></a>
### device.mapId : <code>Number</code>
**Kind**: instance property of [<code>Device</code>](#Device)
<a name="Device+_getLocation"></a>
### device._getLocation(model)
Create a Device.
**Kind**: instance method of [<code>Device</code>](#Device)
| Param | Type | Description |
| --- | --- | --- |
| model | <code>object</code> | The model object passed back from the /full payload |
<a name="DeviceCollection"></a>
## DeviceCollection ⇐ <code>jmap.core.BaseCollection</code>
Class representing a collection of Devices.
**Kind**: global class
**Extends**: <code>jmap.core.BaseCollection</code>
* [DeviceCollection](#DeviceCollection) ⇐ <code>jmap.core.BaseCollection</code>
* [new DeviceCollection()](#new_DeviceCollection_new)
* [.isDevice(item)](#DeviceCollection+isDevice) ⇒ <code>Boolean</code>
* [.getByName(name)](#DeviceCollection+getByName) ⇒ <code>Array</code>
* [.getByWaypoint(waypoint)](#DeviceCollection+getByWaypoint) ⇒ <code>Array</code>
* [.getByMap(map)](#DeviceCollection+getByMap) ⇒ <code>Array</code>
<a name="new_DeviceCollection_new"></a>
### new DeviceCollection()
Create a collection of Devices.
<a name="DeviceCollection+isDevice"></a>
### deviceCollection.isDevice(item) ⇒ <code>Boolean</code>
Returns a boolean for weather or not argument is constructed as an Device object
**Kind**: instance method of [<code>DeviceCollection</code>](#DeviceCollection)
**Returns**: <code>Boolean</code> - Boolean based on evaluation result
| Param | Type | Description |
| --- | --- | --- |
| item | <code>Object</code> | Item to evaluate |
<a name="DeviceCollection+getByName"></a>
### deviceCollection.getByName(name) ⇒ <code>Array</code>
Get a specific set of devices belonging to a waypoint
**Kind**: instance method of [<code>DeviceCollection</code>](#DeviceCollection)
**Returns**: <code>Array</code> - an array of devices
| Param | Type | Description |
| --- | --- | --- |
| name | <code>String</code> | A device name |
<a name="DeviceCollection+getByWaypoint"></a>
### deviceCollection.getByWaypoint(waypoint) ⇒ <code>Array</code>
Get a specific set of devices belonging to a waypoint
**Kind**: instance method of [<code>DeviceCollection</code>](#DeviceCollection)
**Returns**: <code>Array</code> - an array of devices
| Param | Type | Description |
| --- | --- | --- |
| waypoint | <code>jmap.core.Waypoint</code> | Any waypoint to query with |
<a name="DeviceCollection+getByMap"></a>
### deviceCollection.getByMap(map) ⇒ <code>Array</code>
Get a specific set of devices belonging to a map
**Kind**: instance method of [<code>DeviceCollection</code>](#DeviceCollection)
**Returns**: <code>Array</code> - an array of devices
| Param | Type | Description |
| --- | --- | --- |
| map | <code>jmap.core.Map</code> | Any map to query with |
<a name="DeviceKit"></a>
## DeviceKit
Kit for working with Jibestream Devices
**Kind**: global class
* [DeviceKit](#DeviceKit)
* [new DeviceKit(core, control)](#new_DeviceKit_new)
* [.getDevices(callback)](#DeviceKit+getDevices) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.wayfindToDevice(callback, device, number)](#DeviceKit+wayfindToDevice) ⇒ <code>Array</code>
* [.wayfindFromDevice(waypoint, device, number)](#DeviceKit+wayfindFromDevice) ⇒ <code>Array</code>
* [.focusToDevice(callback, device, animation)](#DeviceKit+focusToDevice) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.focusToDeviceWithHeading(device)](#DeviceKit+focusToDeviceWithHeading) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.getWaypointFromDevice(device)](#DeviceKit+getWaypointFromDevice) ⇒ <code>jmap.core.Waypoint</code>
* [.addComponentOverDevice(device, component)](#DeviceKit+addComponentOverDevice) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.removeComponentFromDevice(device)](#DeviceKit+removeComponentFromDevice) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.showDevice(device, config)](#DeviceKit+showDevice) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.hideDevice(device)](#DeviceKit+hideDevice) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.showAllDevices(config)](#DeviceKit+showAllDevices) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.hideAllDevices()](#DeviceKit+hideAllDevices) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.pingDevice(device, onComplete)](#DeviceKit+pingDevice) ⇒ [<code>DeviceKit</code>](#DeviceKit)
<a name="new_DeviceKit_new"></a>
### new DeviceKit(core, control)
Create a DeviceKit.
| Param | Type | Description |
| --- | --- | --- |
| core | <code>JCore</code> | instanciated JCore |
| control | <code>JController</code> | instanciated JController |
<a name="DeviceKit+getDevices"></a>
### deviceKit.getDevices(callback) ⇒ [<code>DeviceKit</code>](#DeviceKit)
Make request to JACS to populate the DeviceCollection of the ActiveVenue
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| callback | <code>function</code> | callback fired when devices are ready, passes error, deviceCollection as arguments |
<a name="DeviceKit+wayfindToDevice"></a>
### deviceKit.wayfindToDevice(callback, device, number) ⇒ <code>Array</code>
Draws a path to the selected device
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: <code>Array</code> - List of path points, seperted by floor
| Param | Type | Description |
| --- | --- | --- |
| callback | <code>jmap.core.Waypoint</code> | waypoint to wayfind from |
| device | [<code>Device</code>](#Device) | device model |
| number | <code>accessLevel</code> | level of accessibility of the path |
<a name="DeviceKit+wayfindFromDevice"></a>
### deviceKit.wayfindFromDevice(waypoint, device, number) ⇒ <code>Array</code>
Draws a path from the selected device
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: <code>Array</code> - List of path points, seperted by floor
| Param | Type | Description |
| --- | --- | --- |
| waypoint | <code>jmap.core.Waypoint</code> | waypoint to wayfind to |
| device | [<code>Device</code>](#Device) | device model |
| number | <code>accessLevel</code> | level of accessibility of the path |
<a name="DeviceKit+focusToDevice"></a>
### deviceKit.focusToDevice(callback, device, animation) ⇒ [<code>DeviceKit</code>](#DeviceKit)
Focuses the view center to the position of the device, changes the mapView if needed
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| callback | <code>jmap.core.Waypoint</code> | waypoint to wayfind to |
| device | [<code>Device</code>](#Device) | device model |
| animation | <code>jmap.Animation</code> | animation definition |
<a name="DeviceKit+focusToDeviceWithHeading"></a>
### deviceKit.focusToDeviceWithHeading(device) ⇒ [<code>DeviceKit</code>](#DeviceKit)
Rotates the map to match the device heading
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| device | [<code>Device</code>](#Device) | device model |
<a name="DeviceKit+getWaypointFromDevice"></a>
### deviceKit.getWaypointFromDevice(device) ⇒ <code>jmap.core.Waypoint</code>
Returns the waypoint matching the device waypointId if the waypoint exists in a loaded map
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: <code>jmap.core.Waypoint</code> - waypoint
| Param | Type | Description |
| --- | --- | --- |
| device | [<code>Device</code>](#Device) | device model |
<a name="DeviceKit+addComponentOverDevice"></a>
### deviceKit.addComponentOverDevice(device, component) ⇒ [<code>DeviceKit</code>](#DeviceKit)
Adds an html component ontop of your devoce, commonly used for 'You are here' indicators
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| device | [<code>Device</code>](#Device) | device model |
| component | <code>DOMElement</code> | any html element wrapped in a div |
<a name="DeviceKit+removeComponentFromDevice"></a>
### deviceKit.removeComponentFromDevice(device) ⇒ [<code>DeviceKit</code>](#DeviceKit)
Removes any html component added ontop of your device.
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| device | [<code>Device</code>](#Device) | device model |
<a name="DeviceKit+showDevice"></a>
### deviceKit.showDevice(device, config) ⇒ [<code>DeviceKit</code>](#DeviceKit)
Display the device on its respecive map
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| device | [<code>Device</code>](#Device) | device model |
| config | [<code>DeviceViewConfig</code>](#DeviceViewConfig) | configuration used to generate the appearance of the device. only read the first time a device is shown |
<a name="DeviceKit+hideDevice"></a>
### deviceKit.hideDevice(device) ⇒ [<code>DeviceKit</code>](#DeviceKit)
Hide the divice
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| device | [<code>Device</code>](#Device) | device model |
<a name="DeviceKit+showAllDevices"></a>
### deviceKit.showAllDevices(config) ⇒ [<code>DeviceKit</code>](#DeviceKit)
Display all the devices on thier respecive maps
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| config | [<code>DeviceViewConfig</code>](#DeviceViewConfig) | configuration used to generate the appearance of the device. only read the first time a device is shown |
<a name="DeviceKit+hideAllDevices"></a>
### deviceKit.hideAllDevices() ⇒ [<code>DeviceKit</code>](#DeviceKit)
Hides all divices
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
<a name="DeviceKit+pingDevice"></a>
### deviceKit.pingDevice(device, onComplete) ⇒ [<code>DeviceKit</code>](#DeviceKit)
Plays a pulse animation for the decive once, fires an onComplete callback when done
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| device | [<code>Device</code>](#Device) | device model |
| onComplete | <code>function</code> | callback fired once animation is complete |
<a name="DeviceViewConfig"></a>
## DeviceViewConfig : <code>Object</code>
The configuration object for the creation and update of an asset
**Kind**: global typedef
**Properties**
| Name | Type | Default | Description |
| --- | --- | --- | --- |
| width | <code>number</code> | <code>20</code> | The width of the icon |
| height | <code>number</code> | <code>20</code> | The height of the icon |
| url | <code>string</code> | | The URL of the image to be used as the asset's icon |
| scaleWithMap | <code>boolean</code> | <code>true</code> | Whether the asset's icon should scale with the map |
| iconColor | <code>string</code> | | If no url is provided for the icon, the colour of the default icon |
| confidenceMax | <code>number</code> | | The maximum radius of the confidence circle (in pixels) |
| confidencePercent | <code>number</code> | | The confidence in the position of the item (between 0 and 1). 0 will hide the confidence circle; 1 will display the full circle |
| confidenceColor | <code>string</code> | | The color of the confidence circle in hexadecimal format |
| confidenceAlpha | <code>number</code> | | The transparency of the confidence circle (between 0 and 1) |
| pulseColor | <code>string</code> | | The color of the pulse circle |
| pulseStartAlpha | <code>number</code> | | The starting opacity of the pulse circle (between 0 and 1) |
| pulseEndAlpha | <code>number</code> | | The ending opacity of the pulse circle (between 0 and 1) |
| pulseDuration | <code>number</code> | | The length of time of the pulse animation (in seconds) |
| pulseDelay | <code>number</code> | | The delay between pulse animation (in seconds) |
| pulseVisible | <code>boolean</code> | | Whether the pulse should be visible |
## Classes
<dl>
<dt><a href="#Device">Device</a></dt>
<dd></dd>
<dt><a href="#DeviceCollection">DeviceCollection</a> ⇐ <code>jmap.core.BaseCollection</code></dt>
<dd><p>Class representing a collection of Devices.</p>
</dd>
<dt><a href="#DeviceKit">DeviceKit</a></dt>
<dd><p>Kit for working with Jibestream Devices</p>
</dd>
</dl>
## Typedefs
<dl>
<dt><a href="#DeviceViewConfig">DeviceViewConfig</a> : <code>Object</code></dt>
<dd><p>The configuration object for the creation and update of an asset</p>
</dd>
</dl>
<a name="Device"></a>
## Device
**Kind**: global class
* [Device](#Device)
* [new Device()](#new_Device_new)
* [.heading](#Device+heading) : <code>Number</code>
* [.name](#Device+name) : <code>String</code>
* [.waypointId](#Device+waypointId) : <code>Number</code>
* [.mapId](#Device+mapId) : <code>Number</code>
* [._getLocation(model)](#Device+_getLocation)
<a name="new_Device_new"></a>
### new Device()
Class representing a Device.
<a name="Device+heading"></a>
### device.heading : <code>Number</code>
**Kind**: instance property of [<code>Device</code>](#Device)
<a name="Device+name"></a>
### device.name : <code>String</code>
**Kind**: instance property of [<code>Device</code>](#Device)
<a name="Device+waypointId"></a>
### device.waypointId : <code>Number</code>
**Kind**: instance property of [<code>Device</code>](#Device)
<a name="Device+mapId"></a>
### device.mapId : <code>Number</code>
**Kind**: instance property of [<code>Device</code>](#Device)
<a name="Device+_getLocation"></a>
### device._getLocation(model)
Create a Device.
**Kind**: instance method of [<code>Device</code>](#Device)
| Param | Type | Description |
| --- | --- | --- |
| model | <code>object</code> | The model object passed back from the /full payload |
<a name="DeviceCollection"></a>
## DeviceCollection ⇐ <code>jmap.core.BaseCollection</code>
Class representing a collection of Devices.
**Kind**: global class
**Extends**: <code>jmap.core.BaseCollection</code>
* [DeviceCollection](#DeviceCollection) ⇐ <code>jmap.core.BaseCollection</code>
* [new DeviceCollection()](#new_DeviceCollection_new)
* [.isDevice(item)](#DeviceCollection+isDevice) ⇒ <code>Boolean</code>
* [.getByName(name)](#DeviceCollection+getByName) ⇒ <code>Array</code>
* [.getByWaypoint(waypoint)](#DeviceCollection+getByWaypoint) ⇒ <code>Array</code>
* [.getByMap(map)](#DeviceCollection+getByMap) ⇒ <code>Array</code>
<a name="new_DeviceCollection_new"></a>
### new DeviceCollection()
Create a collection of Devices.
<a name="DeviceCollection+isDevice"></a>
### deviceCollection.isDevice(item) ⇒ <code>Boolean</code>
Returns a boolean for weather or not argument is constructed as an Device object
**Kind**: instance method of [<code>DeviceCollection</code>](#DeviceCollection)
**Returns**: <code>Boolean</code> - Boolean based on evaluation result
| Param | Type | Description |
| --- | --- | --- |
| item | <code>Object</code> | Item to evaluate |
<a name="DeviceCollection+getByName"></a>
### deviceCollection.getByName(name) ⇒ <code>Array</code>
Get a specific set of devices belonging to a waypoint
**Kind**: instance method of [<code>DeviceCollection</code>](#DeviceCollection)
**Returns**: <code>Array</code> - an array of devices
| Param | Type | Description |
| --- | --- | --- |
| name | <code>String</code> | A device name |
<a name="DeviceCollection+getByWaypoint"></a>
### deviceCollection.getByWaypoint(waypoint) ⇒ <code>Array</code>
Get a specific set of devices belonging to a waypoint
**Kind**: instance method of [<code>DeviceCollection</code>](#DeviceCollection)
**Returns**: <code>Array</code> - an array of devices
| Param | Type | Description |
| --- | --- | --- |
| waypoint | <code>jmap.core.Waypoint</code> | Any waypoint to query with |
<a name="DeviceCollection+getByMap"></a>
### deviceCollection.getByMap(map) ⇒ <code>Array</code>
Get a specific set of devices belonging to a map
**Kind**: instance method of [<code>DeviceCollection</code>](#DeviceCollection)
**Returns**: <code>Array</code> - an array of devices
| Param | Type | Description |
| --- | --- | --- |
| map | <code>jmap.core.Map</code> | Any map to query with |
<a name="DeviceKit"></a>
## DeviceKit
Kit for working with Jibestream Devices
**Kind**: global class
* [DeviceKit](#DeviceKit)
* [new DeviceKit(core, control)](#new_DeviceKit_new)
* [.getDevices(callback)](#DeviceKit+getDevices) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.wayfindToDevice(callback, device, number)](#DeviceKit+wayfindToDevice) ⇒ <code>Array</code>
* [.wayfindFromDevice(waypoint, device, number)](#DeviceKit+wayfindFromDevice) ⇒ <code>Array</code>
* [.focusToDevice(callback, device, animation)](#DeviceKit+focusToDevice) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.focusToDeviceWithHeading(device)](#DeviceKit+focusToDeviceWithHeading) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.getWaypointFromDevice(device)](#DeviceKit+getWaypointFromDevice) ⇒ <code>jmap.core.Waypoint</code>
* [.addComponentOverDevice(device, component)](#DeviceKit+addComponentOverDevice) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.removeComponentFromDevice(device)](#DeviceKit+removeComponentFromDevice) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.showDevice(device, config)](#DeviceKit+showDevice) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.hideDevice(device)](#DeviceKit+hideDevice) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.showAllDevices(config)](#DeviceKit+showAllDevices) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.hideAllDevices()](#DeviceKit+hideAllDevices) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.pingDevice(device, onComplete)](#DeviceKit+pingDevice) ⇒ [<code>DeviceKit</code>](#DeviceKit)
<a name="new_DeviceKit_new"></a>
### new DeviceKit(core, control)
Create a DeviceKit.
| Param | Type | Description |
| --- | --- | --- |
| core | <code>JCore</code> | instanciated JCore |
| control | <code>JController</code> | instanciated JController |
<a name="DeviceKit+getDevices"></a>
### deviceKit.getDevices(callback) ⇒ [<code>DeviceKit</code>](#DeviceKit)
Make request to JACS to populate the DeviceCollection of the ActiveVenue
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| callback | <code>function</code> | callback fired when devices are ready, passes error, deviceCollection as arguments |
<a name="DeviceKit+wayfindToDevice"></a>
### deviceKit.wayfindToDevice(callback, device, number) ⇒ <code>Array</code>
Draws a path to the selected device
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: <code>Array</code> - List of path points, seperted by floor
| Param | Type | Description |
| --- | --- | --- |
| callback | <code>jmap.core.Waypoint</code> | waypoint to wayfind from |
| device | [<code>Device</code>](#Device) | device model |
| number | <code>accessLevel</code> | level of accessibility of the path |
<a name="DeviceKit+wayfindFromDevice"></a>
### deviceKit.wayfindFromDevice(waypoint, device, number) ⇒ <code>Array</code>
Draws a path from the selected device
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: <code>Array</code> - List of path points, seperted by floor
| Param | Type | Description |
| --- | --- | --- |
| waypoint | <code>jmap.core.Waypoint</code> | waypoint to wayfind to |
| device | [<code>Device</code>](#Device) | device model |
| number | <code>accessLevel</code> | level of accessibility of the path |
<a name="DeviceKit+focusToDevice"></a>
### deviceKit.focusToDevice(callback, device, animation) ⇒ [<code>DeviceKit</code>](#DeviceKit)
Focuses the view center to the position of the device, changes the mapView if needed
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| callback | <code>jmap.core.Waypoint</code> | waypoint to wayfind to |
| device | [<code>Device</code>](#Device) | device model |
| animation | <code>jmap.Animation</code> | animation definition |
<a name="DeviceKit+focusToDeviceWithHeading"></a>
### deviceKit.focusToDeviceWithHeading(device) ⇒ [<code>DeviceKit</code>](#DeviceKit)
Rotates the map to match the device heading
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| device | [<code>Device</code>](#Device) | device model |
<a name="DeviceKit+getWaypointFromDevice"></a>
### deviceKit.getWaypointFromDevice(device) ⇒ <code>jmap.core.Waypoint</code>
Returns the waypoint matching the device waypointId if the waypoint exists in a loaded map
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: <code>jmap.core.Waypoint</code> - waypoint
| Param | Type | Description |
| --- | --- | --- |
| device | [<code>Device</code>](#Device) | device model |
<a name="DeviceKit+addComponentOverDevice"></a>
### deviceKit.addComponentOverDevice(device, component) ⇒ [<code>DeviceKit</code>](#DeviceKit)
Adds an html component ontop of your devoce, commonly used for 'You are here' indicators
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| device | [<code>Device</code>](#Device) | device model |
| component | <code>DOMElement</code> | any html element wrapped in a div |
<a name="DeviceKit+removeComponentFromDevice"></a>
### deviceKit.removeComponentFromDevice(device) ⇒ [<code>DeviceKit</code>](#DeviceKit)
Removes any html component added ontop of your device.
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| device | [<code>Device</code>](#Device) | device model |
<a name="DeviceKit+showDevice"></a>
### deviceKit.showDevice(device, config) ⇒ [<code>DeviceKit</code>](#DeviceKit)
Display the device on its respecive map
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| device | [<code>Device</code>](#Device) | device model |
| config | [<code>DeviceViewConfig</code>](#DeviceViewConfig) | configuration used to generate the appearance of the device. only read the first time a device is shown |
<a name="DeviceKit+hideDevice"></a>
### deviceKit.hideDevice(device) ⇒ [<code>DeviceKit</code>](#DeviceKit)
Hide the divice
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| device | [<code>Device</code>](#Device) | device model |
<a name="DeviceKit+showAllDevices"></a>
### deviceKit.showAllDevices(config) ⇒ [<code>DeviceKit</code>](#DeviceKit)
Display all the devices on thier respecive maps
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| config | [<code>DeviceViewConfig</code>](#DeviceViewConfig) | configuration used to generate the appearance of the device. only read the first time a device is shown |
<a name="DeviceKit+hideAllDevices"></a>
### deviceKit.hideAllDevices() ⇒ [<code>DeviceKit</code>](#DeviceKit)
Hides all divices
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
<a name="DeviceKit+pingDevice"></a>
### deviceKit.pingDevice(device, onComplete) ⇒ [<code>DeviceKit</code>](#DeviceKit)
Plays a pulse animation for the decive once, fires an onComplete callback when done
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| device | [<code>Device</code>](#Device) | device model |
| onComplete | <code>function</code> | callback fired once animation is complete |
<a name="DeviceViewConfig"></a>
## DeviceViewConfig : <code>Object</code>
The configuration object for the creation and update of an asset
**Kind**: global typedef
**Properties**
| Name | Type | Default | Description |
| --- | --- | --- | --- |
| width | <code>number</code> | <code>20</code> | The width of the icon |
| height | <code>number</code> | <code>20</code> | The height of the icon |
| url | <code>string</code> | | The URL of the image to be used as the asset's icon |
| scaleWithMap | <code>boolean</code> | <code>true</code> | Whether the asset's icon should scale with the map |
| iconColor | <code>string</code> | | If no url is provided for the icon, the colour of the default icon |
| confidenceMax | <code>number</code> | | The maximum radius of the confidence circle (in pixels) |
| confidencePercent | <code>number</code> | | The confidence in the position of the item (between 0 and 1). 0 will hide the confidence circle; 1 will display the full circle |
| confidenceColor | <code>string</code> | | The color of the confidence circle in hexadecimal format |
| confidenceAlpha | <code>number</code> | | The transparency of the confidence circle (between 0 and 1) |
| pulseColor | <code>string</code> | | The color of the pulse circle |
| pulseStartAlpha | <code>number</code> | | The starting opacity of the pulse circle (between 0 and 1) |
| pulseEndAlpha | <code>number</code> | | The ending opacity of the pulse circle (between 0 and 1) |
| pulseDuration | <code>number</code> | | The length of time of the pulse animation (in seconds) |
| pulseDelay | <code>number</code> | | The delay between pulse animation (in seconds) |
| pulseVisible | <code>boolean</code> | | Whether the pulse should be visible |
## Classes
<dl>
<dt><a href="#Device">Device</a></dt>
<dd></dd>
<dt><a href="#DeviceCollection">DeviceCollection</a> ⇐ <code>jmap.core.BaseCollection</code></dt>
<dd><p>Class representing a collection of Devices.</p>
</dd>
<dt><a href="#DeviceKit">DeviceKit</a></dt>
<dd><p>Kit for working with Jibestream Devices</p>
</dd>
</dl>
## Typedefs
<dl>
<dt><a href="#DeviceViewConfig">DeviceViewConfig</a> : <code>Object</code></dt>
<dd><p>The configuration object for the creation and update of an asset</p>
</dd>
</dl>
<a name="Device"></a>
## Device
**Kind**: global class
* [Device](#Device)
* [new Device()](#new_Device_new)
* [.heading](#Device+heading) : <code>Number</code>
* [.name](#Device+name) : <code>String</code>
* [.waypointId](#Device+waypointId) : <code>Number</code>
* [.mapId](#Device+mapId) : <code>Number</code>
* [._getLocation(model)](#Device+_getLocation)
<a name="new_Device_new"></a>
### new Device()
Class representing a Device.
<a name="Device+heading"></a>
### device.heading : <code>Number</code>
**Kind**: instance property of [<code>Device</code>](#Device)
<a name="Device+name"></a>
### device.name : <code>String</code>
**Kind**: instance property of [<code>Device</code>](#Device)
<a name="Device+waypointId"></a>
### device.waypointId : <code>Number</code>
**Kind**: instance property of [<code>Device</code>](#Device)
<a name="Device+mapId"></a>
### device.mapId : <code>Number</code>
**Kind**: instance property of [<code>Device</code>](#Device)
<a name="Device+_getLocation"></a>
### device._getLocation(model)
Create a Device.
**Kind**: instance method of [<code>Device</code>](#Device)
| Param | Type | Description |
| --- | --- | --- |
| model | <code>object</code> | The model object passed back from the /full payload |
<a name="DeviceCollection"></a>
## DeviceCollection ⇐ <code>jmap.core.BaseCollection</code>
Class representing a collection of Devices.
**Kind**: global class
**Extends**: <code>jmap.core.BaseCollection</code>
* [DeviceCollection](#DeviceCollection) ⇐ <code>jmap.core.BaseCollection</code>
* [new DeviceCollection()](#new_DeviceCollection_new)
* [.isDevice(item)](#DeviceCollection+isDevice) ⇒ <code>Boolean</code>
* [.getByName(name)](#DeviceCollection+getByName) ⇒ <code>Array</code>
* [.getByWaypoint(waypoint)](#DeviceCollection+getByWaypoint) ⇒ <code>Array</code>
* [.getByMap(map)](#DeviceCollection+getByMap) ⇒ <code>Array</code>
<a name="new_DeviceCollection_new"></a>
### new DeviceCollection()
Create a collection of Devices.
<a name="DeviceCollection+isDevice"></a>
### deviceCollection.isDevice(item) ⇒ <code>Boolean</code>
Returns a boolean for weather or not argument is constructed as an Device object
**Kind**: instance method of [<code>DeviceCollection</code>](#DeviceCollection)
**Returns**: <code>Boolean</code> - Boolean based on evaluation result
| Param | Type | Description |
| --- | --- | --- |
| item | <code>Object</code> | Item to evaluate |
<a name="DeviceCollection+getByName"></a>
### deviceCollection.getByName(name) ⇒ <code>Array</code>
Get a specific set of devices belonging to a waypoint
**Kind**: instance method of [<code>DeviceCollection</code>](#DeviceCollection)
**Returns**: <code>Array</code> - an array of devices
| Param | Type | Description |
| --- | --- | --- |
| name | <code>String</code> | A device name |
<a name="DeviceCollection+getByWaypoint"></a>
### deviceCollection.getByWaypoint(waypoint) ⇒ <code>Array</code>
Get a specific set of devices belonging to a waypoint
**Kind**: instance method of [<code>DeviceCollection</code>](#DeviceCollection)
**Returns**: <code>Array</code> - an array of devices
| Param | Type | Description |
| --- | --- | --- |
| waypoint | <code>jmap.core.Waypoint</code> | Any waypoint to query with |
<a name="DeviceCollection+getByMap"></a>
### deviceCollection.getByMap(map) ⇒ <code>Array</code>
Get a specific set of devices belonging to a map
**Kind**: instance method of [<code>DeviceCollection</code>](#DeviceCollection)
**Returns**: <code>Array</code> - an array of devices
| Param | Type | Description |
| --- | --- | --- |
| map | <code>jmap.core.Map</code> | Any map to query with |
<a name="DeviceKit"></a>
## DeviceKit
Kit for working with Jibestream Devices
**Kind**: global class
* [DeviceKit](#DeviceKit)
* [new DeviceKit(core, control)](#new_DeviceKit_new)
* [.getDevices(callback)](#DeviceKit+getDevices) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.wayfindToDevice(callback, device, number)](#DeviceKit+wayfindToDevice) ⇒ <code>Array</code>
* [.wayfindFromDevice(waypoint, device, number)](#DeviceKit+wayfindFromDevice) ⇒ <code>Array</code>
* [.focusToDevice(callback, device, animation)](#DeviceKit+focusToDevice) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.focusToDeviceWithHeading(device)](#DeviceKit+focusToDeviceWithHeading) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.getWaypointFromDevice(device)](#DeviceKit+getWaypointFromDevice) ⇒ <code>jmap.core.Waypoint</code>
* [.addComponentOverDevice(device, component)](#DeviceKit+addComponentOverDevice) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.removeComponentFromDevice(device)](#DeviceKit+removeComponentFromDevice) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.showDevice(device, config)](#DeviceKit+showDevice) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.hideDevice(device)](#DeviceKit+hideDevice) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.showAllDevices(config)](#DeviceKit+showAllDevices) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.hideAllDevices()](#DeviceKit+hideAllDevices) ⇒ [<code>DeviceKit</code>](#DeviceKit)
* [.pingDevice(device, onComplete)](#DeviceKit+pingDevice) ⇒ [<code>DeviceKit</code>](#DeviceKit)
<a name="new_DeviceKit_new"></a>
### new DeviceKit(core, control)
Create a DeviceKit.
| Param | Type | Description |
| --- | --- | --- |
| core | <code>JCore</code> | instanciated JCore |
| control | <code>JController</code> | instanciated JController |
<a name="DeviceKit+getDevices"></a>
### deviceKit.getDevices(callback) ⇒ [<code>DeviceKit</code>](#DeviceKit)
Make request to JACS to populate the DeviceCollection of the ActiveVenue
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: [<code>DeviceKit</code>](#DeviceKit) - DeviceKit
| Param | Type | Description |
| --- | --- | --- |
| callback | <code>function</code> | callback fired when devices are ready, passes error, deviceCollection as arguments |
<a name="DeviceKit+wayfindToDevice"></a>
### deviceKit.wayfindToDevice(callback, device, number) ⇒ <code>Array</code>
Draws a path to the selected device
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: <code>Array</code> - List of path points, seperted by floor
| Param | Type | Description |
| --- | --- | --- |
| callback | <code>jmap.core.Waypoint</code> | waypoint to wayfind from |
| device | [<code>Device</code>](#Device) | device model |
| number | <code>accessLevel</code> | level of accessibility of the path |
<a name="DeviceKit+wayfindFromDevice"></a>
### deviceKit.wayfindFromDevice(waypoint, device, number) ⇒ <code>Array</code>
Draws a path from the selected device
**Kind**: instance method of [<code>DeviceKit</code>](#DeviceKit)
**Returns**: <code>Array</code> - List of path points, seperted by floor
| Param | Type | Description |