Difference between revisions of "BLEGattCentral"

From AMTech WikiDocs
Jump to: navigation, search
 
(9 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
Bridge BLE GATT services and characteristics read and write to IoT DAP protocol.
 
Bridge BLE GATT services and characteristics read and write to IoT DAP protocol.
 
*leverages BLE GATT ([https://www.safaribooksonline.com/library/view/getting-started-with/9781491900550/ch04.html Generic Attribute Profile]) standard
 
*leverages BLE GATT ([https://www.safaribooksonline.com/library/view/getting-started-with/9781491900550/ch04.html Generic Attribute Profile]) standard
*services and characteristics can be configuring setting gattProfileConfig property
+
*services and characteristics can be configured setting gattProfileConfig property
 
**'''Advertised device name''' List of devices name to be discovered (names the manufacture uses to advertise the device)  
 
**'''Advertised device name''' List of devices name to be discovered (names the manufacture uses to advertise the device)  
 
**'''Frequency to read characteristics value(s)''' an [https://www.iso.org/iso-8601-date-and-time-format.html ISO 8601] string duration; representing how frequently characterictics values will be collected; defaults to 1 minute iso 8601 PT1M  
 
**'''Frequency to read characteristics value(s)''' an [https://www.iso.org/iso-8601-date-and-time-format.html ISO 8601] string duration; representing how frequently characterictics values will be collected; defaults to 1 minute iso 8601 PT1M  
Line 10: Line 10:
 
**'''Characteristics UUID and name'''(can be selected for a list of supported characteristics specified at [https://www.bluetooth.com/specifications/gatt/characteristics GATT services]  
 
**'''Characteristics UUID and name'''(can be selected for a list of supported characteristics specified at [https://www.bluetooth.com/specifications/gatt/characteristics GATT services]  
 
[[File:charctersList.png|950px||thumbnail|center|Characteristics configuration]]
 
[[File:charctersList.png|950px||thumbnail|center|Characteristics configuration]]
**Metadata information used to parser characteristic buffer
+
**Metadata information used to parse characteristic buffer
 
***parmas
 
***parmas
 
***extra
 
***extra
 
[[File:GattFlagsAndExtra.png|950px||thumbnail|center|Parser configuration]]  
 
[[File:GattFlagsAndExtra.png|950px||thumbnail|center|Parser configuration]]  
**'''Smoothing criteria''' each values decoded from the characteristic value can be configure to be smoothed by
+
**'''Smoothing criteria''' each values decoded from the characteristic value can be configured to be smoothed based on the following filters
 +
***never
 +
***always
 +
***percentage changed
 +
***value changed
 +
***less than
 +
***greater than
 +
***range
 
[[File:smoothingOptionGattP.png|950px||thumbnail|center|Smoothing configuration]]  
 
[[File:smoothingOptionGattP.png|950px||thumbnail|center|Smoothing configuration]]  
 
*Placeholders (See [[Sensor%27s_network#Placeholders_substitution|Placeholders]])  
 
*Placeholders (See [[Sensor%27s_network#Placeholders_substitution|Placeholders]])  
** None
+
** #{bleGattCharacID} Characteristic UUID
 +
** #{bleGattCharacName} Characteristic name
 +
** #{bleGattServiceID} Service UUID
 +
** #{bleGattServiceName} Service name
 
*Produced observations (see /amtech/linkeddata/types/composite/observation)
 
*Produced observations (see /amtech/linkeddata/types/composite/observation)
**/amtech/linkeddata/types/composite/observation/bLEServicesRead
+
**/amtech/linkeddata/types/composite/observation/bleGattCharacteristic
 
*Commands (see /amtech/linkeddata/types/composite/observation)
 
*Commands (see /amtech/linkeddata/types/composite/observation)
**/None
+
**/amtech/linkeddata/types/composite/observation/bleGattCharacteristic
 +
=== Observation example for Battery Service ===
 +
*Configuration
 +
<syntaxhighlight lang="json">
 +
{
 +
  "_uuid": "0x180F",
 +
  "_name": "Battery Service",
 +
  "characteristics": [
 +
    {
 +
      "_cuuid": "0x2A19",
 +
      "_name": "Battery Level",
 +
      "_read": true,
 +
      "_write": false,
 +
      "metadata": {
 +
        "params": [
 +
          {
 +
            "param": "level",
 +
            "type": "uint8",
 +
            "bufLen": 1,
 +
            "onValueChanged": {
 +
              "_name": "lessThan",
 +
              "_criteria": 50
 +
            }
 +
          }
 +
        ],
 +
        "extra": []
 +
      }
 +
    }
 +
  ]
 +
}
 +
</syntaxhighlight>
 +
*Observation
 +
<syntaxhighlight lang="jsonld">
 +
{
 +
    "bleGattCharacID": "0x2a19",
 +
    "proximityarea": "",
 +
    "smoothingResult": "new",
 +
    "blePeripheralUuid": "5d2036dac8d2",
 +
    "@type": "/amtech/linkeddata/types/composite/observation/bleGattCharacteristic",
 +
    "detectiontime": "Wed Sep 20 20:20:48 UTC 2017",
 +
    "occurrencetime": "Wed Sep 20 20:20:47 UTC 2017",
 +
    "bleGattServiceName": "Battery Service",
 +
    "bleGattServiceID": "0x180f",
 +
    "_tenant": "followerbridgetest",
 +
    "bleGattCharacValue": "{\"level\":50}",
 +
    "bleDeviceName": "SAMSUNG-SM-N910A",
 +
    "guesttenants": [],
 +
    "topic": "/m2mBridgeTest/bleCentral/characteristic",
 +
    "producer": "BLEGattCentral",
 +
    "location": "{\"wkt\":\"POINT(-117.72036439999998 33.705365)\",\"sContext\":\"geo\",\"hash\":\"9mur9pyeuxqjv7rf31th6mpb\"}",
 +
    "_user": "smartsensor@amtech.mx",
 +
    "@id": "/amtech/things/observations/obs_6423b318e02c470ab2986747d5e5c8d3",
 +
    "targetthings": "[{\"thingType\":\"/amtech/linkeddata/types/composite/entity/BLEGattCentral\",\"thingsId\":[\"bleCentral:a0:88:69:31:30:b7:testBLECentral\"]}]",
 +
    "bleGattCharacName": "Battery Level",
 +
    "guestusers": []
 +
}
 +
</syntaxhighlight>
 +
Edge Intelligence
 +
**[[Smoothing_observations|Smoothing observations]]

Latest revision as of 14:10, 2 February 2018

BLEGattCentral

Bridge BLE GATT services and characteristics read and write to IoT DAP protocol.

  • leverages BLE GATT (Generic Attribute Profile) standard
  • services and characteristics can be configured setting gattProfileConfig property
    • Advertised device name List of devices name to be discovered (names the manufacture uses to advertise the device)
    • Frequency to read characteristics value(s) an ISO 8601 string duration; representing how frequently characterictics values will be collected; defaults to 1 minute iso 8601 PT1M
    • The amount of read cycles, the smoothing logic will consider for calculating lost observations
    • Service UUID and name
BLEGattCentral GATT configuration
    • Characteristics UUID and name(can be selected for a list of supported characteristics specified at GATT services
Characteristics configuration
    • Metadata information used to parse characteristic buffer
      • parmas
      • extra
Parser configuration
    • Smoothing criteria each values decoded from the characteristic value can be configured to be smoothed based on the following filters
      • never
      • always
      • percentage changed
      • value changed
      • less than
      • greater than
      • range
Smoothing configuration
  • Placeholders (See Placeholders)
    • #{bleGattCharacID} Characteristic UUID
    • #{bleGattCharacName} Characteristic name
    • #{bleGattServiceID} Service UUID
    • #{bleGattServiceName} Service name
  • Produced observations (see /amtech/linkeddata/types/composite/observation)
    • /amtech/linkeddata/types/composite/observation/bleGattCharacteristic
  • Commands (see /amtech/linkeddata/types/composite/observation)
    • /amtech/linkeddata/types/composite/observation/bleGattCharacteristic

Observation example for Battery Service

  • Configuration
{
  "_uuid": "0x180F",
  "_name": "Battery Service",
  "characteristics": [
    {
      "_cuuid": "0x2A19",
      "_name": "Battery Level",
      "_read": true,
      "_write": false,
      "metadata": {
        "params": [
          {
            "param": "level",
            "type": "uint8",
            "bufLen": 1,
            "onValueChanged": {
              "_name": "lessThan",
              "_criteria": 50
            }
          }
        ],
        "extra": []
      }
    }
  ]
}
  • Observation
{
    "bleGattCharacID": "0x2a19",
    "proximityarea": "",
    "smoothingResult": "new",
    "blePeripheralUuid": "5d2036dac8d2",
    "@type": "/amtech/linkeddata/types/composite/observation/bleGattCharacteristic",
    "detectiontime": "Wed Sep 20 20:20:48 UTC 2017",
    "occurrencetime": "Wed Sep 20 20:20:47 UTC 2017",
    "bleGattServiceName": "Battery Service",
    "bleGattServiceID": "0x180f",
    "_tenant": "followerbridgetest",
    "bleGattCharacValue": "{\"level\":50}",
    "bleDeviceName": "SAMSUNG-SM-N910A",
    "guesttenants": [],
    "topic": "/m2mBridgeTest/bleCentral/characteristic",
    "producer": "BLEGattCentral",
    "location": "{\"wkt\":\"POINT(-117.72036439999998 33.705365)\",\"sContext\":\"geo\",\"hash\":\"9mur9pyeuxqjv7rf31th6mpb\"}",
    "_user": "smartsensor@amtech.mx",
    "@id": "/amtech/things/observations/obs_6423b318e02c470ab2986747d5e5c8d3",
    "targetthings": "[{\"thingType\":\"/amtech/linkeddata/types/composite/entity/BLEGattCentral\",\"thingsId\":[\"bleCentral:a0:88:69:31:30:b7:testBLECentral\"]}]",
    "bleGattCharacName": "Battery Level",
    "guestusers": []
}

Edge Intelligence