react-native-polar-bridge 0.2.7 → 0.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/PolarBridge.podspec +1 -1
- package/android/build.gradle +1 -1
- package/android/gradle.properties +1 -1
- package/android/src/main/java/com/polarbridge/PolarBridgeModule.kt +32 -47
- package/ios/PolarBridge.swift +1 -1
- package/lib/module/index.js +10 -4
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.tsx +10 -4
package/PolarBridge.podspec
CHANGED
|
@@ -16,7 +16,7 @@ Pod::Spec.new do |s|
|
|
|
16
16
|
s.source_files = "ios/**/*.{h,m,mm,cpp,swift}"
|
|
17
17
|
s.private_header_files = "ios/**/*.h"
|
|
18
18
|
|
|
19
|
-
s.dependency 'PolarBleSdk', '~> 6.
|
|
19
|
+
s.dependency 'PolarBleSdk', '~> 6.14.0'
|
|
20
20
|
|
|
21
21
|
# Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
|
|
22
22
|
# See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.
|
package/android/build.gradle
CHANGED
|
@@ -93,7 +93,7 @@ dependencies {
|
|
|
93
93
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
94
94
|
implementation 'io.reactivex.rxjava3:rxjava:3.1.11'
|
|
95
95
|
implementation 'io.reactivex.rxjava3:rxandroid:3.0.2'
|
|
96
|
-
implementation 'com.github.polarofficial:polar-ble-sdk:6.
|
|
96
|
+
implementation 'com.github.polarofficial:polar-ble-sdk:6.14.0'
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
react {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
package com.polarbridge
|
|
2
2
|
|
|
3
3
|
import android.util.Log
|
|
4
|
-
import androidx.annotation.Nullable
|
|
5
4
|
import com.facebook.react.bridge.*
|
|
6
5
|
import com.facebook.react.module.annotations.ReactModule
|
|
7
6
|
import com.polar.sdk.api.PolarBleApi
|
|
@@ -19,7 +18,7 @@ import io.reactivex.rxjava3.core.Single
|
|
|
19
18
|
import java.util.*
|
|
20
19
|
import java.util.concurrent.atomic.AtomicInteger
|
|
21
20
|
import java.util.concurrent.TimeUnit
|
|
22
|
-
import java.time
|
|
21
|
+
import java.time.*
|
|
23
22
|
|
|
24
23
|
@ReactModule(name = PolarBridgeModule.NAME)
|
|
25
24
|
class PolarBridgeModule(reactContext: ReactApplicationContext) :
|
|
@@ -211,7 +210,9 @@ class PolarBridgeModule(reactContext: ReactApplicationContext) :
|
|
|
211
210
|
)
|
|
212
211
|
|
|
213
212
|
val map: WritableMap = Arguments.createMap()
|
|
214
|
-
map.putDouble("recTimestamp", polarOfflineRecordingEntry.date
|
|
213
|
+
map.putDouble("recTimestamp", polarOfflineRecordingEntry.date
|
|
214
|
+
.toInstant(ZoneOffset.UTC)
|
|
215
|
+
.toEpochMilli().toDouble())
|
|
215
216
|
map.putString("path", polarOfflineRecordingEntry.path)
|
|
216
217
|
map.putDouble("size", polarOfflineRecordingEntry.size.toDouble())
|
|
217
218
|
array.pushMap(map)
|
|
@@ -374,10 +375,14 @@ class PolarBridgeModule(reactContext: ReactApplicationContext) :
|
|
|
374
375
|
Log.d(TAG, "Recording ${polarOfflineRecordingEntry.path} downloaded. Size: ${polarOfflineRecordingEntry.size}")
|
|
375
376
|
when (it) {
|
|
376
377
|
is PolarOfflineRecordingData.HrOfflineRecording -> {
|
|
377
|
-
Log.d(TAG, "HR Offline Recording started at ${it.startTime
|
|
378
|
+
Log.d(TAG, "HR Offline Recording started at ${it.startTime
|
|
379
|
+
.toInstant(ZoneOffset.UTC)
|
|
380
|
+
.toEpochMilli()}")
|
|
378
381
|
var index = 0;
|
|
379
382
|
val intervalInMs = 1000; // 1Hz
|
|
380
|
-
val firstSampleDateUTC = it.startTime
|
|
383
|
+
val firstSampleDateUTC = it.startTime
|
|
384
|
+
.toInstant(ZoneOffset.UTC)
|
|
385
|
+
.toEpochMilli() + intervalInMs
|
|
381
386
|
for (sample in it.data.samples) {
|
|
382
387
|
val unixTimestamp = firstSampleDateUTC + intervalInMs * index++;
|
|
383
388
|
val timestamp = Instant.ofEpochMilli(unixTimestamp)
|
|
@@ -394,7 +399,8 @@ class PolarBridgeModule(reactContext: ReactApplicationContext) :
|
|
|
394
399
|
}
|
|
395
400
|
}
|
|
396
401
|
is PolarOfflineRecordingData.AccOfflineRecording -> {
|
|
397
|
-
Log.d(TAG, "ACC Offline Recording started at ${it.startTime.
|
|
402
|
+
Log.d(TAG, "ACC Offline Recording started at ${it.startTime.toInstant(ZoneOffset.UTC)
|
|
403
|
+
.toEpochMilli()}")
|
|
398
404
|
var index = 0;
|
|
399
405
|
for (sample in it.data.samples) {
|
|
400
406
|
Log.d(TAG, "ACC data: time: ${sample.timeStamp} X: ${sample.x} Y: ${sample.y} Z: ${sample.z} entry ${++index} of ${it.data.samples.size}")
|
|
@@ -410,7 +416,8 @@ class PolarBridgeModule(reactContext: ReactApplicationContext) :
|
|
|
410
416
|
}
|
|
411
417
|
}
|
|
412
418
|
is PolarOfflineRecordingData.GyroOfflineRecording -> {
|
|
413
|
-
Log.d(TAG, "GYRO Offline Recording started at ${it.startTime.
|
|
419
|
+
Log.d(TAG, "GYRO Offline Recording started at ${it.startTime.toInstant(ZoneOffset.UTC)
|
|
420
|
+
.toEpochMilli()}")
|
|
414
421
|
var index = 0;
|
|
415
422
|
for (sample in it.data.samples) {
|
|
416
423
|
Log.d(TAG, "GYRO data: ${sample.timeStamp} X: ${sample.x} Y: ${sample.y} Z: ${sample.z} entry ${++index} of ${it.data.samples.size}")
|
|
@@ -426,7 +433,8 @@ class PolarBridgeModule(reactContext: ReactApplicationContext) :
|
|
|
426
433
|
}
|
|
427
434
|
}
|
|
428
435
|
is PolarOfflineRecordingData.PpgOfflineRecording -> {
|
|
429
|
-
Log.d(TAG, "PPG Offline Recording started at ${it.startTime.
|
|
436
|
+
Log.d(TAG, "PPG Offline Recording started at ${it.startTime.toInstant(ZoneOffset.UTC)
|
|
437
|
+
.toEpochMilli()}")
|
|
430
438
|
var index = 0;
|
|
431
439
|
for (sample in it.data.samples) {
|
|
432
440
|
Log.d(TAG, "PPG data: ${sample.timeStamp} ppg0 ${sample.channelSamples[0]} ppg1 ${sample.channelSamples[1]} ppg2 ${sample.channelSamples[2]} ambient ${sample.channelSamples[3]} entry ${++index} of ${it.data.samples.size}")
|
|
@@ -506,15 +514,14 @@ class PolarBridgeModule(reactContext: ReactApplicationContext) :
|
|
|
506
514
|
|
|
507
515
|
// Sets the date time on the Polar device
|
|
508
516
|
override fun setDeviceTime(deviceId: String) {
|
|
509
|
-
val
|
|
510
|
-
|
|
511
|
-
Log.e(TAG, "Set device: $deviceId time to ${calendar.time}")
|
|
517
|
+
val now = LocalDateTime.now(ZoneOffset.UTC)
|
|
518
|
+
Log.e(TAG, "Set device: $deviceId time to ${now}")
|
|
512
519
|
try {
|
|
513
|
-
api.setLocalTime(deviceId,
|
|
520
|
+
api.setLocalTime(deviceId, now)
|
|
514
521
|
.observeOn(AndroidSchedulers.mainThread())
|
|
515
522
|
.subscribe(
|
|
516
523
|
{
|
|
517
|
-
val timeSetString = "time ${
|
|
524
|
+
val timeSetString = "time ${now} set to device"
|
|
518
525
|
Log.d(TAG, timeSetString)
|
|
519
526
|
},
|
|
520
527
|
{ error: Throwable -> Log.e(TAG, "set time failed: $error") }
|
|
@@ -530,13 +537,14 @@ class PolarBridgeModule(reactContext: ReactApplicationContext) :
|
|
|
530
537
|
.observeOn(AndroidSchedulers.mainThread())
|
|
531
538
|
.subscribe(
|
|
532
539
|
{ calendar ->
|
|
533
|
-
val timeGetString = "${calendar
|
|
540
|
+
val timeGetString = "${calendar} read from the device"
|
|
534
541
|
|
|
535
542
|
val map: WritableMap = Arguments.createMap()
|
|
536
|
-
map.putString("time", "${calendar.
|
|
543
|
+
map.putString("time", "${calendar.toInstant(ZoneOffset.UTC)}")
|
|
537
544
|
// Long not supported, use double as workaround
|
|
538
545
|
// See: https://github.com/facebook/react-native/issues/9685
|
|
539
|
-
map.putDouble("timeMs", calendar.
|
|
546
|
+
map.putDouble("timeMs", calendar.toInstant(ZoneOffset.UTC)
|
|
547
|
+
.toEpochMilli().toDouble())
|
|
540
548
|
promise.resolve(map)
|
|
541
549
|
},
|
|
542
550
|
{ error: Throwable ->
|
|
@@ -568,9 +576,6 @@ class PolarBridgeModule(reactContext: ReactApplicationContext) :
|
|
|
568
576
|
}
|
|
569
577
|
|
|
570
578
|
override fun doFactoryReset(deviceId: String) {
|
|
571
|
-
val calendar = Calendar.getInstance()
|
|
572
|
-
calendar.time = Date()
|
|
573
|
-
Log.e(TAG, "Set device: $deviceId time to ${calendar.time}")
|
|
574
579
|
try {
|
|
575
580
|
api.doFactoryReset(deviceId, preservePairingInformation = true)
|
|
576
581
|
.observeOn(AndroidSchedulers.mainThread())
|
|
@@ -625,14 +630,9 @@ class PolarBridgeModule(reactContext: ReactApplicationContext) :
|
|
|
625
630
|
val timestampMs: Long
|
|
626
631
|
)
|
|
627
632
|
|
|
628
|
-
|
|
629
|
-
override fun fetchHrData(deviceId: String, @Nullable ms: Double?) {
|
|
633
|
+
override fun fetchHrData(deviceId: String, ms: Double?) {
|
|
630
634
|
Log.e(TAG, "Fetch Heart Data called on: $deviceId ")
|
|
631
|
-
val bufferMs
|
|
632
|
-
ms.toLong()
|
|
633
|
-
} else {
|
|
634
|
-
SENSOR_BUFFER_MS
|
|
635
|
-
}
|
|
635
|
+
val bufferMs = ms?.toLong()?.takeIf { it >= 0 } ?: SENSOR_BUFFER_MS
|
|
636
636
|
val isDisposed = hrDisposable?.isDisposed ?: true
|
|
637
637
|
try{
|
|
638
638
|
if (isDisposed) {
|
|
@@ -737,14 +737,9 @@ class PolarBridgeModule(reactContext: ReactApplicationContext) :
|
|
|
737
737
|
}
|
|
738
738
|
}
|
|
739
739
|
|
|
740
|
-
|
|
741
|
-
override fun fetchAccData(deviceId: String, @Nullable ms: Double?) {
|
|
740
|
+
override fun fetchAccData(deviceId: String, ms: Double?) {
|
|
742
741
|
Log.e(TAG, "Fetch Accelerometer Data called on: $deviceId ")
|
|
743
|
-
val bufferMs
|
|
744
|
-
ms.toLong()
|
|
745
|
-
} else {
|
|
746
|
-
SENSOR_BUFFER_MS
|
|
747
|
-
}
|
|
742
|
+
val bufferMs = ms?.toLong()?.takeIf { it >= 0 } ?: SENSOR_BUFFER_MS
|
|
748
743
|
val isDisposed = accDisposable?.isDisposed ?: true
|
|
749
744
|
try{
|
|
750
745
|
if (isDisposed) {
|
|
@@ -799,14 +794,9 @@ class PolarBridgeModule(reactContext: ReactApplicationContext) :
|
|
|
799
794
|
}
|
|
800
795
|
}
|
|
801
796
|
|
|
802
|
-
|
|
803
|
-
override fun fetchGyrData(deviceId: String, @Nullable ms: Double?) {
|
|
797
|
+
override fun fetchGyrData(deviceId: String, ms: Double?) {
|
|
804
798
|
Log.e(TAG, "Fetch Gyroscope Data called on: $deviceId ")
|
|
805
|
-
val bufferMs
|
|
806
|
-
ms.toLong()
|
|
807
|
-
} else {
|
|
808
|
-
SENSOR_BUFFER_MS
|
|
809
|
-
}
|
|
799
|
+
val bufferMs = ms?.toLong()?.takeIf { it >= 0 } ?: SENSOR_BUFFER_MS
|
|
810
800
|
val isDisposed = gyrDisposable?.isDisposed ?: true
|
|
811
801
|
try {
|
|
812
802
|
if (isDisposed) {
|
|
@@ -863,14 +853,9 @@ class PolarBridgeModule(reactContext: ReactApplicationContext) :
|
|
|
863
853
|
}
|
|
864
854
|
}
|
|
865
855
|
|
|
866
|
-
|
|
867
|
-
override fun fetchPpgData(deviceId: String, @Nullable ms: Double?) {
|
|
856
|
+
override fun fetchPpgData(deviceId: String, ms: Double?) {
|
|
868
857
|
Log.e(TAG, "Fetch Photoplethysmograph Data called on: $deviceId ")
|
|
869
|
-
val bufferMs
|
|
870
|
-
ms.toLong()
|
|
871
|
-
} else {
|
|
872
|
-
SENSOR_BUFFER_MS
|
|
873
|
-
}
|
|
858
|
+
val bufferMs = ms?.toLong()?.takeIf { it >= 0 } ?: SENSOR_BUFFER_MS
|
|
874
859
|
val isDisposed = ppgDisposable?.isDisposed ?: true
|
|
875
860
|
try {
|
|
876
861
|
if (isDisposed) {
|
package/ios/PolarBridge.swift
CHANGED
|
@@ -132,7 +132,7 @@ class PolarBridge: RCTEventEmitter, ObservableObject
|
|
|
132
132
|
let allSettings = api.requestFullStreamSettings(identifier, feature: feature)
|
|
133
133
|
.catch { error in
|
|
134
134
|
NSLog("Full stream settings NOT available for \(feature). Reason: \(error.localizedDescription)")
|
|
135
|
-
return Single.just(PolarSensorSetting([:]))
|
|
135
|
+
return Single.just(try PolarSensorSetting([:]))
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
return Single.zip(availableSettings, allSettings)
|
package/lib/module/index.js
CHANGED
|
@@ -14,16 +14,22 @@ export function scanDevices() {
|
|
|
14
14
|
return PolarBridge.scanDevices();
|
|
15
15
|
}
|
|
16
16
|
export function fetchHrData(deviceId, bufferMs = null) {
|
|
17
|
-
|
|
17
|
+
// If bufferMs is null or undefined, set it to -1
|
|
18
|
+
// Workaround to handle null/optional bufferMs
|
|
19
|
+
const safeBufferMs = bufferMs ?? -1;
|
|
20
|
+
return PolarBridge.fetchHrData(deviceId, safeBufferMs);
|
|
18
21
|
}
|
|
19
22
|
export function fetchAccData(deviceId, bufferMs = null) {
|
|
20
|
-
|
|
23
|
+
const safeBufferMs = bufferMs ?? -1;
|
|
24
|
+
return PolarBridge.fetchAccData(deviceId, safeBufferMs);
|
|
21
25
|
}
|
|
22
26
|
export function fetchGyrData(deviceId, bufferMs = null) {
|
|
23
|
-
|
|
27
|
+
const safeBufferMs = bufferMs ?? -1;
|
|
28
|
+
return PolarBridge.fetchGyrData(deviceId, safeBufferMs);
|
|
24
29
|
}
|
|
25
30
|
export function fetchPpgData(deviceId, bufferMs = null) {
|
|
26
|
-
|
|
31
|
+
const safeBufferMs = bufferMs ?? -1;
|
|
32
|
+
return PolarBridge.fetchPpgData(deviceId, safeBufferMs);
|
|
27
33
|
}
|
|
28
34
|
export function enableSdkMode(deviceId) {
|
|
29
35
|
return PolarBridge.enableSdkMode(deviceId);
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PolarBridge","multiply","a","b","connectToDevice","deviceId","disconnectFromDevice","scanDevices","fetchHrData","bufferMs","fetchAccData","fetchGyrData","fetchPpgData","enableSdkMode","disableSdkMode","setDeviceTime","getDeviceTime","getDiskSpace","doFactoryReset","startOfflineRecording","features","stopOfflineRecording","setPolarRecordingTrigger","recordingMode","fetchOfflineRecordings","downloadOfflineRecordings","deleteAllOfflineRecordings","disposeHrStream","disposeAccStream","disposeGyrStream","disposePpgStream","emittedEventId","Object","freeze","SCAN_DEVICE_FOUND","SCAN_DEVICE_ERROR","SCAN_DEVICE_COMPLETE","POLAR_DEVICE_TIME","POLAR_HR_DATA","POLAR_HR_ERROR","POLAR_HR_COMPLETE","POLAR_ACC_DATA","POLAR_ACC_ERROR","POLAR_ACC_COMPLETE","POLAR_GYR_DATA","POLAR_GYR_ERROR","POLAR_GYR_COMPLETE","POLAR_PPG_DATA","POLAR_PPG_ERROR","POLAR_PPG_COMPLETE","POLAR_DISK_SPACE","POLAR_OFFLINE_RECORDING","OfflineRecordingFeature","OFFLINE_HR","OFFLINE_ACC","OFFLINE_GYR","OFFLINE_PPG","OFFLINE_MAG","OFFLINE_PPI","OfflineRecordingTriggerMode","TRIGGER_DISABLED","TRIGGER_SYSTEM_START","TRIGGER_EXERCISE_START"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,OAAOA,WAAW,MAAM,qBAAqB;AAE7C,OAAO,SAASC,QAAQA,CAACC,CAAS,EAAEC,CAAS,EAAU;EACrD,OAAOH,WAAW,CAACC,QAAQ,CAACC,CAAC,EAAEC,CAAC,CAAC;AACnC;AAEA,OAAO,SAASC,eAAeA,CAACC,QAAgB,EAAE;EAChD,OAAOL,WAAW,CAACI,eAAe,CAACC,QAAQ,CAAC;AAC9C;AAEA,OAAO,SAASC,oBAAoBA,CAACD,QAAgB,EAAE;EACrD,OAAOL,WAAW,CAACM,oBAAoB,CAACD,QAAQ,CAAC;AACnD;AAEA,OAAO,SAASE,WAAWA,CAAA,EAAG;EAC5B,OAAOP,WAAW,CAACO,WAAW,CAAC,CAAC;AAClC;AAEA,OAAO,SAASC,WAAWA,CAACH,QAAgB,EAAEI,QAAuB,GAAG,IAAI,EAAE;EAC5E,OAAOT,WAAW,CAACQ,WAAW,CAACH,QAAQ,
|
|
1
|
+
{"version":3,"names":["PolarBridge","multiply","a","b","connectToDevice","deviceId","disconnectFromDevice","scanDevices","fetchHrData","bufferMs","safeBufferMs","fetchAccData","fetchGyrData","fetchPpgData","enableSdkMode","disableSdkMode","setDeviceTime","getDeviceTime","getDiskSpace","doFactoryReset","startOfflineRecording","features","stopOfflineRecording","setPolarRecordingTrigger","recordingMode","fetchOfflineRecordings","downloadOfflineRecordings","deleteAllOfflineRecordings","disposeHrStream","disposeAccStream","disposeGyrStream","disposePpgStream","emittedEventId","Object","freeze","SCAN_DEVICE_FOUND","SCAN_DEVICE_ERROR","SCAN_DEVICE_COMPLETE","POLAR_DEVICE_TIME","POLAR_HR_DATA","POLAR_HR_ERROR","POLAR_HR_COMPLETE","POLAR_ACC_DATA","POLAR_ACC_ERROR","POLAR_ACC_COMPLETE","POLAR_GYR_DATA","POLAR_GYR_ERROR","POLAR_GYR_COMPLETE","POLAR_PPG_DATA","POLAR_PPG_ERROR","POLAR_PPG_COMPLETE","POLAR_DISK_SPACE","POLAR_OFFLINE_RECORDING","OfflineRecordingFeature","OFFLINE_HR","OFFLINE_ACC","OFFLINE_GYR","OFFLINE_PPG","OFFLINE_MAG","OFFLINE_PPI","OfflineRecordingTriggerMode","TRIGGER_DISABLED","TRIGGER_SYSTEM_START","TRIGGER_EXERCISE_START"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAEA,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,uDAE/C;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,QAEpD;AAED,wBAAgB,WAAW,SAE1B;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,GAAG,IAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAEA,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,uDAE/C;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,QAEpD;AAED,wBAAgB,WAAW,SAE1B;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,GAAG,IAAW,QAK3E;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,GAAG,IAAW,QAG5E;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,GAAG,IAAW,QAG5E;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,GAAG,IAAW,QAG5E;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,QAE7C;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,QAE9C;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,QAE7C;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,kDAE7C;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,iDAE5C;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,QAE9C;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAEzE;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAExE;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAEnG;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,0DAEtD;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,QAEzD;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,QAE1D;AAED,wBAAgB,eAAe,SAE9B;AAED,wBAAgB,gBAAgB,SAE/B;AAED,wBAAgB,gBAAgB,SAE/B;AAED,wBAAgB,gBAAgB,SAE/B;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;EAmBzB,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;EAOlC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;EAItC,CAAC"}
|
package/package.json
CHANGED
package/src/index.tsx
CHANGED
|
@@ -17,19 +17,25 @@ export function scanDevices() {
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
export function fetchHrData(deviceId: string, bufferMs: number | null = null) {
|
|
20
|
-
|
|
20
|
+
// If bufferMs is null or undefined, set it to -1
|
|
21
|
+
// Workaround to handle null/optional bufferMs
|
|
22
|
+
const safeBufferMs = bufferMs ?? -1;
|
|
23
|
+
return PolarBridge.fetchHrData(deviceId, safeBufferMs);
|
|
21
24
|
}
|
|
22
25
|
|
|
23
26
|
export function fetchAccData(deviceId: string, bufferMs: number | null = null) {
|
|
24
|
-
|
|
27
|
+
const safeBufferMs = bufferMs ?? -1;
|
|
28
|
+
return PolarBridge.fetchAccData(deviceId, safeBufferMs);
|
|
25
29
|
}
|
|
26
30
|
|
|
27
31
|
export function fetchGyrData(deviceId: string, bufferMs: number | null = null) {
|
|
28
|
-
|
|
32
|
+
const safeBufferMs = bufferMs ?? -1;
|
|
33
|
+
return PolarBridge.fetchGyrData(deviceId, safeBufferMs);
|
|
29
34
|
}
|
|
30
35
|
|
|
31
36
|
export function fetchPpgData(deviceId: string, bufferMs: number | null = null) {
|
|
32
|
-
|
|
37
|
+
const safeBufferMs = bufferMs ?? -1;
|
|
38
|
+
return PolarBridge.fetchPpgData(deviceId, safeBufferMs);
|
|
33
39
|
}
|
|
34
40
|
|
|
35
41
|
export function enableSdkMode(deviceId: string) {
|