package com.narutohuo.xindazhou.ble.model

/**
 * BLE数据包模型
 * 
 * 根据新大洲本田蓝牙协议文档定义的数据包结构
 */
data class BLEPacket(
    /**
     * 包头（固定0x0A）
     */
    val head: Byte = 0x0A,
    
    /**
     * 地址（APP=0x0F, 中控=0x05, 仪表=0x0A）
     */
    val address: Byte,
    
    /**
     * 协议版本（v1.0 = 0x01）
     */
    val protocolVersion: Byte = 0x01,
    
    /**
     * 时区（单位：小时）
     */
    val timezone: Byte,
    
    /**
     * 加密标志（0x00不加密，0x01加密）
     */
    val encryptFlag: Byte = 0x01,
    
    /**
     * 操作系统（Android=0x01, iOS=0x02）
     */
    val osType: Byte = 0x01,
    
    /**
     * 数据长度（2字节）
     */
    val dataLength: Int,
    
    /**
     * 数据加密区（时间戳 + 功能码 + 指令类型 + 应用数据）
     */
    val encryptedData: ByteArray,
    
    /**
     * 校验（异或校验）
     */
    val checksum: Byte,
    
    /**
     * 包尾（固定0x0D）
     */
    val tail: Byte = 0x0D
)

/**
 * 数据加密区内容
 */
data class BLEEncryptedData(
    /**
     * 时间戳（4字节）
     */
    val timestamp: Long,
    
    /**
     * 功能码（1字节）
     * 0x01=握手, 0x02=应用控制, 0x03=系统控制, 0x04=系统查询, 0x05=系统设置
     */
    val functionCode: Byte,
    
    /**
     * 指令类型（1字节）
     */
    val instructionType: Byte,
    
    /**
     * 应用数据（可变长度）
     */
    val applicationData: ByteArray
)

