Skip to content

Commit 0b6517d

Browse files
committed
fix(simulator): use sinus curve for data generator
1 parent 7d996cc commit 0b6517d

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

cli/commands/simulate-device.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ export const simulateDeviceCommand = ({
305305
appId: 'VOLTAGE',
306306
messageType: 'DATA',
307307
ts: Date.now(),
308-
data: batteryReadings.next().value.toString(),
308+
data: batteryReadings.next().value.toFixed(0),
309309
},
310310
)
311311
}
@@ -345,13 +345,15 @@ function* dataGenerator({
345345
max: number
346346
step: number
347347
}): Generator<number> {
348-
let v = min
348+
const delta = max - min
349+
let segment = 0
350+
const maxSegment = delta / step
349351
while (true) {
350-
yield v
351-
v += step
352-
if (v >= max || v <= min) {
353-
step = -step
354-
}
352+
yield min +
353+
Math.sin((segment / maxSegment) * Math.PI * 2) * (delta / 2) +
354+
delta / 2
355+
356+
segment = ++segment % maxSegment
355357
}
356358
}
357359

0 commit comments

Comments
 (0)