diff options
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/airmx/src/message.ts | 27 | ||||
| -rw-r--r-- | packages/airmx/src/types.ts | 5 |
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 +} |
