質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.91%

BLE(ポケットWi-Fi)のrssi(電波強度)を取得したい

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 271

harapecco

score 0

前提・実現したいこと

BLE(今回はポケットWi-Fi)のrssiを取得したいのですが、
実機にビルドすると起動時に以下のようなエラーになります。

ライブラリの問題なのかよくわかりません。
お知恵を貸してください。
参考URLhttp://harumi.sakura.ne.jp/wordpress/2019/09/04/rssi%E3%81%A7%E8%BF%91%E3%81%8F%E3%81%AE%E7%AB%AF%E6%9C%AB%E3%81%AB%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B/

発生している問題・エラーメッセージ

libsystem_kernel.dylib`__abort_with_payload:
    0x1b9585850 <+0>:  mov    x16, #0x209
    0x1b9585854 <+4>:  svc    #0x80
->  0x1b9585858 <+8>:  b.lo   0x1b9585874               ; <+36>         Thread 9: signal SIGABRT
    0x1b958585c <+12>: stp    x29, x30, [sp, #-0x10]!
    0x1b9585860 <+16>: mov    x29, sp
    0x1b9585864 <+20>: bl     0x1b95650e8               ; cerror_nocancel
    0x1b9585868 <+24>: mov    sp, x29
    0x1b958586c <+28>: ldp    x29, x30, [sp], #0x10
    0x1b9585870 <+32>: ret    
    0x1b9585874 <+36>: ret    ```  

### 該当のソースコード  

swift5

import UIKit  
import CoreLocation  
import MapKit  
import CoreBluetooth  

class ViewController: UIViewController, UITextFieldDelegate ,UIPickerViewDelegate, UIPickerViewDataSource ,MKMapViewDelegate,CBCentralManagerDelegate{  


//RSSI用  
var manager : CBCentralManager!  
//検索位置の中心を決める  
var center: CLLocationCoordinate2D!  
//更新回数  
var freqtime = 0  
//タイマー  
var timer : Timer?  
//カウント変数  
var count = 0  
//更新頻度の数字の配列作成  
let settingArray : [Int] = [0,1,2,3,4,5,10,20,30,60]  
//記憶しておく  
let settingKey = "timer_value"  
// 緯度  
var latitudeNow: String = ""  
// 経度  
var longitudeNow: String = ""  
/// ロケーションマネージャ  
var locationManager: CLLocationManager!  



override func viewDidLoad() {  
super.viewDidLoad()  
//Do any additional setup after loading the view.  

manager = CBCentralManager(delegate: self, queue: nil)  

//timerSettingPickerのデリゲートとソースの先を決定  
timerSettingPicker.delegate = self  
timerSettingPicker.dataSource = self  

//Texデリゲート先決定  
inputText.delegate = self  
//UserDefaultの取得  
let settings = UserDefaults.standard  
settings.register(defaults: [settingKey:1])  
let timerValue = settings.integer(forKey: settingKey)  

//Pickerの設定  
for row in 0..<settingArray.count{  
if settingArray[row] == timerValue{  
timerSettingPicker.selectRow(row, inComponent: 0, animated: true)  
}  
}  

// ロケーションマネージャのセットアップ  
setupLocationManager()  
// 地図の初期化  
initMap()  
}  

func centralManagerDidUpdateState(_ central: CBCentralManager) {  
if central.state == .poweredOn {  
central.scanForPeripherals(withServices: nil, options:  [CBCentralManagerScanOptionAllowDuplicatesKey : true])  
}  
}  

func centralManager(_ central: CBCentralManager,  
didDiscover peripheral: CBPeripheral,  
advertisementData: [String : Any],  
rssi RSSI: NSNumber) {  

if peripheral.name != "W04_44C3465CD2A9"{  
print("RSSIみっけた!")  
return  
}  
print(RSSI)  
rssi.text = String(Int(truncating: RSSI))  
}  

@IBOutlet weak var Latitude: UILabel!  
@IBOutlet weak var LatitudeNOW: UILabel!  
@IBOutlet weak var Longtude: UILabel!  
@IBOutlet weak var LongtudeNOW: UILabel!  
@IBOutlet weak var frequencytime: UILabel!  
@IBOutlet weak var frequencylabel: UILabel!  
@IBOutlet weak var time: UILabel!  
@IBOutlet weak var timerSettingPicker: UIPickerView!  
@IBOutlet weak var Geoarea: UILabel!  
@IBOutlet weak var Geostatus: UILabel!  
@IBOutlet weak var circle: UILabel!  
@IBOutlet weak var inputText: UITextField!  
@IBOutlet weak var rssilabel: UILabel!  
@IBOutlet weak var rssi: UILabel!  
@IBOutlet weak var Map: MKMapView!  

```

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.91%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る