Измерение времени между вызванным методом didUpdateValueFor - PullRequest
0 голосов
/ 09 апреля 2019

Я хочу измерить время между вызовом функции и следующим вызовом.

В настоящее время у меня есть приложение с Bluetooth. Где Arduino отправляет байтовый массив в приложение для отображения в виде таблицы. У меня есть два модуля Bluetooth, которые я хочу измерить время, чтобы увидеть разницу в скорости.

Когда приложение получает байтовый массив, вызывается функция didUpdateValueFor. И в нем он отправляет полученные данные в другую функцию.

Моя проблема в том, что все таймеры и счетчики, которые я использовал, работали только для получения полного времени выполнения функции.

Все, что я хочу, это измерить время между получением первого байтового массива и получением следующего упакованного.

func printTimeElapsedWhenRunningCode(title:String, operation:()->()) {
    let startTime = CFAbsoluteTimeGetCurrent()
    operation()
    let timeElapsed = CFAbsoluteTimeGetCurrent() - startTime
    print("Time elapsed for \(title): \(timeElapsed) s.")
}

Используя функцию, которую я разместил выше, я уверен, что она прекрасно работает. Но я хочу, чтобы он измерял время между каждым вызовом didUpdateValueFor.

Итак:

Byte array receievd - didUpdateValueFor is called
Timer starts
New array received - didUpdateValueFor is called
Timebetween is: "...ms"

1 Ответ

0 голосов
/ 09 апреля 2019

Я действительно нашел ответ.Не оптимально, но сейчас это работает:

    var start = Date()

func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {
    var diff = Date().timeIntervalSince(start)
    print("differanse is: \(diff) seconds")
    start = Date()
    print("Starting at 0")
    diff = 0
    print("diff = 0")

Достаточно хорошо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...