From 670fa4217bfffc97e257377c14bd1dc981d0ff88 Mon Sep 17 00:00:00 2001 From: MatrixEditor Date: Sat, 13 Jan 2024 17:05:57 +0000 Subject: [PATCH] deploy: b18a63028cb115b1bc89c40146c9d2e5533243a5 --- API/blesdk.html | 409 +++++++++++++++++++++++++- API/index.html | 35 ++- _modules/index.html | 239 +++++++++++++++ _modules/oralb/blesdk/brush.html | 484 +++++++++++++++++++++++++++++++ genindex.html | 269 ++++++++++++++++- objects.inv | Bin 371 -> 813 bytes py-modindex.html | 267 +++++++++++++++++ searchindex.js | 2 +- usage.html | 4 +- 9 files changed, 1695 insertions(+), 14 deletions(-) create mode 100644 _modules/index.html create mode 100644 _modules/oralb/blesdk/brush.html create mode 100644 py-modindex.html diff --git a/API/blesdk.html b/API/blesdk.html index 216f6b1..2ded877 100644 --- a/API/blesdk.html +++ b/API/blesdk.html @@ -206,15 +206,331 @@ -
-

Model Structs#

+
+

Model Structs#

+
+
+class oralb.blesdk.model.BatteryLevel(level: int, seconds_left: int, milli_volts: int = 0, milli_amperes: int = 0, temperature: int = 0, avail_soc: int = 0, dcmas: int = 0, rcmas: int = 0, soc_state: int = 0)#
+
+ +
+
+class oralb.blesdk.model.Button(state: oralb.blesdk.model.Button.State)#
+
+
+class State(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)#
+
+ +
+ +
+
+class oralb.blesdk.model.CalibrationData(calibration_x: int, calibration_y: int, calibration_z: int)#
+
+ +
+
+class oralb.blesdk.model.Color(*, red: int, green: int, blue: int, identifier: int)#
+

Characteristic representing a color.

+
+ +
+
+class oralb.blesdk.model.Control(command: int, parameter: int = 0)#
+
+
+class DataRead(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)#
+
+ +
+
+class METADATA(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)#
+
+ +
+ +
+
+class oralb.blesdk.model.DashboardConfig(session_id: int, divider: oralb.blesdk.model.DashboardConfig.Divider)#
+
+
+class Divider(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)#
+
+ +
+ +
+
+class oralb.blesdk.model.DashboardData(status: oralb.blesdk.model.DashboardData.Status, timestamp: int, gyro_x: int, gyro_y: int, gyro_z: int, motion_x: int, motion_y: int, motion_z: int)#
+
+
+class Status(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)#
+
+ +
+ +
+
+class oralb.blesdk.model.DeviceName(text: str)#
+
+ +
+
+class oralb.blesdk.model.DeviceState(state: State, sub_state: SubState)#
+

Represents the state of a device.

+
+
+class State(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)#
+

Enumeration representing the main states of the device.

+
+ +
+
+class SubState(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)#
+

Enumeration representing the sub-states of the device.

+
+ +
+ +
+
+class oralb.blesdk.model.GyroMotionData(timestamp: int, gyro_x: int, gyro_y: int, gyro_z: int, motion_x: int, motion_y: int, motion_z: int)#
+
+ +
+
+class oralb.blesdk.model.HighResolutionMotionData(motion_x: int, motion_y: int, motion_z: int)#
+
+ +
+
+class oralb.blesdk.model.MotionData(timestamp: int, motion_x: int, motion_y: int, motion_z: int)#
+
+ +
+
+class oralb.blesdk.model.OTACommand(command: oralb.blesdk.model.OTACommand.Command)#
+
+
+class Command(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)#
+
+ +
+ +
+
+class oralb.blesdk.model.OTAPayload(payload: memoryview)#
+
+ +
+
+class oralb.blesdk.model.OTAState(state: oralb.blesdk.model.OTAState.State)#
+
+
+class State(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)#
+
+ +
+ +
+
+class oralb.blesdk.model.OTATransferSize(value: int)#
+
+ +
+
+class oralb.blesdk.model.Pressure(*, state: oralb.blesdk.model.Pressure.State, timestamp_a: int, record_a: int, timestamp_b: int, record_b: int, identifier: int)#
+
+
+class State(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)#
+
+ +
+ +
+
+class oralb.blesdk.model.RTC(epochMillis: int = 946684800000)#
+
+ +
+
+class oralb.blesdk.model.RefillRemainder(state: oralb.blesdk.model.RefillRemainder.State, days_left: int, brushing_seconds_left: int)#
+
+
+class State(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)#
+
+ +
+ +
+
+class oralb.blesdk.model.SensorData#
+
+
+class Data(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)#
+
+ +
+
+decode(parsed: bytes, context) None#
+

Decode data using the wrapped _StructLike object.

+
+
Parameters:
+
    +
  • parsed – The parsed data to be decoded.

  • +
  • context – The current context.

  • +
+
+
Returns:
+

The decoded data.

+
+
+
+ +
+
+encode(obj, context) bytes#
+

Encode data using the wrapped _StructLike object.

+
+
Parameters:
+
    +
  • obj – The original data to be encoded.

  • +
  • context – The current context.

  • +
+
+
Returns:
+

The encoded data.

+
+
+
+ +
+ +
+
+class oralb.blesdk.model.Smiley(face: oralb.blesdk.model.Smiley.Face)#
+
+
+class Face(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)#
+
+ +
+ +
+
+class oralb.blesdk.model.Timezone(zone: int)#
+
+ +
+
+class oralb.blesdk.model.TongueTime(duration: int)#
+
+ +
+
+class oralb.blesdk.model.UserID(id_: int)#
+

Characteristic representing a user ID.

+
+ +
+
+oralb.blesdk.model.make_uuid(cid: str) str#
+

Generates a uuid from the given short uuid

+
+ +
+
+oralb.blesdk.model.register(cid: str, model) None#
+

Registers a new struct type to the given uuid

+
+

Metadata Structs#

-
-

Client#

+
+

Client#

@@ -266,12 +582,91 @@

