summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/airmx/src/message.ts27
-rw-r--r--packages/airmx/src/types.ts5
2 files changed, 32 insertions, 0 deletions
diff --git a/packages/airmx/src/message.ts b/packages/airmx/src/message.ts
index f9bcf13..d21dc44 100644
--- a/packages/airmx/src/message.ts
+++ b/packages/airmx/src/message.ts
@@ -1,3 +1,6 @@
+import type { InstantPushData } from './types.js'
+import { MessageSource } from './types.js'
+
export class CommandMessage<T> {
constructor(
readonly commandId: number,
@@ -17,3 +20,27 @@ export class CommandMessage<T> {
}
}
}
+
+const current = () => {
+ return Math.floor(new Date().getTime() / 1000)
+}
+
+export class InstantPushMessage extends CommandMessage<InstantPushData> {
+ static commandId() {
+ return 40
+ }
+
+ /**
+ * @param frequency - Report frequency in seconds.
+ * @param duration - Report duration in seconds.
+ */
+ static make(frequency: number, duration: number) {
+ const data = {
+ frequencyTime: frequency,
+ durationTime: duration
+ }
+ return new InstantPushMessage(
+ this.commandId(), 'instantPush', data, current(), MessageSource.App_Android
+ )
+ }
+}
diff --git a/packages/airmx/src/types.ts b/packages/airmx/src/types.ts
index 98a767a..5d1e01e 100644
--- a/packages/airmx/src/types.ts
+++ b/packages/airmx/src/types.ts
@@ -107,3 +107,8 @@ export interface EagleControlData {
cadr: number
denoise: 0 | 1
}
+
+export interface InstantPushData {
+ frequencyTime: number
+ durationTime: number
+}