MaBeeeDevice - novars-jp/MaBeeeiOSSDK GitHub Wiki

概要

MaBeeeDeviceクラスはMaBeeeを抽象化したクラスです。次のような機能があります。

  • MaBeeeのプロパティの取得・更新
  • MaBeeeのプロパティの設定(pwmDuty, 出力の設定)

インスタンスの取得

インスタンスはMaBeeeApp内部でスキャン時に生成されます。 MaBeeeAppのdevicesから取得してください。


MaBeeeのプロパティ

  • MaBeeeのデバイスの情報をプロパティとして持ちます。
  • Objective-CからもSwiftからも、maBeeeDevice.identifierなどの形で取得できます。
  • pwmDutyのみ設定可能です。それ以外は読み込みのみ可能です。

identifier

MaBeeeSDKにおける、デバイスのIDです。

Objective-C

@property (readonly, nonatomic) NSUInteger identifier;

Swift

var identifier: UInt { get }
  • アプリの起動ごとに番号が変わります。
  • スキャンで発見したMaBeeeのperipheralIdに連番を振ったものです。
  • 同じperipheralIdであれば同じ値になります。

peripheralId

CoreBluetoothのCBPeripheral/identifierを文字列化した値です。

Objective-C

@property (readonly, nonatomic, strong) NSString *peripheralId;

Swift

var peripheralId: String! { get }
  • CBPeripheral.identifier.UUIDStringを返しています。
  • 詳細はCoreBluetoothのドキュメント等を参照してください。

name

MaBeeeデバイスの名前です。

Objective-C

@property (readonly, nonatomic, strong) NSString *name;

Swift

var name: String! { get }
  • スキャンでヒットする名前です。
  • MaBeeeユーザが変更可能です。ただし現在はSDKからの変更はできません。
  • 接続中に変更された場合、実際のデバイスに記憶されているものと異なる場合があります。

rssi

RSSIです。

Objective-C

@property (readonly, nonatomic) int rssi;

Swift

var rssi: Int32 { get }
  • 電波の受信感度です。
  • スキャン中は自動更新されます。
  • スキャンしていない場合、接続中のデバイスのRSSIはupdateRssi関数で更新する必要があります。

rssiUpdatedAt

現在のrssiが設定された時間です。

Objective-C

@property (readonly, nonatomic) NSDate *rssiUpdatedAt;

Swift

var rssiUpdatedAt: NSDate! { get }

batteryVoltage

MaBeeeにセットされている単4電池の電圧です。

Objective-C

@property (readonly, nonatomic) float batteryVoltage;

Swift

var batteryVoltage: Float { get }

batteryVoltageUpdatedAt

現在のbatteryVoltageの値が設定された時間です。

Objective-C

@property (readonly, nonatomic) NSDate *batteryVoltageUpdatedAt;

Swift

var batteryVoltageUpdatedAt: NSDate! { get }

state

MaBeeeの接続状態です。

Objective-C

@property (readonly, nonatomic) MaBeeeDeviceState state;

Swift

var state: MaBeeeDeviceState { get }
  • 値の詳細についてはMaBeeeDeviceStateを参照してください。
  • 基本的にはCBPeripheral/stateと同じ内容ですが、接続後のMaBeee固有の処理の時間がConnectingに含まれます。

pwmDuty

MaBeeeの出力の値です。

Objective-C

@property (nonatomic) int pwmDuty;

Swift

var pwmDuty: Int32
  • 初期値0です。
  • disconnectModeで切断後の挙動を設定できます。
  • 設定した値がMaBeeeに設定されます。
  • MaBeeeからの取得は行ないません。設定した値が取得できます。

diconnectMode

Bluetooth接続が切断したときにMaBeeeのPWM Dutyの値をどうするかを設定します。

Objective-C

@property (nonatomic) MaBeeeDeviceDisconnectMode disconnectMode;

Swift

var disconnectMode: MaBeeeDeviceDisconnectMod { get }

値の詳細についてはMaBeeeDeviceDisconnectModeを参照してください。


プロパティの更新要求

  • 接続中に状態が変わるプロパティについては、更新要求を投げる仕様となっています。
  • 更新結果はプロパティの値に反映されます。
  • 更新されたかどうかは、タイムスタンプで判断するか、Notificationで受け取ることができます。

updateRssi

rssiの値を非同期に更新します。

Objective-C

- (void)updateRssi;

Swift

func updateRssi()
  • rssiの値が非同期に更新されます。
  • rssiUpdatedAtのタイムスタンプも同時に更新されます。
  • MaBeeeDeviceRssiDidUpdateNotificationで更新通知を受け取ることができます。

updateBatteryVoltage

batteryVoltageの値を非同期に更新します。

Objective-C

- (void)updateBatteryVoltage;

Swift

func updateBatteryVoltage()
  • batteryVoltageの値が非同期に更新されます。
  • batteryVoltageUpdatedAtのタイムスタンプも同時に更新されます。
  • MaBeeeDeviceBatteryVoltageDidUpdateNotificationで更新通知を受け取ることができます。

MaBeeeDeviceState

MaBeeeの接続状態を表すEnumです。

Objective-C

typedef enum {
  MaBeeeDeviceStateDisconnected,
  MaBeeeDeviceStateConnecting,
  MaBeeeDeviceStateConnected
} MaBeeeDeviceState;

Swift

enum MaBeeeDeviceState : Int {
    case Disconnected
    case Connecting
    case Connected
}

MaBeeeDeviceStateDisconnected, Disconnected

  • 接続していない状態です。

MaBeeeDeviceStateConnecting, Connecting

  • 接続しようとしている状態です。
  • 接続が一時的に切断して、再接続をしようとしている状態です。

MaBeeeDeviceStateConnected, Connected

  • 接続している状態です。

MaBeeeDeviceDisconnectMode

Bluetooth接続が切断した後のMaBeeeの挙動を表すEnumです。

Objctive-C

typedef enum {
  MaBeeeDeviceDisconnectModeReset,
  MaBeeeDeviceDisconnectModeContinue
} MaBeeeDeviceDisconnectMode;

Swift

enum MaBeeeDeviceDisconnectMode : Int {
    case Reset
    case Continue
}

MaBeeeDeviceDisconnectModeReset, Reset

  • Bluetooth接続が切断すると、MaBeee本体のPWM Dutyが0になります。

MaBeeeDeviceDisconnectModeContinue, Continue

  • Bluetooth接続が切断しても、MaBeee本体のPWM Dutyは接続中の値のままとなります。