From 1b6b6be9e4a9b2142301ffe4b20fc6911a443c0a Mon Sep 17 00:00:00 2001 From: kleydon Date: Fri, 13 Jan 2023 08:27:28 -0800 Subject: [PATCH 01/17] Attempt 1 - adding a d ts file --- index.d.ts | 1 + 1 file changed, 1 insertion(+) create mode 100644 index.d.ts diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..7ff07fe --- /dev/null +++ b/index.d.ts @@ -0,0 +1 @@ +declare module "react-native-barometer"; From 04394c37885c54e2af33ab62f294c9181bc8fb17 Mon Sep 17 00:00:00 2001 From: kleydon Date: Fri, 13 Jan 2023 08:54:27 -0800 Subject: [PATCH 02/17] update index.d.ts --- index.d.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/index.d.ts b/index.d.ts index 7ff07fe..da65084 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1 +1,15 @@ +//import Barometer from "." + declare module "react-native-barometer"; + +interface IBarometer { + watch: (watchCallbackFn:Function) => number, + clearWatch: (watchID:number) => void, + stopObserving: () => void, + isSupported: () => Promise, + setInterval: (interval:number) => void, + setLocalPressure: (pressure:number) => void, +} + +declare const Barometer:IBarometer; +export default Barometer; \ No newline at end of file From e3a594530f63a8d9d0a77bc47a01145986c33ad4 Mon Sep 17 00:00:00 2001 From: kleydon Date: Fri, 13 Jan 2023 09:48:35 -0800 Subject: [PATCH 03/17] updated d ts file --- index.d.ts | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/index.d.ts b/index.d.ts index da65084..7683e86 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,15 +1,50 @@ -//import Barometer from "." +// Module d.ts file; enables this module to be used +// in typescript react-native projects + +// If keeping the interface below up-to-date proves +// to be a nuissance, options are: +// +// * Comment out everything below except the "declare module..." line +// (which enables this module to be used in typescript +// react-native projects). Cons: You lose auto-complete and +// type-checking in VS Code, but, if the types defined by +// the interface below aren't there - they can't be *wrong*. +// +// * Re-create this module using create-react-native-library, +// choosing typescript, and java/obj-c. See: +// https://reactnative.dev/docs/native-modules-setup, +// + +// See: +// https://www.typescriptlang.org/docs/handbook/declaration-files/templates/module-d-ts.html +// https://stackoverflow.com/a/51355583 declare module "react-native-barometer"; +interface Payload { // See README for descriptions + timestamp:number, + pressure:number, + altitudeASL:number, + altitude:number, + relativeAltitude:number, + verticalSpeed:number, +}; + +type WatchCallbackFn = (payload:Payload) => number; + interface IBarometer { - watch: (watchCallbackFn:Function) => number, + watch: WatchCallbackFn, clearWatch: (watchID:number) => void, stopObserving: () => void, isSupported: () => Promise, setInterval: (interval:number) => void, setLocalPressure: (pressure:number) => void, -} +}; declare const Barometer:IBarometer; + +export { + Barometer +}; + export default Barometer; \ No newline at end of file From 1ef0df742e8456df6045a74ead454a7a3111f8f8 Mon Sep 17 00:00:00 2001 From: kleydon Date: Fri, 13 Jan 2023 09:52:33 -0800 Subject: [PATCH 04/17] Clean up comments --- index.d.ts | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/index.d.ts b/index.d.ts index 7683e86..74ec07c 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,20 +1,6 @@ -// Module d.ts file; enables this module to be used +// Module d.ts file; enables using this module // in typescript react-native projects -// If keeping the interface below up-to-date proves -// to be a nuissance, options are: -// -// * Comment out everything below except the "declare module..." line -// (which enables this module to be used in typescript -// react-native projects). Cons: You lose auto-complete and -// type-checking in VS Code, but, if the types defined by -// the interface below aren't there - they can't be *wrong*. -// -// * Re-create this module using create-react-native-library, -// choosing typescript, and java/obj-c. See: -// https://reactnative.dev/docs/native-modules-setup, -// - // See: // https://www.typescriptlang.org/docs/handbook/declaration-files/templates/module-d-ts.html // https://stackoverflow.com/a/51355583 From 49816100c73b9a868409f334779fef2b5a59614b Mon Sep 17 00:00:00 2001 From: kleydon Date: Fri, 13 Jan 2023 09:58:31 -0800 Subject: [PATCH 05/17] Updated index.d.ts --- index.d.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/index.d.ts b/index.d.ts index 74ec07c..bd079d0 100644 --- a/index.d.ts +++ b/index.d.ts @@ -7,7 +7,7 @@ declare module "react-native-barometer"; -interface Payload { // See README for descriptions +interface BarometerPayload { // See README for descriptions timestamp:number, pressure:number, altitudeASL:number, @@ -16,7 +16,7 @@ interface Payload { // See README for descriptions verticalSpeed:number, }; -type WatchCallbackFn = (payload:Payload) => number; +type WatchCallbackFn = (payload:BarometerPayload) => number; interface IBarometer { watch: WatchCallbackFn, @@ -30,7 +30,8 @@ interface IBarometer { declare const Barometer:IBarometer; export { - Barometer + Barometer, + BarometerPayload }; export default Barometer; \ No newline at end of file From 66b1ef6bbb7864ffe17da28d522ee8373f81fa5a Mon Sep 17 00:00:00 2001 From: kleydon Date: Fri, 13 Jan 2023 10:25:50 -0800 Subject: [PATCH 06/17] Updated index.d.ts --- index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.d.ts b/index.d.ts index bd079d0..60bd789 100644 --- a/index.d.ts +++ b/index.d.ts @@ -19,7 +19,7 @@ interface BarometerPayload { // See README for descriptions type WatchCallbackFn = (payload:BarometerPayload) => number; interface IBarometer { - watch: WatchCallbackFn, + watch: (watchCallbackFn:WatchCallbackFn) => number, clearWatch: (watchID:number) => void, stopObserving: () => void, isSupported: () => Promise, From fb17635936fa19fe17a88fac6198ed210f15cf6c Mon Sep 17 00:00:00 2001 From: kleydon Date: Fri, 13 Jan 2023 10:33:17 -0800 Subject: [PATCH 07/17] Updated index.d.ts again --- index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.d.ts b/index.d.ts index 60bd789..120877f 100644 --- a/index.d.ts +++ b/index.d.ts @@ -16,7 +16,7 @@ interface BarometerPayload { // See README for descriptions verticalSpeed:number, }; -type WatchCallbackFn = (payload:BarometerPayload) => number; +type WatchCallbackFn = (payload:BarometerPayload) => void; interface IBarometer { watch: (watchCallbackFn:WatchCallbackFn) => number, From ea5b420581f56debfa920a9a93d40e4cbe465769 Mon Sep 17 00:00:00 2001 From: kleydon Date: Fri, 13 Jan 2023 10:37:20 -0800 Subject: [PATCH 08/17] Exporting WatchCallbackFn --- index.d.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/index.d.ts b/index.d.ts index 120877f..dbb26fb 100644 --- a/index.d.ts +++ b/index.d.ts @@ -31,7 +31,8 @@ declare const Barometer:IBarometer; export { Barometer, - BarometerPayload + BarometerPayload, + WatchCallbackFn }; export default Barometer; \ No newline at end of file From 0e9066145bf02046c161150b891b684a057c9ca2 Mon Sep 17 00:00:00 2001 From: kleydon Date: Fri, 13 Jan 2023 11:01:29 -0800 Subject: [PATCH 09/17] Working on index.d.ts --- index.d.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/index.d.ts b/index.d.ts index dbb26fb..6bc7e82 100644 --- a/index.d.ts +++ b/index.d.ts @@ -7,6 +7,8 @@ declare module "react-native-barometer"; +import Barometer from "."; + interface BarometerPayload { // See README for descriptions timestamp:number, pressure:number, From 6468020b5ea7266b11076432dbc236d1f8f7d2b6 Mon Sep 17 00:00:00 2001 From: kleydon Date: Fri, 13 Jan 2023 11:10:49 -0800 Subject: [PATCH 10/17] Working on index.d.ts --- index.d.ts | 69 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 46 insertions(+), 23 deletions(-) diff --git a/index.d.ts b/index.d.ts index 6bc7e82..ba08b91 100644 --- a/index.d.ts +++ b/index.d.ts @@ -5,11 +5,43 @@ // https://www.typescriptlang.org/docs/handbook/declaration-files/templates/module-d-ts.html // https://stackoverflow.com/a/51355583 -declare module "react-native-barometer"; +// declare module "react-native-barometer"; + +// import Barometer from "."; + +// interface BarometerPayload { // See README for field descriptions +// timestamp:number, +// pressure:number, +// altitudeASL:number, +// altitude:number, +// relativeAltitude:number, +// verticalSpeed:number, +// }; + +// type WatchCallbackFn = (payload:BarometerPayload) => void; -import Barometer from "."; +// interface IBarometer { +// watch: (watchCallbackFn:WatchCallbackFn) => number, +// clearWatch: (watchID:number) => void, +// stopObserving: () => void, +// isSupported: () => Promise, +// setInterval: (interval:number) => void, +// setLocalPressure: (pressure:number) => void, +// }; -interface BarometerPayload { // See README for descriptions +// declare const Barometer:IBarometer; + +// export { +// Barometer, +// BarometerPayload, +// WatchCallbackFn +// }; + +// export default Barometer; + +declare module "react-native-barometer"; + +interface BarometerPayload { // See README for field descriptions timestamp:number, pressure:number, altitudeASL:number, @@ -18,23 +50,14 @@ interface BarometerPayload { // See README for descriptions verticalSpeed:number, }; -type WatchCallbackFn = (payload:BarometerPayload) => void; - -interface IBarometer { - watch: (watchCallbackFn:WatchCallbackFn) => number, - clearWatch: (watchID:number) => void, - stopObserving: () => void, - isSupported: () => Promise, - setInterval: (interval:number) => void, - setLocalPressure: (pressure:number) => void, -}; - -declare const Barometer:IBarometer; - -export { - Barometer, - BarometerPayload, - WatchCallbackFn -}; - -export default Barometer; \ No newline at end of file +type BarometerWatchCallbackFn = (payload:BarometerPayload) => void; + +export default Barometer; +declare namespace Barometer { + function watch(success: BarometerWatchCallbackFn): number; + function clearWatch(watchID: any): void; + function stopObserving(): void; + function isSupported(): Promise; + function setInterval(interval: any): void; + function setLocalPressure(pressure: any): void; +} \ No newline at end of file From 8ab4bbe70e2f7d5a8039eb4948678da06f56eb0a Mon Sep 17 00:00:00 2001 From: kleydon Date: Fri, 13 Jan 2023 12:45:28 -0800 Subject: [PATCH 11/17] Update .d.ts file --- index.d.ts | 70 +++++++++++++++++++----------------------------------- 1 file changed, 24 insertions(+), 46 deletions(-) diff --git a/index.d.ts b/index.d.ts index ba08b91..cebbb20 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,47 +1,19 @@ -// Module d.ts file; enables using this module -// in typescript react-native projects +// Module d.ts file + +// Enables using module in typescript react-native projects, +// with editor auto-complete and type-validation (in VS Code) // See: -// https://www.typescriptlang.org/docs/handbook/declaration-files/templates/module-d-ts.html +// Typescript docs: +// https://www.typescriptlang.org/docs/handbook/declaration-files/templates/module-d-ts.html +// Typescript Playground, for automatic generation of .d.ts file from .js: +// https://www.typescriptlang.org/play?filetype=js&useJavaScript=true#code/Q +// Simplest approach: // https://stackoverflow.com/a/51355583 -// declare module "react-native-barometer"; - -// import Barometer from "."; - -// interface BarometerPayload { // See README for field descriptions -// timestamp:number, -// pressure:number, -// altitudeASL:number, -// altitude:number, -// relativeAltitude:number, -// verticalSpeed:number, -// }; - -// type WatchCallbackFn = (payload:BarometerPayload) => void; - -// interface IBarometer { -// watch: (watchCallbackFn:WatchCallbackFn) => number, -// clearWatch: (watchID:number) => void, -// stopObserving: () => void, -// isSupported: () => Promise, -// setInterval: (interval:number) => void, -// setLocalPressure: (pressure:number) => void, -// }; - -// declare const Barometer:IBarometer; - -// export { -// Barometer, -// BarometerPayload, -// WatchCallbackFn -// }; - -// export default Barometer; - declare module "react-native-barometer"; -interface BarometerPayload { // See README for field descriptions +interface BarometerPayload { // See module README for field descriptions timestamp:number, pressure:number, altitudeASL:number, @@ -52,12 +24,18 @@ interface BarometerPayload { // See README for field descriptions type BarometerWatchCallbackFn = (payload:BarometerPayload) => void; +declare namespace Barometer { // See module README for function descriptions + function isSupported(): Promise; + function setInterval(interval: number): void; + function setLocalPressure(pressure: number): void; + function watch(success: BarometerWatchCallbackFn): number; + function clearWatch(watchID: any): void; + function stopObserving(): void; +} + +export { + BarometerPayload, + BarometerWatchCallbackFn +}; + export default Barometer; -declare namespace Barometer { - function watch(success: BarometerWatchCallbackFn): number; - function clearWatch(watchID: any): void; - function stopObserving(): void; - function isSupported(): Promise; - function setInterval(interval: any): void; - function setLocalPressure(pressure: any): void; -} \ No newline at end of file From b3e4c235d3980466b30faf02cd38eb44df5781d7 Mon Sep 17 00:00:00 2001 From: kleydon Date: Fri, 13 Jan 2023 14:17:49 -0800 Subject: [PATCH 12/17] Adding consistent smoothing factor --- .../RNBarometer/RNBarometerModule.java | 31 ++++++++++++++++--- index.d.ts | 2 ++ index.js | 13 ++++++++ ios/RNBarometer.h | 1 + ios/RNBarometer.m | 28 +++++++++++++++-- 5 files changed, 69 insertions(+), 6 deletions(-) diff --git a/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java b/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java index d90f49e..0c13f5f 100644 --- a/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java +++ b/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java @@ -26,14 +26,19 @@ @ReactModule(name = RNBarometerModule.NAME) public class RNBarometerModule extends ReactContextBaseJavaModule implements LifecycleEventListener, SensorEventListener { + public static final String NAME = "RNBarometer"; - private static final double kPressFilteringFactor = 0.3; + + public static final double DEFAULT_INTERVAL_MS = 200; // 5 Hz + public static final double DEFAULT_SMOOTHING_FACTOR = 0.7; + private static final int ignoreSamples = 10; private final ReactApplicationContext reactContext; private final SensorManager mSensorManager; private final Sensor mPressureSensor; private boolean isRunning; - private int mIntervalMillis; + private int mIntervalMillis = DEFAULT_INTERVAL_MS; + private double mSmoothingFactor = DEFAULT_SMOOTHING_FACTOR; private long mLastSampleTime; private double mInitialAltitude; private double mRelativeAltitude; @@ -55,7 +60,8 @@ public RNBarometerModule(ReactApplicationContext reactContext) { mLastSampleTime = 0; mRelativeAltitude = 0; mInitialAltitude = -1; - mIntervalMillis = 200; // 5Hz + mIntervalMillis = DEFAULT_INTERVAL_MS; + mFilterFactor = DEFAULT_FILTER_FACTOR; isRunning = false; } @@ -120,6 +126,23 @@ public void setLocalPressure(double pressurehPa) { mLocalPressurehPa = pressurehPa; } + @ReactMethod + // Sets smoothing factor [0 -1]. + // Note: More smoothing means more latency before + // the smoothed value has "caught up with" current + // conditions. + public void setSmoothingFactor(double smoothingFactor) { + if (smoothingFactor >= 0 && smoothingFactor <= 1.0) { + mSmoothingFactor = smoothingFactor; + } + } + + @ReactMethod + // Gets smoothing factor + public double getSmoothingFactor() { + return mSmoothingFactor; + } + @ReactMethod // Starts observing pressure public void startObserving(Promise promise) { @@ -156,7 +179,7 @@ public void onSensorChanged(SensorEvent sensorEvent) { if (timeSinceLastUpdate >= mIntervalMillis) { double lastAltitudeASL = mAltitudeASL; // Get the filtered raw pressure in millibar/hPa - mRawPressure = (sensorEvent.values[0] * kPressFilteringFactor + mRawPressure * (1.0 - kPressFilteringFactor)); + mRawPressure = (sensorEvent.values[0] * (((double)1.0) - mSmoothingFactor) + mRawPressure * mSmoothingFactor); // Calculate standard atmosphere altitude in metres mAltitudeASL = getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, mRawPressure); // Calculate our vertical speed in metres per second diff --git a/index.d.ts b/index.d.ts index cebbb20..062bae1 100644 --- a/index.d.ts +++ b/index.d.ts @@ -31,6 +31,8 @@ declare namespace Barometer { // See module README for function descriptions function watch(success: BarometerWatchCallbackFn): number; function clearWatch(watchID: any): void; function stopObserving(): void; + function setSmoothingFactor(smoothingFactor:double): void; + function getSmoothingFactor(): Promise; } export { diff --git a/index.js b/index.js index 091e171..1b2201a 100644 --- a/index.js +++ b/index.js @@ -73,6 +73,19 @@ const Barometer = { // Sets the local air pressure in hPA/Millibars setLocalPressure: function(pressure) { RNBarometer.setLocalPressure(pressure); + }, + + // Sets smoothingFactor, a value [0 - 1] that determines + // how much smoothing is applied to the raw value. + // Note: More smoothing means more latency before + // the smoothed value has "caught up with" current + // conditions. + setSmoothingFactor: function(smoothingFactor) { + RNBarometer.setSmoothingFactor(smoothingFactor); + }, + + getSmoothingFactor: function() { + return RNBarometer.getSmoothingFactor(); } }; diff --git a/ios/RNBarometer.h b/ios/RNBarometer.h index c14ceef..e491551 100644 --- a/ios/RNBarometer.h +++ b/ios/RNBarometer.h @@ -13,6 +13,7 @@ double rawPressure; double altitudeASL; double altitude; + double smoothingFactor; } @end diff --git a/ios/RNBarometer.m b/ios/RNBarometer.m index cfb228b..0b95ac1 100644 --- a/ios/RNBarometer.m +++ b/ios/RNBarometer.m @@ -8,6 +8,8 @@ #import const double STANDARD_ATMOSPHERE = 1013.25; +const double DEFAULT_INTERVAL_MS = 0.7; // 5 Hz +const double DEFAULT_SMOOTHING_FACTOR = 0.7; @implementation RNBarometer @@ -24,8 +26,9 @@ - (id) init { rawPressure = 0; altitudeASL = 0; lastSampleTime = 0; - intervalMillis = 200; // 5Hz + intervalMillis = DEFAULT_INTERVAL_MS; isRunning = false; + smoothingFactor = DEFAULT_SMOOTHING_FACTOR; } return self; } @@ -62,6 +65,24 @@ + (BOOL)requiresMainQueueSetup localPressurehPa = pressurehPa; } +// Sets smoothing factor [0 -1]. +// Note: More smoothing means more latency before +// the smoothed value has "caught up with" current +// conditions. +RCT_EXPORT_METHOD(setSmoothingFactor:(double) smoothingFactor) { + if (smoothingFactor >= 0 && smoothingFactor <= 1.0) { + self->smoothingFactor = smoothingFactor; + } +} + +// Get the smoothing factor +RCT_EXPORT_METHOD(getSmoothingFactor, + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) { + return resolve(self->smoothingFactor); +} + + // Starts observing pressure RCT_EXPORT_METHOD(startObserving) { if(!isRunning) { @@ -71,7 +92,9 @@ + (BOOL)requiresMainQueueSetup if(timeSinceLastUpdate >= self->intervalMillis && altitudeData){ double lastAltitudeASL = self->altitudeASL; // Get the raw pressure in millibar/hPa - self->rawPressure = altitudeData.pressure.doubleValue * 10.0; // the x10 converts to millibar + double newRawPressure = altitudeData.pressure.doubleValue * 10.0; // the x10 converts to millibar + // Apply any smoothing + self->rawPressure = (newRawPressure * (((double)1.0) - mSmoothingFactor) + self->rawPressure * mSmoothingFactor); // Calculate standard atmpsphere altitude in metres self->altitudeASL = getAltitude(STANDARD_ATMOSPHERE, self->rawPressure); // Calculate our vertical speed in metres per second @@ -115,5 +138,6 @@ + (BOOL)requiresMainQueueSetup return 44330.0 * (1.0 - pow(p/p0, coef)); } + @end From 7b4314e8cd79dbd65eea90b82ddc9803be63445c Mon Sep 17 00:00:00 2001 From: kleydon Date: Fri, 13 Jan 2023 14:26:31 -0800 Subject: [PATCH 13/17] filter -> smooth --- .../java/com/sensorworks/RNBarometer/RNBarometerModule.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java b/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java index 0c13f5f..c3ae3a6 100644 --- a/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java +++ b/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java @@ -61,7 +61,7 @@ public RNBarometerModule(ReactApplicationContext reactContext) { mRelativeAltitude = 0; mInitialAltitude = -1; mIntervalMillis = DEFAULT_INTERVAL_MS; - mFilterFactor = DEFAULT_FILTER_FACTOR; + mSmoothingFactor = DEFAULT_SMOOTHING_FACTOR; isRunning = false; } @@ -178,7 +178,7 @@ public void onSensorChanged(SensorEvent sensorEvent) { long timeSinceLastUpdate = tempMs - mLastSampleTime; if (timeSinceLastUpdate >= mIntervalMillis) { double lastAltitudeASL = mAltitudeASL; - // Get the filtered raw pressure in millibar/hPa + // Get the smoothed raw pressure in millibar/hPa mRawPressure = (sensorEvent.values[0] * (((double)1.0) - mSmoothingFactor) + mRawPressure * mSmoothingFactor); // Calculate standard atmosphere altitude in metres mAltitudeASL = getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, mRawPressure); From f52a834a3c7e48d2e6a8993eb73ac024a61b1a40 Mon Sep 17 00:00:00 2001 From: kleydon Date: Fri, 13 Jan 2023 14:43:19 -0800 Subject: [PATCH 14/17] fixing int types --- .../java/com/sensorworks/RNBarometer/RNBarometerModule.java | 2 +- ios/RNBarometer.m | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java b/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java index c3ae3a6..3212ab5 100644 --- a/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java +++ b/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java @@ -29,7 +29,7 @@ public class RNBarometerModule extends ReactContextBaseJavaModule implements Lif public static final String NAME = "RNBarometer"; - public static final double DEFAULT_INTERVAL_MS = 200; // 5 Hz + public static final int DEFAULT_INTERVAL_MS = 200; // 5 Hz public static final double DEFAULT_SMOOTHING_FACTOR = 0.7; private static final int ignoreSamples = 10; diff --git a/ios/RNBarometer.m b/ios/RNBarometer.m index 0b95ac1..c6ab717 100644 --- a/ios/RNBarometer.m +++ b/ios/RNBarometer.m @@ -8,7 +8,7 @@ #import const double STANDARD_ATMOSPHERE = 1013.25; -const double DEFAULT_INTERVAL_MS = 0.7; // 5 Hz +const long DEFAULT_INTERVAL_MS = 0.7; // 5 Hz const double DEFAULT_SMOOTHING_FACTOR = 0.7; @implementation RNBarometer From 82826b7acf21723bd5828cc5223c5e4a8967ea71 Mon Sep 17 00:00:00 2001 From: kleydon Date: Fri, 13 Jan 2023 14:57:08 -0800 Subject: [PATCH 15/17] Fixed a promise issue --- .../java/com/sensorworks/RNBarometer/RNBarometerModule.java | 4 ++-- index.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java b/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java index 3212ab5..9786457 100644 --- a/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java +++ b/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java @@ -139,8 +139,8 @@ public void setSmoothingFactor(double smoothingFactor) { @ReactMethod // Gets smoothing factor - public double getSmoothingFactor() { - return mSmoothingFactor; + public double getSmoothingFactor(Promise promise) { + return promise.resolve(mSmoothingFactor); } @ReactMethod diff --git a/index.js b/index.js index 1b2201a..fecde53 100644 --- a/index.js +++ b/index.js @@ -84,8 +84,8 @@ const Barometer = { RNBarometer.setSmoothingFactor(smoothingFactor); }, - getSmoothingFactor: function() { - return RNBarometer.getSmoothingFactor(); + getSmoothingFactor: async function() { + return await RNBarometer.getSmoothingFactor(); } }; From 734b816543e14ad594ea4be62df5c1d4d8e9c620 Mon Sep 17 00:00:00 2001 From: kleydon Date: Fri, 13 Jan 2023 15:03:42 -0800 Subject: [PATCH 16/17] Fixed a return type --- .../java/com/sensorworks/RNBarometer/RNBarometerModule.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java b/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java index 9786457..ae80926 100644 --- a/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java +++ b/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java @@ -139,7 +139,7 @@ public void setSmoothingFactor(double smoothingFactor) { @ReactMethod // Gets smoothing factor - public double getSmoothingFactor(Promise promise) { + public void getSmoothingFactor(Promise promise) { return promise.resolve(mSmoothingFactor); } From a5d9c7d3da4ad094b16d54c90fa43e423009df78 Mon Sep 17 00:00:00 2001 From: kleydon Date: Fri, 13 Jan 2023 15:20:03 -0800 Subject: [PATCH 17/17] Fixed return value --- .../java/com/sensorworks/RNBarometer/RNBarometerModule.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java b/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java index ae80926..23014db 100644 --- a/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java +++ b/android/src/main/java/com/sensorworks/RNBarometer/RNBarometerModule.java @@ -140,7 +140,7 @@ public void setSmoothingFactor(double smoothingFactor) { @ReactMethod // Gets smoothing factor public void getSmoothingFactor(Promise promise) { - return promise.resolve(mSmoothingFactor); + promise.resolve(mSmoothingFactor); } @ReactMethod