package com.example.m20_gamepad.network.models

/**
 * 完整 APDU 报文 = Header + ASDU (JSON 文本)
 */
data class ApduMessage(
    val header: Header,
    val asdu: String  // JSON 格式的 ASDU 载荷
) {
    /**
     * 序列化为完整报文字节数组（Header + ASDU）
     */
    fun toBytes(): ByteArray {
        val asduBytes = asdu.toByteArray(Charsets.UTF_8)
        val headerWithLength = header.copy(length = asduBytes.size)
        return headerWithLength.toBytes() + asduBytes
    }
}