open class XModemPacket { var bytes = ByteArray(133) protected set init { bytes[0] = 1 when(this) { is RequestPacket -> { bytes[1] = packetNumberSend.toByte() bytes[2] = packetNumberSend.inv().toByte() packetNumberSend++ } is ResponsePacket -> packetNumberReceived++ } bytes.fill(255.toByte(), 3, 131) } companion object { var packetNumberReceived = 0 var packetNumberSend = 0 fun resetPacketNumber() { packetNumberReceived = 0 packetNumberSend = 0 } } }