Client#
  • BLE SDK diff --git a/API/index.html b/API/index.html index 48fbd54..5f57276 100644 --- a/API/index.html +++ b/API/index.html @@ -203,12 +203,41 @@

    Contents:

    • BLE SDK diff --git a/_modules/index.html b/_modules/index.html new file mode 100644 index 0000000..310ea04 --- /dev/null +++ b/_modules/index.html @@ -0,0 +1,239 @@ + + + + + + + + Overview: module code - OralB-IO 0.1.0 documentation + + + + + + + + + + + + + + + + + Contents + + + + + + Menu + + + + + + + + Expand + + + + + + Light mode + + + + + + + + + + + + + + Dark mode + + + + + + + Auto light/dark mode + + + + + + + + + + + + + + + + + + + +
      +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      +
      +
      + + + + + Back to top + +
      +
      + +
      + +
      + +
      +
      + + +
      +
      + + Made with Sphinx and @pradyunsg's + + Furo + +
      +
      + +
      +
      + +
      +
      + +
      +
      + + + + + + \ No newline at end of file diff --git a/_modules/oralb/blesdk/brush.html b/_modules/oralb/blesdk/brush.html new file mode 100644 index 0000000..ae90549 --- /dev/null +++ b/_modules/oralb/blesdk/brush.html @@ -0,0 +1,484 @@ + + + + + + + + oralb.blesdk.brush - OralB-IO 0.1.0 documentation + + + + + + + + + + + + + + + + + Contents + + + + + + Menu + + + + + + + + Expand + + + + + + Light mode + + + + + + + + + + + + + + Dark mode + + + + + + + Auto light/dark mode + + + + + + + + + + + + + + + + + + + +
      +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      +
      +
      + + + + + Back to top + +
      +
      + +
      + +
      +
      +

      Source code for oralb.blesdk.brush

      +# Copyright (C) MatrixEditor 2023
      +#
      +# This program is free software: you can redistribute it and/or modify
      +# it under the terms of the GNU General Public License as published by
      +# the Free Software Foundation, either version 3 of the License, or
      +# (at your option) any later version.
      +#
      +# This program is distributed in the hope that it will be useful,
      +# but WITHOUT ANY WARRANTY; without even the implied warranty of
      +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      +# GNU General Public License for more details.
      +#
      +# You should have received a copy of the GNU General Public License
      +# along with this program.  If not, see <https://www.gnu.org/licenses/>.
      +import enum
      +from typing import List
      +
      +from caterpillar.model import struct
      +from caterpillar.shortcuts import ctx, F, this, LittleEndian
      +from caterpillar.fields import uint8, Enum, uint32
      +
      +from .advertise import ProtocolVersion
      +from .model import characteristic, DeviceState, Pressure
      +from .model import CH_BRUSHING_MODE, CH_BRUSHING_TIME
      +from .model import CH_QUADRANT, CH_DEVICE_ID, CH_DEVICE_INFO
      +from .model import CH_BRUSH_MODES
      +
      +
      +class BrushType(enum.IntEnum):
      +    __struct__ = uint8
      +
      +    UNKNOWN = 153
      +    EXPERIMENTAL = 255
      +    D36_EXPERIMENTAL = 63
      +    D36_X_MODE = 0
      +    D36_6_MODE = 1
      +    D36_5_MODE = 2
      +    D21_EXPERIMENTAL = 127
      +    D21_X_MODE = 64
      +    D21_4_MODE = 65
      +    D21_3_MODE = 66
      +    D21_3_MODE_WHITENING = 69
      +    D21_2A_MODE = 67
      +    D21_2B_MODE = 68
      +    D21_1_MODE = 70
      +    D706_X_MODE = 112
      +    D706_6_MODE = 113
      +    D706_5_MODE = 114
      +    D706_X_MODE_CHINA = 117
      +    D706_6_MODE_CHINA = 118
      +    D706_5_MODE_CHINA = 119
      +    D701_X_MODE = 32
      +    D701_6_MODE = 33
      +    D701_5_MODE = 34
      +    D700_5_MODE = 39
      +    D700_4_MODE = 40
      +    D700_6_MODE = 41
      +    D601_X_MODE = 80
      +    D601_5_MODE = 81
      +    D601_4_MODE = 82
      +    D601_3A_MODE = 83
      +    D601_2A_MODE = 84
      +    D601_2B_MODE = 85
      +    D601_3B_MODE = 86
      +    D601_1_MODE = 87
      +    SONOS_X_MODE = 48
      +    SONOS = 49  # SONOS IO
      +    SONOS_BIG_TI = 50  # SONOS IO (BIG TI)
      +    SONOS_G4 = 52  # SONOS GALAXY (IO 4)
      +    SONOS_G5 = 53  # SONOS GALAXY (IO 5)
      +    SONOS_EPLATFORM = 54
      +
      +
      +class BrushStatus(enum.IntEnum):
      +    __struct__ = uint8
      +
      +    UNKNOWN = 0xFF
      +    NOT_CONNECTED = 0
      +    PRE_RUN = 1
      +    IDLE = 2
      +    CHARGING = 3
      +    RUN = 4
      +
      +    # the following codes were taken from
      +    # https://github.com/wise86-android/OralBlue_python/blob/master/OralBlue/BrushState.py
      +    SETUP = 0x05
      +    FLIGHT_MENU = 0x06
      +    FINAL_TEST = 0x71
      +    PCB_TEST = 0x72
      +    SLEEP = 0x73
      +    TRANSPORT = 0x74
      +
      +
      +class Mode(enum.IntEnum):
      +    __struct__ = uint8
      +
      +    UNKNOWN = 0xFF
      +    OFF = 0
      +    DAILY_CLEAN = 1
      +    SENSITIVE = 2
      +    MASSAGE = 3
      +    WHITENING = 4
      +    DEEP_CLEAN = 5
      +    TONGUE_CLEAN = 6
      +    PRO_CLEAN = 7
      +
      +
      +class V006Mode(enum.IntEnum):
      +    __struct__ = uint8
      +
      +    UNKNOWN = 0xFF
      +    V006_CLEAN = 0
      +    V006_SOFT = 1
      +    V006_MASSAGE = 2
      +    V006_POLISH = 3
      +    V006_TURBO = 4
      +    V006_SOFT_PLUS = 5
      +    V006_TONGUE = 6
      +    V006_OFF = 7
      +    V006_SETTINGS = 8
      +
      +
      +class Quadrant(enum.IntEnum):
      +    __struct__ = uint8
      +
      +    UNKNOWN = 0xFE
      +    FIRST_QUADRANT = 0
      +    SECOND_QUADRANT = 1
      +    THIRD_QUADRANT = 2
      +    FOURTH_QUADRANT = 3
      +    FIFTH_QUADRANT = 4
      +    SIXTH_QUADRANT = 5
      +    SEVENTH_QUADRANT = 6
      +    EIGHTH_QUADRANT = 7
      +    LAST_QUADRANT = 0xFF
      +    NO_QUADRANTS_DEFINED = 0xF0
      +
      +
      +@characteristic(CH_BRUSHING_TIME, "brushing_time")
      +@struct(kw_only=False)
      +class BrushingTime:
      +    minutes: uint8
      +    seconds: uint8
      +
      +
      +def _brush_mode_fn(value, context):
      +    if value >= 6 or value == 0:
      +        return F(Enum(V006Mode, uint8))
      +
      +    return F(Enum(Mode, uint8))
      +
      +
      +@characteristic(CH_BRUSHING_MODE, "brushing_mode")
      +@struct(kw_only=False)
      +class BrushingMode:
      +    mode: F(ctx._root.protocol) >> _brush_mode_fn
      +
      +
      +@characteristic(CH_QUADRANT, "toothbrush_quadrant")
      +@struct(kw_only=False)
      +class ToothbrushQuadrant:
      +    quadrant: Quadrant
      +    num_quadrants: uint8
      +
      +
      +@characteristic(CH_BRUSH_MODES, "brush_modes")
      +@struct(kw_only=False)
      +class BrushModes:
      +    modes: uint8[8]
      +
      +    def get_modes(self) -> List[Mode]:
      +        return list(map(Mode, self.modes))
      +
      +
      +@characteristic(CH_DEVICE_INFO, "brush_info")
      +@struct(kw_only=False)
      +class BrushInfo:
      +    type: BrushType
      +    protocol: ProtocolVersion
      +    version: uint8
      +
      +
      +@characteristic(CH_DEVICE_ID, "brush_id")
      +@struct(kw_only=False, order=LittleEndian)
      +class BrushID:
      +    id: uint32
      +
      +
      +def _brush_status_fn(value: ProtocolVersion, context):
      +    if value <= 5:
      +        # An advertisement before V006 contains
      +        # the current pressure state.
      +        return Enum(Pressure.State, uint8)
      +    return Enum(BrushStatus, uint8)
      +
      +
      +
      +[docs] +@struct +class BrushAdvertisement: + """Bluetooth Low Energy advertise sent from oral-b devices.""" + + #: The used protocol version. Note that the packet structure + #: may change according to the version configuration + protocol: ProtocolVersion + + #: the device type (this value conforms to a model identifier + #: and is not the model name) + type: BrushType + + #: the current firmware version + version: uint8 + + #: Describes the current state of the device. + state: DeviceState.State + + #: In packets using protocol version below V006, this value + #: describes the current pressure measurement. Otherwise, + #: another device status is set. + status: F(this.protocol) >> _brush_status_fn + + #: Defines the current brushing time in minutes + brush_time_min: uint8 + + #: Defines the current brushing time in seconds + brush_time_sec: uint8 + + #: Specifies the currently used brushing mode. The used enumeration + #: varies based on the current protocol version. + brush_mode: F(this.protocol) >> _brush_mode_fn + + #: This field displays the current brushing progress (no real + #: use-case?) + brush_progress: uint8 + + #: describes, which quadrant is currently processed (only during + #: a brushing session) + quadrant_completion: Quadrant + + #: This fields specifies either the amount of quadrants or (only in + #: V008) a device substate. + total_quadrants: uint8
      + + + # TODO: + # @property + # def pressure(self) -> Pressure: ... +
      +
      +
      +
      + + +
      +
      + + Made with Sphinx and @pradyunsg's + + Furo + +
      +
      + +
      +
      + +
      +
      + +
      +
      + + + + + + \ No newline at end of file diff --git a/genindex.html b/genindex.html index a0e419c..2938645 100644 --- a/genindex.html +++ b/genindex.html @@ -197,8 +197,275 @@

      Index

      -
      +
      B | C | D | E | G | H | M | O | P | Q | R | S | T | U | V
      +
      +

      B

      + + + +
      +
      + +
      +

      C

      + + + +
      +
      + +
      +

      D

      + + + +
      +
      + +
      +

      E

      + + +
      +
      + +
      +

      G

      + + +
      +
      + +
      +

      H

      + + +
      +
      + +
      +

      M

      + + + +
      +
      + +
      +

      O

      + + + +
      +
      + +
      +

      P

      + + + +
      +
      + +
      +

      Q

      + + +
      +
      + +
      +

      R

      + + + +
      +
      + +
      +

      S

      + + + +
      +
      + +
      +

      T

      + + + +
      +
      + +
      +

      U

      + + +
      +
      + +
      +

      V

      + + +
      +
      + diff --git a/objects.inv b/objects.inv index 996b3fe6fb508af9b76ac59dfebc8b104aa68e49..9f7c61625814408a9b312ef4a0ef89811ce71046 100644 GIT binary patch delta 702 zcmV;v0zv)r0<8v+dw;E$$!^;)5J2z#3Ks3vYJ1JiOWGPu8pC$cqcM`kG7&B=7bD84 zztP|8my{B%*ouQJBV7!MocAe*;9>%$n@ z>vX0?AFkgXas$e(Gc9)l9oM}y+B$I9m&o@rvQ9e?>!!W^D9c?hjSSD0(((1wdUlZx z&n+(`^Y|N?;0I$^v|b?lbY_ed!?X0NRW9gcG7g=Aro6&^)VzA%IpE&8*r_BiSvGU{ zjrarvPYqN{X@3e1Ch$J1DL%SEK1@H6kdcV7I9TlLyy^7u^lX zl<#?tri+O^q2vdi!L6Z)GRru$&8-FxQeoryXt3#qUT~KoNi`9fe z;f4#bKnYyYwy{SBa{fzHRvY51Kf+0OLypaiTH&gTo92t&2GYAjfbV+46omIa#Y62jpl-Y4ZxI0^DnhJH{754F6UB~{?0St} zuP4D^lGuR6# + + + + + + Python Module Index - OralB-IO 0.1.0 documentation + + + + + + + + + + + + + + + + + Contents + + + + + + Menu + + + + + + + + Expand + + + + + + Light mode + + + + + + + + + + + + + + Dark mode + + + + + + + Auto light/dark mode + + + + + + + + + + + + + + + + + + + +
      +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      +
      +
      + + + + + Back to top + +
      +
      + +
      + +
      + +
      +
      + + +
      +
      + + Made with Sphinx and @pradyunsg's + + Furo + +
      +
      + +
      +
      + +
      +
      + +
      +
      + + + + + + \ No newline at end of file diff --git a/searchindex.js b/searchindex.js index 2e11215..d61f891 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["API/blesdk", "API/index", "examples", "index", "usage"], "filenames": ["API/blesdk.rst", "API/index.rst", "examples.rst", "index.rst", "usage.rst"], "titles": ["BLE SDK", "API Reference", "Examples", "Welcome to OralB-IO\u2019s documentation!", "CLI Usage"], "terms": {"For": 0, "more": 0, "inform": [0, 4], "about": 0, "us": [0, 2, 3, 4], "integ": 0, "type": [0, 2, 4], "refer": [0, 2], "sourc": 0, "code": 0, "instead": 0, "ble": [1, 3, 4], "sdk": 1, "advertis": 1, "model": [1, 2, 4], "struct": [1, 3], "metadata": [1, 4], "client": [1, 2, 3, 4], "thi": [2, 3, 4], "document": 2, "tri": [2, 4], "provid": 2, "overview": 2, "possibl": [2, 4], "scenario": 2, "librari": [2, 3], "can": [2, 3, 4], "IT": 2, "doesn": 2, "t": [2, 3], "aim": 2, "complet": [2, 4], "consid": 2, "start": [2, 4], "point": 2, "we": [2, 4], "either": 2, "context": 2, "manag": [2, 3], "manual": [2, 4], "oralbcli": [2, 3, 4], "from": [2, 4], "oralb": [2, 4], "bledsk": 2, "import": 2, "async": 2, "def": 2, "main": 2, "contect": 2, "automat": 2, "disconnect": 2, "mac": 2, "ff": [2, 4], "now": 2, "i": [2, 4], "The": [2, 3, 4], "current": [2, 4], "implement": 2, "doe": 2, "therefor": 2, "custom": 2, "command": [2, 4], "ha": 2, "sent": 2, "devic": [2, 3], "same": 2, "procedur": 2, "abov": 2, "blesdk": 2, "control": [2, 4], "ch_control": 2, "1": [2, 4], "creat": 2, "object": 2, "choos": 2, "how": 2, "mani": 2, "second": [2, 4], "would": 2, "like": 2, "255": [2, 4], "extend_connect": 2, "2": [2, 4], "just": [2, 4], "await": 2, "saw": 2, "certain": [2, 4], "To": [2, 4], "valu": [2, 4], "ar": [2, 3, 4], "two": 2, "option": [2, 4], "caterpillar": 2, "shortcut": 2, "pack": 2, "color": [2, 4], "ch_my_color": 2, "you": [2, 4], "characterist": 2, "its": [2, 4], "name": [2, 4], "my_color": 2, "raw": 2, "data": 2, "byte": [2, 4], "attribut": 2, "access": [2, 4], "set": 2, "new_valu": 2, "yourself": 2, "respons": [2, 4], "true": 2, "ota": [2, 4], "firmwar": 2, "deliv": 2, "special": 2, "which": [2, 4], "defin": 2, "manifest": 2, "download": 2, "first": [2, 4], "info_url": 2, "otafirmwareinfo": 2, "brushtyp": 2, "select": [2, 4], "your": 2, "brush": 2, "sonos_big_ti": 2, "correspond": 2, "local": [2, 4], "china": 2, "host": 2, "return": 2, "403": 2, "avail": [2, 3], "load": 2, "info": [2, 4], "receiv": 2, "from_byt": 2, "dictionari": 2, "verifi": 2, "function": 2, "small": 3, "python": [3, 4], "project": 3, "includ": 3, "an": [3, 4], "unoffici": 3, "toothbrush": 3, "well": 3, "api": 3, "interact": [3, 4], "bluetooth": 3, "low": 3, "energi": 3, "featur": 3, "A": [3, 4], "cli": 3, "discov": 3, "asynchron": 3, "most": 3, "need": [3, 4], "commun": 3, "wa": 3, "written": 3, "3": [3, 4], "12": [3, 4], "all": [3, 4], "previou": 3, "version": 3, "mark": 3, "unsupport": 3, "haven": 3, "been": 3, "approv": 3, "yet": 3, "packag": 3, "via": 3, "pip": 3, "git": 3, "http": 3, "github": 3, "com": 3, "matrixeditor": 3, "index": 3, "modul": 3, "search": 3, "page": 3, "after": 4, "instal": 4, "addit": 4, "execut": 4, "It": 4, "shell": 4, "run": 4, "venv": 4, "befor": 4, "address": 4, "sampl": 4, "discoveri": 4, "establish": 4, "pair": 4, "lastli": 4, "pain": 4, "sometim": 4, "mai": 4, "call": 4, "multipl": 4, "time": 4, "successful": 4, "brefor": 4, "dm": 4, "74": 4, "b8": 4, "39": 4, "16": 4, "06": 4, "1b": 4, "ok": 4, "If": 4, "wish": 4, "anoth": 4, "util": 4, "There": 4, "termin": 4, "respos": 4, "everyth": 4, "work": 4, "sever": 4, "wai": 4, "okai": 4, "let": 4, "break": 4, "down": 4, "differ": 4, "each": 4, "store": 4, "intern": 4, "here": 4, "retriev": 4, "cid": 4, "short": 4, "uuid": 4, "past": 4, "whole": 4, "unknown": 4, "displai": 4, "plain": 4, "detail": 4, "sono": 4, "descript": 4, "servic": 4, "meta": 4, "sonos_typ": 4, "sonosmetadata": 4, "magic": 4, "m6": 4, "4": 4, "stormy_grei": 4, "5": 4, "languag": 4, "english_en": 4, "0": 4, "brush_mod": 4, "7": 4, "gum_guard": 4, "6": 4, "service_data_a": 4, "servicedataa": 4, "ideal_full_capac": 4, "average_motor_curr": 4, "total_monitor_runtim": 4, "978": 4, "total_pressur": 4, "34": 4, "total_charge_tim": 4, "28921": 4, "normal": 4, "taken": 4, "dataread": 4, "also": 4, "appli": 4, "new": 4, "make": 4, "sure": 4, "check": 4, "whether": 4, "support": 4, "oper": 4, "putchar": 4, "arg": 4, "have": 4, "": 4, "describ": 4, "view": 4, "requir": 4, "argument": 4, "h": 4, "chang": 4, "smilei": 4, "configur": 4, "face": 4, "help": 4, "show": 4, "messag": 4, "exit": 4, "int": 4, "descriptor": 4, "associ": 4, "order": 4, "treeview": 4, "00001800": 4, "0000": 4, "1000": 4, "8000": 4, "00805f9b34fb": 4, "handl": 4, "gener": 4, "profil": 4, "00002a00": 4, "without": 4, "a0f0ff00": 4, "5047": 4, "4d53": 4, "8208": 4, "4f72616c2d42": 4, "13": 4, "a0f0ff01": 4, "14": 4, "id": 4, "a0f0ff02": 4, "17": 4, "a0f0ff0c": 4, "55": 4, "cach": 4, "notifi": 4, "a0f0ff0d": 4, "59": 4, "sensor": 4, "a0f0ff20": 4, "63": 4, "a0f0ff21": 4, "64": 4, "statu": 4, "a0f0ff22": 4, "68": 4, "rtc": 4, "a0f0ff80": 4, "95": 4, "a0f0ff81": 4, "96": 4}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"ble": 0, "sdk": 0, "advertis": 0, "model": 0, "struct": 0, "metadata": 0, "client": 0, "api": 1, "refer": 1, "content": 1, "exampl": 2, "establish": 2, "connect": [2, 4], "extend": [2, 4], "read": [2, 4], "write": [2, 4], "charactersist": 2, "gener": 2, "an": 2, "updat": 2, "url": 2, "welcom": 3, "oralb": 3, "io": 3, "": 3, "document": 3, "instal": 3, "indic": 3, "tabl": 3, "cli": 4, "usag": 4, "discov": 4, "devic": 4, "characterist": 4, "special": 4, "data": 4, "experiment": 4, "list": 4, "implement": 4}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 60}, "alltitles": {"BLE SDK": [[0, "ble-sdk"]], "Advertisement": [[0, "advertisement"]], "Model Structs": [[0, "model-structs"]], "Metadata Structs": [[0, "metadata-structs"]], "Client": [[0, "client"]], "API Reference": [[1, "api-reference"]], "Contents:": [[1, null]], "Examples": [[2, "examples"]], "Establish a connection": [[2, "establish-a-connection"]], "Extending a connection": [[2, "extending-a-connection"], [4, "extending-a-connection"]], "Reading and writing charactersistics": [[2, "reading-and-writing-charactersistics"]], "Generating an update URL": [[2, "generating-an-update-url"]], "Welcome to OralB-IO\u2019s documentation!": [[3, "welcome-to-oralb-io-s-documentation"]], "Installation": [[3, "installation"]], "Indices and tables": [[3, "indices-and-tables"]], "CLI Usage": [[4, "cli-usage"]], "Discovering devices": [[4, "discovering-devices"]], "Connecting to devices": [[4, "connecting-to-devices"]], "Reading characteristics": [[4, "reading-characteristics"]], "Reading special data": [[4, "reading-special-data"]], "Writing characteristics (Experimental)": [[4, "writing-characteristics-experimental"]], "Listing implemented characteristics": [[4, "listing-implemented-characteristics"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["API/blesdk", "API/index", "examples", "index", "usage"], "filenames": ["API/blesdk.rst", "API/index.rst", "examples.rst", "index.rst", "usage.rst"], "titles": ["BLE SDK", "API Reference", "Examples", "Welcome to OralB-IO\u2019s documentation!", "CLI Usage"], "terms": {"For": 0, "more": 0, "inform": [0, 4], "about": 0, "us": [0, 2, 3, 4], "integ": 0, "type": [0, 2, 4], "refer": [0, 2], "sourc": 0, "code": 0, "instead": 0, "class": 0, "oralb": [0, 2, 4], "blesdk": [0, 2], "brushadvertis": [0, 1], "protocol": 0, "protocolvers": 0, "brushtyp": [0, 2], "version": [0, 3], "int": [0, 4], "state": 0, "statu": [0, 4], "ani": 0, "brush_time_min": 0, "brush_time_sec": 0, "brush_mod": [0, 4], "brush_progress": 0, "quadrant_complet": 0, "quadrant": 0, "total_quadr": 0, "bluetooth": [0, 3], "low": [0, 3], "energi": [0, 3], "sent": [0, 2], "from": [0, 2, 4], "oral": 0, "b": 0, "devic": [0, 2, 3], "specifi": 0, "current": [0, 2, 4], "brush": [0, 2], "mode": 0, "The": [0, 2, 3, 4], "enumer": 0, "vari": 0, "base": 0, "thi": [0, 2, 3, 4], "field": 0, "displai": [0, 4], "progress": 0, "real": 0, "case": 0, "defin": [0, 2], "time": [0, 4], "minut": 0, "second": [0, 2, 4], "note": 0, "packet": 0, "structur": 0, "mai": [0, 4], "chang": [0, 4], "accord": 0, "configur": [0, 4], "describ": [0, 4], "which": [0, 2, 4], "i": [0, 2, 4], "process": 0, "onli": 0, "dure": 0, "session": 0, "In": 0, "below": 0, "v006": 0, "valu": [0, 2, 4], "pressur": [0, 1], "measur": 0, "otherwis": 0, "anoth": [0, 4], "set": [0, 2], "either": [0, 2], "amount": 0, "v008": 0, "substat": 0, "conform": 0, "identifi": 0, "name": [0, 2, 4], "firmwar": [0, 2], "batterylevel": [0, 1], "level": 0, "seconds_left": 0, "milli_volt": 0, "0": [0, 4], "milli_amper": 0, "temperatur": 0, "avail_soc": 0, "dcma": 0, "rcma": 0, "soc_stat": 0, "button": [0, 1], "none": 0, "modul": [0, 3], "qualnam": 0, "start": [0, 2, 4], "1": [0, 2, 4], "boundari": 0, "calibrationdata": [0, 1], "calibration_x": 0, "calibration_i": 0, "calibration_z": 0, "color": [0, 1, 2, 4], "red": 0, "green": 0, "blue": 0, "characterist": [0, 2], "repres": 0, "control": [0, 1, 2, 4], "command": [0, 2, 4], "paramet": 0, "dataread": [0, 4], "dashboardconfig": [0, 1], "session_id": 0, "divid": 0, "dashboarddata": [0, 1], "timestamp": 0, "gyro_x": 0, "gyro_i": 0, "gyro_z": 0, "motion_x": 0, "motion_i": 0, "motion_z": 0, "devicenam": [0, 1], "text": 0, "str": 0, "devicest": [0, 1], "sub_stat": 0, "main": [0, 2], "sub": 0, "gyromotiondata": [0, 1], "highresolutionmotiondata": [0, 1], "motiondata": [0, 1], "otacommand": [0, 1], "otapayload": [0, 1], "payload": 0, "memoryview": 0, "otast": [0, 1], "otatransfers": [0, 1], "timestamp_a": 0, "record_a": 0, "timestamp_b": 0, "record_b": 0, "rtc": [0, 1, 4], "epochmilli": 0, "946684800000": 0, "refillremaind": [0, 1], "days_left": 0, "brushing_seconds_left": 0, "sensordata": [0, 1], "data": [0, 2], "decod": 0, "pars": 0, "byte": [0, 2, 4], "context": [0, 2], "wrap": 0, "_structlik": 0, "object": [0, 2], "return": [0, 2], "encod": 0, "obj": 0, "origin": 0, "smilei": [0, 1, 4], "face": [0, 4], "timezon": [0, 1], "zone": 0, "tonguetim": [0, 1], "durat": 0, "userid": [0, 1], "id_": 0, "user": 0, "id": [0, 4], "make_uuid": [0, 1], "cid": [0, 4], "gener": [0, 4], "uuid": [0, 4], "given": 0, "short": [0, 4], "regist": [0, 1], "new": [0, 4], "ble": [1, 3, 4], "sdk": 1, "advertis": 1, "model": [1, 2, 4], "struct": [1, 3], "metadata": [1, 4], "client": [1, 2, 3, 4], "document": 2, "tri": [2, 4], "provid": 2, "overview": 2, "possibl": [2, 4], "scenario": 2, "librari": [2, 3], "can": [2, 3, 4], "IT": 2, "doesn": 2, "t": [2, 3], "aim": 2, "complet": [2, 4], "consid": 2, "point": 2, "we": [2, 4], "manag": [2, 3], "manual": [2, 4], "oralbcli": [2, 3, 4], "bledsk": 2, "import": 2, "async": 2, "def": 2, "contect": 2, "automat": 2, "disconnect": 2, "mac": 2, "ff": [2, 4], "now": 2, "implement": 2, "doe": 2, "therefor": 2, "custom": 2, "ha": 2, "same": 2, "procedur": 2, "abov": 2, "ch_control": 2, "creat": 2, "choos": 2, "how": 2, "mani": 2, "would": 2, "like": 2, "255": [2, 4], "extend_connect": 2, "2": [2, 4], "just": [2, 4], "await": 2, "saw": 2, "certain": [2, 4], "To": [2, 4], "ar": [2, 3, 4], "two": 2, "option": [2, 4], "caterpillar": 2, "shortcut": 2, "pack": 2, "ch_my_color": 2, "you": [2, 4], "its": [2, 4], "my_color": 2, "raw": 2, "attribut": 2, "access": [2, 4], "new_valu": 2, "yourself": 2, "respons": [2, 4], "true": 2, "ota": [2, 4], "deliv": 2, "special": 2, "manifest": 2, "download": 2, "first": [2, 4], "info_url": 2, "otafirmwareinfo": 2, "select": [2, 4], "your": 2, "sonos_big_ti": 2, "correspond": 2, "local": [2, 4], "china": 2, "host": 2, "403": 2, "avail": [2, 3], "load": 2, "info": [2, 4], "receiv": 2, "from_byt": 2, "dictionari": 2, "verifi": 2, "function": 2, "small": 3, "python": [3, 4], "project": 3, "includ": 3, "an": [3, 4], "unoffici": 3, "toothbrush": 3, "well": 3, "api": 3, "interact": [3, 4], "featur": 3, "A": [3, 4], "cli": 3, "discov": 3, "asynchron": 3, "most": 3, "need": [3, 4], "commun": 3, "wa": 3, "written": 3, "3": [3, 4], "12": [3, 4], "all": [3, 4], "previou": 3, "mark": 3, "unsupport": 3, "haven": 3, "been": 3, "approv": 3, "yet": 3, "packag": 3, "via": 3, "pip": 3, "git": 3, "http": 3, "github": 3, "com": 3, "matrixeditor": 3, "index": 3, "search": 3, "page": 3, "after": 4, "instal": 4, "addit": 4, "execut": 4, "It": 4, "shell": 4, "run": 4, "venv": 4, "befor": 4, "address": 4, "sampl": 4, "discoveri": 4, "establish": 4, "pair": 4, "lastli": 4, "pain": 4, "sometim": 4, "call": 4, "multipl": 4, "successful": 4, "brefor": 4, "dm": 4, "74": 4, "b8": 4, "39": 4, "16": 4, "06": 4, "1b": 4, "ok": 4, "If": 4, "wish": 4, "util": 4, "There": 4, "termin": 4, "respos": 4, "everyth": 4, "work": 4, "sever": 4, "wai": 4, "okai": 4, "let": 4, "break": 4, "down": 4, "differ": 4, "each": 4, "store": 4, "intern": 4, "here": 4, "retriev": 4, "past": 4, "whole": 4, "unknown": 4, "plain": 4, "detail": 4, "sono": 4, "descript": 4, "servic": 4, "meta": 4, "sonos_typ": 4, "sonosmetadata": 4, "magic": 4, "m6": 4, "4": 4, "stormy_grei": 4, "5": 4, "languag": 4, "english_en": 4, "7": 4, "gum_guard": 4, "6": 4, "service_data_a": 4, "servicedataa": 4, "ideal_full_capac": 4, "average_motor_curr": 4, "total_monitor_runtim": 4, "978": 4, "total_pressur": 4, "34": 4, "total_charge_tim": 4, "28921": 4, "normal": 4, "taken": 4, "also": 4, "appli": 4, "make": 4, "sure": 4, "check": 4, "whether": 4, "support": 4, "oper": 4, "putchar": 4, "arg": 4, "have": 4, "": 4, "view": 4, "requir": 4, "argument": 4, "h": 4, "help": 4, "show": 4, "messag": 4, "exit": 4, "descriptor": 4, "associ": 4, "order": 4, "treeview": 4, "00001800": 4, "0000": 4, "1000": 4, "8000": 4, "00805f9b34fb": 4, "handl": 4, "profil": 4, "00002a00": 4, "without": 4, "a0f0ff00": 4, "5047": 4, "4d53": 4, "8208": 4, "4f72616c2d42": 4, "13": 4, "a0f0ff01": 4, "14": 4, "a0f0ff02": 4, "17": 4, "a0f0ff0c": 4, "55": 4, "cach": 4, "notifi": 4, "a0f0ff0d": 4, "59": 4, "sensor": 4, "a0f0ff20": 4, "63": 4, "a0f0ff21": 4, "64": 4, "a0f0ff22": 4, "68": 4, "a0f0ff80": 4, "95": 4, "a0f0ff81": 4, "96": 4}, "objects": {"oralb.blesdk": [[0, 0, 1, "", "BrushAdvertisement"], [0, 2, 0, "-", "client"], [0, 2, 0, "-", "model"]], "oralb.blesdk.BrushAdvertisement": [[0, 1, 1, "", "brush_mode"], [0, 1, 1, "", "brush_progress"], [0, 1, 1, "", "brush_time_min"], [0, 1, 1, "", "brush_time_sec"], [0, 1, 1, "", "protocol"], [0, 1, 1, "", "quadrant_completion"], [0, 1, 1, "", "state"], [0, 1, 1, "", "status"], [0, 1, 1, "", "total_quadrants"], [0, 1, 1, "", "type"], [0, 1, 1, "", "version"]], "oralb.blesdk.model": [[0, 0, 1, "", "BatteryLevel"], [0, 0, 1, "", "Button"], [0, 0, 1, "", "CalibrationData"], [0, 0, 1, "", "Color"], [0, 0, 1, "", "Control"], [0, 0, 1, "", "DashboardConfig"], [0, 0, 1, "", "DashboardData"], [0, 0, 1, "", "DeviceName"], [0, 0, 1, "", "DeviceState"], [0, 0, 1, "", "GyroMotionData"], [0, 0, 1, "", "HighResolutionMotionData"], [0, 0, 1, "", "MotionData"], [0, 0, 1, "", "OTACommand"], [0, 0, 1, "", "OTAPayload"], [0, 0, 1, "", "OTAState"], [0, 0, 1, "", "OTATransferSize"], [0, 0, 1, "", "Pressure"], [0, 0, 1, "", "RTC"], [0, 0, 1, "", "RefillRemainder"], [0, 0, 1, "", "SensorData"], [0, 0, 1, "", "Smiley"], [0, 0, 1, "", "Timezone"], [0, 0, 1, "", "TongueTime"], [0, 0, 1, "", "UserID"], [0, 4, 1, "", "make_uuid"], [0, 4, 1, "", "register"]], "oralb.blesdk.model.Button": [[0, 0, 1, "", "State"]], "oralb.blesdk.model.Control": [[0, 0, 1, "", "DataRead"], [0, 0, 1, "", "METADATA"]], "oralb.blesdk.model.DashboardConfig": [[0, 0, 1, "", "Divider"]], "oralb.blesdk.model.DashboardData": [[0, 0, 1, "", "Status"]], "oralb.blesdk.model.DeviceState": [[0, 0, 1, "", "State"], [0, 0, 1, "", "SubState"]], "oralb.blesdk.model.OTACommand": [[0, 0, 1, "", "Command"]], "oralb.blesdk.model.OTAState": [[0, 0, 1, "", "State"]], "oralb.blesdk.model.Pressure": [[0, 0, 1, "", "State"]], "oralb.blesdk.model.RefillRemainder": [[0, 0, 1, "", "State"]], "oralb.blesdk.model.SensorData": [[0, 0, 1, "", "Data"], [0, 3, 1, "", "decode"], [0, 3, 1, "", "encode"]], "oralb.blesdk.model.Smiley": [[0, 0, 1, "", "Face"]]}, "objtypes": {"0": "py:class", "1": "py:attribute", "2": "py:module", "3": "py:method", "4": "py:function"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "attribute", "Python attribute"], "2": ["py", "module", "Python module"], "3": ["py", "method", "Python method"], "4": ["py", "function", "Python function"]}, "titleterms": {"ble": 0, "sdk": 0, "advertis": 0, "model": 0, "struct": 0, "metadata": 0, "client": 0, "api": 1, "refer": 1, "content": 1, "exampl": 2, "establish": 2, "connect": [2, 4], "extend": [2, 4], "read": [2, 4], "write": [2, 4], "charactersist": 2, "gener": 2, "an": 2, "updat": 2, "url": 2, "welcom": 3, "oralb": 3, "io": 3, "": 3, "document": 3, "instal": 3, "indic": 3, "tabl": 3, "cli": 4, "usag": 4, "discov": 4, "devic": 4, "characterist": 4, "special": 4, "data": 4, "experiment": 4, "list": 4, "implement": 4}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 60}, "alltitles": {"BLE SDK": [[0, "ble-sdk"]], "Advertisement": [[0, "advertisement"]], "Model Structs": [[0, "module-oralb.blesdk.model"]], "Metadata Structs": [[0, "metadata-structs"]], "Client": [[0, "module-oralb.blesdk.client"]], "API Reference": [[1, "api-reference"]], "Contents:": [[1, null]], "Examples": [[2, "examples"]], "Establish a connection": [[2, "establish-a-connection"]], "Extending a connection": [[2, "extending-a-connection"], [4, "extending-a-connection"]], "Reading and writing charactersistics": [[2, "reading-and-writing-charactersistics"]], "Generating an update URL": [[2, "generating-an-update-url"]], "Welcome to OralB-IO\u2019s documentation!": [[3, "welcome-to-oralb-io-s-documentation"]], "Installation": [[3, "installation"]], "Indices and tables": [[3, "indices-and-tables"]], "CLI Usage": [[4, "cli-usage"]], "Discovering devices": [[4, "discovering-devices"]], "Connecting to devices": [[4, "connecting-to-devices"]], "Reading characteristics": [[4, "reading-characteristics"]], "Reading special data": [[4, "reading-special-data"]], "Writing characteristics (Experimental)": [[4, "writing-characteristics-experimental"]], "Listing implemented characteristics": [[4, "listing-implemented-characteristics"]]}, "indexentries": {"batterylevel (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.BatteryLevel"]], "brushadvertisement (class in oralb.blesdk)": [[0, "oralb.blesdk.BrushAdvertisement"]], "button (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.Button"]], "button.state (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.Button.State"]], "calibrationdata (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.CalibrationData"]], "color (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.Color"]], "control (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.Control"]], "control.dataread (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.Control.DataRead"]], "control.metadata (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.Control.METADATA"]], "dashboardconfig (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.DashboardConfig"]], "dashboardconfig.divider (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.DashboardConfig.Divider"]], "dashboarddata (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.DashboardData"]], "dashboarddata.status (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.DashboardData.Status"]], "devicename (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.DeviceName"]], "devicestate (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.DeviceState"]], "devicestate.state (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.DeviceState.State"]], "devicestate.substate (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.DeviceState.SubState"]], "gyromotiondata (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.GyroMotionData"]], "highresolutionmotiondata (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.HighResolutionMotionData"]], "motiondata (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.MotionData"]], "otacommand (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.OTACommand"]], "otacommand.command (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.OTACommand.Command"]], "otapayload (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.OTAPayload"]], "otastate (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.OTAState"]], "otastate.state (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.OTAState.State"]], "otatransfersize (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.OTATransferSize"]], "pressure (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.Pressure"]], "pressure.state (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.Pressure.State"]], "rtc (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.RTC"]], "refillremainder (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.RefillRemainder"]], "refillremainder.state (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.RefillRemainder.State"]], "sensordata (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.SensorData"]], "sensordata.data (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.SensorData.Data"]], "smiley (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.Smiley"]], "smiley.face (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.Smiley.Face"]], "timezone (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.Timezone"]], "tonguetime (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.TongueTime"]], "userid (class in oralb.blesdk.model)": [[0, "oralb.blesdk.model.UserID"]], "brush_mode (oralb.blesdk.brushadvertisement attribute)": [[0, "oralb.blesdk.BrushAdvertisement.brush_mode"]], "brush_progress (oralb.blesdk.brushadvertisement attribute)": [[0, "oralb.blesdk.BrushAdvertisement.brush_progress"]], "brush_time_min (oralb.blesdk.brushadvertisement attribute)": [[0, "oralb.blesdk.BrushAdvertisement.brush_time_min"]], "brush_time_sec (oralb.blesdk.brushadvertisement attribute)": [[0, "oralb.blesdk.BrushAdvertisement.brush_time_sec"]], "decode() (oralb.blesdk.model.sensordata method)": [[0, "oralb.blesdk.model.SensorData.decode"]], "encode() (oralb.blesdk.model.sensordata method)": [[0, "oralb.blesdk.model.SensorData.encode"]], "make_uuid() (in module oralb.blesdk.model)": [[0, "oralb.blesdk.model.make_uuid"]], "module": [[0, "module-oralb.blesdk.client"], [0, "module-oralb.blesdk.model"]], "oralb.blesdk.client": [[0, "module-oralb.blesdk.client"]], "oralb.blesdk.model": [[0, "module-oralb.blesdk.model"]], "protocol (oralb.blesdk.brushadvertisement attribute)": [[0, "oralb.blesdk.BrushAdvertisement.protocol"]], "quadrant_completion (oralb.blesdk.brushadvertisement attribute)": [[0, "oralb.blesdk.BrushAdvertisement.quadrant_completion"]], "register() (in module oralb.blesdk.model)": [[0, "oralb.blesdk.model.register"]], "state (oralb.blesdk.brushadvertisement attribute)": [[0, "oralb.blesdk.BrushAdvertisement.state"]], "status (oralb.blesdk.brushadvertisement attribute)": [[0, "oralb.blesdk.BrushAdvertisement.status"]], "total_quadrants (oralb.blesdk.brushadvertisement attribute)": [[0, "oralb.blesdk.BrushAdvertisement.total_quadrants"]], "type (oralb.blesdk.brushadvertisement attribute)": [[0, "oralb.blesdk.BrushAdvertisement.type"]], "version (oralb.blesdk.brushadvertisement attribute)": [[0, "oralb.blesdk.BrushAdvertisement.version"]]}}) \ No newline at end of file diff --git a/usage.html b/usage.html index d1111f6..e3ff2e3 100644 --- a/usage.html +++ b/usage.html @@ -290,8 +290,8 @@

      Reading special data

      Tip

      The names for metadata or normal data values can be taken from -DataRead and -METADATA.

      +
      DataRead and +METADATA.