mirror of
https://github.com/YuzuZensai/beamboxctl.git
synced 2026-07-21 20:42:19 +00:00
✨ feat: initial commit
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
import type { PacketType } from "../packet-types.ts";
|
||||
|
||||
/**
|
||||
* Bluetooth Low Energy (BLE) connection configuration
|
||||
*
|
||||
* Contains settings for discovering and connecting to the BeamBox device via BLE.
|
||||
*/
|
||||
export interface BLEConfig {
|
||||
/**
|
||||
* Expected name of the device during scanning
|
||||
*/
|
||||
deviceName: string;
|
||||
|
||||
/**
|
||||
* UUID of the BLE characteristic used for writing commands/data to the device
|
||||
*/
|
||||
writeCharacteristicUUID: string;
|
||||
|
||||
/**
|
||||
* UUID of the BLE characteristic used for receiving notifications/responses from the device
|
||||
*/
|
||||
notifyCharacteristicUUID: string;
|
||||
|
||||
/**
|
||||
* Maximum time (in seconds) to wait for device discovery before timing out
|
||||
*/
|
||||
scanTimeout: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* Protocol configuration for packet transmission
|
||||
*
|
||||
* Contains timing and size parameters for data transfer to the device.
|
||||
* These values control the flow of data to prevent overwhelming the device.
|
||||
*/
|
||||
export interface ProtocolConfig {
|
||||
/**
|
||||
* Command type byte (CMD_TYPE) sent in packet headers
|
||||
*
|
||||
* Always 0xF1 as observed in packet captures
|
||||
*/
|
||||
cmdType: number;
|
||||
|
||||
/**
|
||||
* Command subtype indicating the type of data being sent
|
||||
*/
|
||||
cmdSubtype: PacketType;
|
||||
|
||||
/**
|
||||
* Maximum size in bytes of each data chunk sent to the device
|
||||
*/
|
||||
chunkSize: number;
|
||||
|
||||
/**
|
||||
* Maximum size in bytes for image info JSON packets
|
||||
*/
|
||||
imageInfoChunkSize: number;
|
||||
|
||||
/**
|
||||
* Delay (in seconds) between sending consecutive data chunks
|
||||
*/
|
||||
packetDelay: number;
|
||||
|
||||
/**
|
||||
* Delay (in seconds) after sending the image info packet
|
||||
*/
|
||||
imageInfoDelay: number;
|
||||
|
||||
/**
|
||||
* Maximum time (in seconds) to wait for a packet acknowledgment from the device
|
||||
*/
|
||||
packetAckTimeout: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* Image processing and configuration settings
|
||||
*
|
||||
* Contains parameters for processing images before sending to the device,
|
||||
* including resizing, compression, and validation settings.
|
||||
*/
|
||||
export interface ImageConfig {
|
||||
/**
|
||||
* Default display dimensions [width, height] for images
|
||||
*
|
||||
* Images are resized to fit these dimensions
|
||||
*/
|
||||
defaultSize: [number, number];
|
||||
|
||||
/**
|
||||
* JPEG compression quality (0-100)
|
||||
*
|
||||
* - 0: Lowest quality, smallest file
|
||||
* - 100: Highest quality, largest file
|
||||
* - 70: Good balance (recommended)
|
||||
*/
|
||||
jpegQuality: number;
|
||||
|
||||
/**
|
||||
* Whether to enable JPEG optimization for smaller file sizes
|
||||
*
|
||||
* true: Apply optimization algorithms (slower but smaller)
|
||||
* false: Skip optimization (faster but larger)
|
||||
*/
|
||||
jpegOptimize: boolean;
|
||||
|
||||
/**
|
||||
* Number of squares per dimension for checkerboard transparency pattern
|
||||
*
|
||||
* Example: 8 = 8x8 checkerboard grid
|
||||
* Used for test pattern generation
|
||||
*/
|
||||
checkerboardSquares: number;
|
||||
}
|
||||
Reference in New Issue
Block a user