| | |
| | | package com.flightfeather.uav |
| | | |
| | | import com.flightfeather.uav.common.utils.DateUtil |
| | | import com.flightfeather.uav.common.utils.FileExchange |
| | | import com.flightfeather.uav.common.utils.FileUtil |
| | | import com.flightfeather.uav.domain.entity.Company |
| | | import com.flightfeather.uav.lightshare.eunm.SatelliteDataType |
| | | 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.jetbrains.kotlin.konan.util.visibleName |
| | | import org.junit.Test |
| | | import java.io.File |
| | | import java.io.FileOutputStream |
| | | import java.io.OutputStreamWriter |
| | | import java.math.BigDecimal |
| | | import java.text.SimpleDateFormat |
| | | import java.util.* |
| | | |
| | |
| | | |
| | | @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)) |
| | | } |
| | | val str = Gson().toJson(list) |
| | | out.append(str) |
| | | out.flush() |
| | | out.close() |
| | | } |
| | | |
| | | println(sb.toString().toInt(16)) |
| | | @Test |
| | | fun dataChange() { |
| | | FileExchange().doTask2() |
| | | } |
| | | |
| | | @Test |
| | | fun listCopy() { |
| | | val l1 = listOf(Company().apply { ciGuid = "a" }, Company().apply { ciGuid = "b" }, Company().apply { ciGuid = "c" }) |
| | | val l2 = mutableListOf<Company>().apply { addAll(l1) } |
| | | l2[1].ciGuid = "d" |
| | | println(l1) |
| | | println(l2) |
| | | } |
| | | |
| | | @Test |
| | | fun average() { |
| | | for (i in 0..2) { |
| | | println(i) |
| | | } |
| | | val list = listOf(1, 2, 3, 4, 5, 0) |
| | | println(list.average()) |
| | | } |
| | | |
| | | @Test |
| | | fun get_crc16(){ |
| | | val dataSegment = "QN=20210713133901044;ST=22;CN=2011;PW=555555;MN=FYHB0DT0100001;Flag=1;CP=&&DataTime=20210713133800;a34001-Avg=0.017,a34001-CPM=3.9,a34001-Flag=N;a50001-Avg=71.1,a50001-Flag=N;a01001-Avg=34.0,a01001-Flag=N;a01002-Avg=59.3,a01002-Flag=N;a01007-Avg=0.6,a01007-Flag=N;a01008-Avg=256.3,a01008-Flag=N;Period=1;Scale=1.0;SelfTemp=0.0;SelfHum=0.0;IsReplacement=N&&" |
| | | var CRC = 0x0000ffff |
| | | val POLYNOMIAL = 0x0000a001 |
| | | var i: Int |
| | | var j: Int |
| | | val bufData = dataSegment.toByteArray() |
| | | val buflen = bufData.size |
| | | if (buflen == 0) { |
| | | return |
| | | } |
| | | i = 0 |
| | | while (i < buflen) { |
| | | CRC = CRC xor (bufData[i].toInt() and 0x000000ff) |
| | | j = 0 |
| | | while (j < 8) { |
| | | if (CRC and 0x00000001 != 0) { |
| | | CRC = CRC shr 1 |
| | | CRC = CRC xor POLYNOMIAL |
| | | } else { |
| | | CRC = CRC shr 1 |
| | | } |
| | | j++ |
| | | } |
| | | i++ |
| | | } |
| | | var strCRC = Integer.toHexString(CRC).toString() |
| | | if (strCRC.length < 4) { |
| | | strCRC += "0" |
| | | } |
| | | println(strCRC) |
| | | } |
| | | |
| | | @Test |
| | | fun foo15() { |
| | | var i = 0 |
| | | do { |
| | | if (i == 3) { |
| | | FileUtil.instance?.saveObdData("msg", true) |
| | | } else { |
| | | FileUtil.instance?.saveObdData("msg") |
| | | } |
| | | i++ |
| | | } while (i < 10) |
| | | } |
| | | |
| | | @Test |
| | | fun foo16() { |
| | | val d = "2023-06-13 00:01:50.0\t".trim().split(".")[0] |
| | | val t = DateUtil.instance.StringToDate(d, DateUtil.DateStyle.YYYY_MM_DD_HH_MM_SS) |
| | | println(d) |
| | | println(t) |
| | | } |
| | | |
| | | @Test |
| | | fun foo17() { |
| | | println(SatelliteDataType.Original.name) |
| | | println(SatelliteDataType.Original.value) |
| | | println(SatelliteDataType.Original.ordinal) |
| | | println(SatelliteDataType.Original.toString()) |
| | | println(SatelliteDataType.Original.visibleName) |
| | | println(SatelliteDataType.Original) |
| | | } |
| | | } |