Menu

iot.agile.Apps

Apps API enable the management of AGILE apps and components

Properties

  • String Logs
  • Object* Settings

Methods

  • Boolean Start( String app , Array params )
  • Number Stop( String app )
  • Boolean Restart( String app )
  • Boolean Install( String app )
  • Boolean Uninstall( String app )
  • Object Status( String app )

iot.agile.Device

The Device API abstracts operations over the real device. It send commands to a Protocol API instance to which is binded.

Properties

  • String Id
  • String Name
  • StatusType Status
  • KeyValue Configuration
  • Object* Profile

Methods

  • RecordObject Read( String component )
    Read data from the component
  • Array ReadAll( )
    Read from all components of the device
  • RecordObject LastUpdate( String component )
    Last update from the component
  • Array LastUpdateAll( )
    Last update of all components of the device
  • void Execute( String op , Object* payload )
    Perform an action on the device or sensor side triggering the underline Protocol specific implementation.
  • void Connect( )
    Connect or initialize the underlying Protocol connection implementation if required or available.
  • void Disconnect( )
    Disconnect or clean up the underlying Protocol connection implementation if required or available.
  • void Write( String component , RecordObject data )
  • void Subscribe( String component )
    Enable subscription to a specific sensor or data stream, triggering the underlying Protocol implementation if supported.
  • void Unsubscribe( String component )
    Disable a subscription to a specific sensor or data stream, triggering the underlying Protocol implementation if supported.

iot.agile.DeviceManager

The DeviceManager list the registered devices available from the gateway available protocols. This API is responsible to instantiate the reference DBus object for every device and offer management and integration points.

Properties

Methods

  • Array Find( BaseQuery query )
    Search for devices by specific criteria
  • DeviceDefinition Create( DeviceDefinition device )
    Create (register) a new device in the manager
  • DeviceDefinition Read( String Id )
    Load a device definition by its agile ID
  • void Update( String Id , DeviceDefinition Definition )
    Updates a device definition by its agile ID
  • void Delete( String Id )
    Delete a device definition by its ID. This will deactivate the Device DBus object
  • void Batch( Enum operation , Object* arguments )
    Perform a batch operation over a set of devices.

iot.agile.Protocol

A Protocol object abstract operations over a specific protocol implementation. Every Device has one Protocol used to establish and use a communication exchange.

Properties

  • String Driver
  • String Name

Methods

  • void Connect( String deviceId )
    Abstract a connection, setup or initialization for a protocol managed device
  • void Disconnect( String deviceId )
    Abstract disconnect, tear down or uninitailization process for a managed device
  • void StartDiscovery( )
    Initiate a discovery operation
  • void StopDiscovery( )
    Stop a discovery operation
  • ProtocolMessage Write( String deviceId , KeyValue arguments )
    Send data over the protocol
  • RecordObject Read( String deviceId , KeyValue arguments )
    Read data over the Protocol, may be cached in the Data property depending on implementation to save resources
  • void Subscribe( String deviceId , KeyValue arguments )
    Subscribe to data updates over the Protocol
  • RecordObject Unsubscribe( String deviceId , KeyValue arguments )
    Unsubscribe to data updates over the Protocol

iot.agile.ProtocolManager

The ProtocolManager list the managed protocols in the gateway. From this interface is possible to add and remove protocols and start/stop multiprotocol discovery. The discovery process will list all found devices under the `Devices` property. Those discovered devices may be added to the [DeviceManager](#iot.agile.DeviceManager) to be configured and made operational.

Properties

  • Array[DiscoveryStatus] DiscoveryStatus

Methods

  • void StartDiscovery( DiscoverParam params )
    Start discovery on all the managed Protocols
  • void StopDiscovery( )
    Stop the ongoing discovery on all the managed Protocols
  • void Add( iot.agile.Protocol protocol )
    Add a new Protocol
  • void Remove( iot.agile.Protocol protocol )
    Remove a managed Protocol

iot.agile.Network


Properties

  • Boolean Status
  • Array[String] Connections
  • Array[String] Devices

Methods

  • void CreateAP( String subnet , String gateway , String password )
    Create a local access point
  • void ScanWiFi( )
    Search for available WiFi

iot.agile.Storage.Driver

A Driver component is in charge of data storage and retrieval on a specific implementation. It may be a local database or an online services via APIs

Properties

  • String Name
  • Boolean Enabled
  • DriverStatus Status
  • Boolean Error
  • Object Params
  • String Logs

Methods

  • String Create( RecordObject record )
    Creates a record
  • RecordObject Read( String id )
    Load a record by Id
  • void Update( String id , RecordObject record )
    Updates a record
  • void Delete( String id )
    Delete a record by Id
  • Array Find( BaseQuery query )
    Search for a set of records by criterias

iot.agile.Storage.DriverManager

The DriverManager component is in charge for handling the status of different Drivers available in the system.

Properties

Methods

  • void Add( iot.agile.Storage.Driver driver , Boolean enable )
    Add a driver reference instance
  • void Remove( iot.agile.Storage.Driver driver )
    Remove (and implicitly disable) a driver reference instance
  • void Enable( iot.agile.Storage.Driver driver )
    Enable a driver reference instance
  • void Disable( iot.agile.Storage.Driver driver )
    Disable a driver reference instance
  • Object Status( iot.agile.Storage.Driver driver )
    Query a Driver to report the current status.

iot.agile.Storage

The Storage component offer an abstraction for Devices to store and fetch data in a generic way. Write operations happens on all the enabled Drivers; Failure of a single Driver doesn't make faile the whole write but only reported Read operations work on a default driver, if specified, which acts as preferred source. In case default is not available or fails, read will be executed in cascade on the enabled Driver. If none replies the operation fails.

Properties

Methods

  • String Create( RecordObject record )
    Creates a record
  • RecordObject Read( String Id )
    Load a record by Id
  • void Update( String Id , RecordObject Record )
    Updates a record
  • void Delete( String Id )
    Delete a record by Id
  • Array Find( BaseQuery query )
    Search for a set of records by criterias

Types


  • Object DeviceOverview
  • Object DiscoverParam
  • Object DiscoveryStatus
  • Object ProtocolMessage
  • Object ProtocolOverview
  • Object* ProtocolProfile
  • Enum ProtocolStatus
  • Enum ChannelTypeEnum
  • Object DeviceComponent
  • Object DeviceDefinition
  • Object DeviceStreamChannel
  • Object RegisterPayload
  • Enum StatusType
  • Enum DriverStatus
  • Object RecordObject
  • Object BaseQuery
  • Object* KeyValue