From c56e1e74426238939f229f0005828d05089715ff Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期四, 03 七月 2025 17:30:58 +0800 Subject: [PATCH] 2025.7.3 1. 新增动态污染溯源新的判定逻辑 --- src/test/kotlin/com/flightfeather/uav/Test.kt | 275 +++++++++++++++++++++++++++++------------------------- 1 files changed, 148 insertions(+), 127 deletions(-) diff --git a/src/test/kotlin/com/flightfeather/uav/Test.kt b/src/test/kotlin/com/flightfeather/uav/Test.kt index d359695..4941af9 100644 --- a/src/test/kotlin/com/flightfeather/uav/Test.kt +++ b/src/test/kotlin/com/flightfeather/uav/Test.kt @@ -1,6 +1,21 @@ 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.common.utils.TimeUtil +import com.flightfeather.uav.domain.entity.BaseRealTimeData +import com.flightfeather.uav.domain.entity.Company +import com.flightfeather.uav.domain.entity.GridDataDetail +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 org.springframework.beans.BeanUtils +import java.io.File +import java.io.FileOutputStream +import java.io.OutputStreamWriter import java.text.SimpleDateFormat import java.util.* @@ -12,139 +27,145 @@ @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() { + val avgData = BaseRealTimeData().apply { + no2 = 50f + co = 50f + h2s = 50f + so2 = 50f + o3 = 50f + pm25 = 50f + pm10 = 50f + temperature = 50f + humidity = 50f + voc = 50f + noi = 50f + no = 50f + windSpeed = 2f + windDirection = 240f + } + val dataDetail = GridDataDetail() + BeanUtils.copyProperties(avgData, dataDetail) + + println(dataDetail) + } + + @Test + fun getDayTimeTag() { + val period = TimeUtil.getDayTimeTag( + Date(2024, 10, 10, 10, 25, 0), + Date(2024, 10, 10, 14, 40, 0) + ) + + println("${period?.first};${period?.second};${period?.third}") + } + + @Test + fun foo18() { + println(-4.382398 in 4.0..Double.MAX_VALUE) } } \ No newline at end of file -- Gitblit v1.9.3