summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi Zhineng <[email protected]>2025-07-18 10:48:59 +0800
committerLi Zhineng <[email protected]>2025-07-18 10:48:59 +0800
commit9d8eebb54c7eddd8fd5ca7009339d994bcf0ed2c (patch)
tree2097ef3344195154eb9635e625dec2748b979537
parent9e52689efff4eede30e2a706dbb4bf3340f168fc (diff)
downloadairmx-9d8eebb54c7eddd8fd5ca7009339d994bcf0ed2c.tar.gz
airmx-9d8eebb54c7eddd8fd5ca7009339d994bcf0ed2c.zip
instant push message
-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
+}