riku
2021-03-01 09f411e381f885619b32e05fc89cad26bb20824d
src/test/kotlin/com/flightfeather/uav/Test.kt
@@ -1,6 +1,13 @@
package com.flightfeather.uav
import com.flightfeather.uav.socket.bean.DataUnit
import com.flightfeather.uav.socket.decoder.AirDataDecoder
import com.flightfeather.uav.socket.eunm.AirCommandUnit
import com.google.gson.Gson
import org.junit.Test
import java.io.File
import java.io.FileOutputStream
import java.io.OutputStreamWriter
import java.text.SimpleDateFormat
import java.util.*
@@ -12,139 +19,26 @@
    @Test
    fun foo1() {
        val b = ByteArray(20) {8}
        val a = 1
        println(a.toString(2))
        val s = SimpleDateFormat.getDateTimeInstance().format(Date())
        println(s)
    }
    @Test
    fun foo2() {
        val b = ByteArray(2)
        b[0] = 0x01
        b[1] = 0x80.toByte()
        println("${b[0].toString(16)}${b[1].toInt()}")
        println("${b[0]}${b[1]}".toInt(16))
    }
    @Test
    fun foo3() {
        val hexNum = "ff"
        val length = hexNum.toInt(16)
        println(length)
    }
    @Test
    fun foo4() {
        val h = "0101"
        val byte = 0xff
        val b = h.toInt(16)
        println(b)
    }
    @Test
    fun foo5() {
        val s = "23 23 30 30 30 30 30 35 33 31 36 30 38 30 31 30 35 33 36"
        val sb = StringBuilder()
        val ascii = s.split(" ")
        ascii.forEach {
            sb.append(it.toIntOrNull(16)?.toChar())
        }
        println(sb.toString())
    }
    @Test
    fun foo6() {
        val cal  = Calendar.getInstance().apply {
            set(2019, 9, 15, 23, 16, 59)
        }
        println(SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cal.time))
    }
    @Test
    fun foo7() {
        val a = "0AAF".toIntOrNull(16)?.toString(2)
        println(a)
    }
    @Test
    fun foo8() {
        val byte = ByteArray(2)
        byte[0] = 0x23
        byte[1] = 0x23
        byte[0].toString(16)
    }
    @Test
    fun foo9() {
        val b = 128.toByte()
        var a = 0
        if (b < 0) {
            a = b + 256
        } else {
            a = b.toInt()
        }
        println(b.toString(16))
    }
    @Test
    fun foo10() {
        val s = "2 31 37 36 39 31 35 33 31 39 30 39 31 32 30 30 30 36 1 1 0 42 13 9 f 12 33 3b 2 0 8a 1b 0 36 2e 0 23 60 11 b4 0 c8 0 b4 0 0 66 0 0 0 0 0 0 73 0 0 0 b9 4 75 0 2e d8 ed 0 0 0 0 80 0 bc 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
        val ascii = s.split(" ")
        var bcc = 0x00
        ascii.forEach {
            bcc = bcc.xor(it.toInt(16))
        }
        println(bcc.toString(16))
    }
    @Test
    fun foo11() {
        val b = mutableListOf<String>().apply {
            add("13")
            add("09")
            add("10")
            add("10")
            add("2b")
            add("2f")
        }
        if (b.size < 6) {
            println("null")
        }
        val year = b[0].toInt(16) + 2000
        if (year < 2000 || year > 2099) println("null")
        val month = b[1].toInt(16)
        val day = b[2].toInt(16)
        val hour = b[3].toInt(16)
        val min = b[4].toInt(16)
        val sec = b[5].toInt(16)
        val cal  = Calendar.getInstance().apply {
            set(year, month - 1, day, hour, min, sec)
        }
        println(SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cal.time))
    }
    @Test
    fun f0012() {
        val sb = java.lang.StringBuilder()
        val byte = ByteArray(2)
        byte[0] = 0x00
        byte[1] = 0xBD.toByte()
        byte.forEach { b ->
            var a = 0
            a = if (b < 0) {
                b + 256
            } else {
                b.toInt()
        val file = File("E:\\VSprojects\\uav-monitor\\asset\\data\\data-2020-12-24-01-34-24.txt")
        val outFile = File("E:\\VSprojects\\uav-monitor\\asset\\data\\data.json")
        val out = OutputStreamWriter(FileOutputStream(outFile))
        val list = mutableListOf<List<DataUnit>>()
        file.readLines().forEach {
            val p = AirDataDecoder.instance.decode(it)
//            val str = Gson().toJson(p.dataUnit)
            if (p.commandUnit == AirCommandUnit.AirData.value) {
                list.add(p.dataUnit)
            }
            sb.append(a.toString(16))
        }
        println(sb.toString().toInt(16))
        val str = Gson().toJson(list)
        out.append(str)
        out.flush()
        out.close()
    }
}