package com.iscs.bozzys.utils.ble

/**
 * 封装用于蓝牙通信的协议
 */
object BleProtocol {

    // 服务特征
    const val SERVICE_UUID = "0000FEE7-0000-1000-8000-00805F9B34FB"

    // 写入其他数据特征
    const val INDICATE_UUID = "0000FED1-0000-1000-8000-00805F9B34FB"

    // 写作业票数据特征
    const val WRITE_UUID = "0000FED2-0000-1000-8000-00805F9B34FB"

    // 获取令牌，需增加4字节的时间戳，总长8个字节长度
    val REQ_GET_TOKEN = byteArrayOf(0x01, 0x01, 0x05, 0x00)

    // 获取令牌响应，最后4个是token，总长15个字节长度
    val RSP_GET_TOKEN = byteArrayOf(0x01, 0x02, 0x04)

    // 获取钥匙电量
    val REQ_POWER_STATUS = byteArrayOf(0x03, 0x01, 0x01, 0x03)

    // 获取钥匙电量响应
    val RSP_POWER_STATUS = byteArrayOf(0x03, 0x02, 0x03, 0x03)

    // 获取当前设备请求
    val REQ_CURRENT_STATUS = byteArrayOf(0x03, 0x01, 0x01, 0x01)

    // 获取当前设备响应
    val RSP_CURRENT_STATUS = byteArrayOf(0x03, 0x02, 0x02, 0x01)

    // 工作模式切换请求
    val REQ_SWITCH_MODE = byteArrayOf(0x02, 0x01, 0x02, 0x01)

    // 工作模式切换响应
    val RSP_SWITCH_MODE = byteArrayOf(0x02, 0x02, 0x03, 0x01)

    // 设备关机
    val REQ_POWER_OFF = byteArrayOf(0x02, 0x01, 0x02, 0xEE.toByte())

    // 设备关机响应
    val RSP_POWER_OFF = byteArrayOf(0x02, 0x02, 0x03, 0xEE.toByte())

    // 工作票下发
    val REQ_SEND_WORK_TICKET = byteArrayOf(0x02, 0x01)

    // 工作票下发响应
    val RSP_SEND_WORK_TICKET = byteArrayOf(0x02, 0x02, 0x06, 0x02)

    // 获取设备工作票完成情况
    val REQ_WORK_TICKET_RESULT = byteArrayOf(0x03, 0x01, 0x01, 0x02)

    // 获取设备工作票完成情况响应
    val RSP_WORK_TICKET_RESULT = byteArrayOf(0x03, 0x02)

    // 获取设备工作票完成情况分包
    val REQ_WORK_TICKET_RESULT_PART = byteArrayOf(0x03, 0x01, 0x06, 0x02)

}