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 }
- 初期値は0です。
- updateBatteryVoltage関数で更新する必要があります。
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は接続中の値のままとなります。