From 53857f42f777e2b9753b8f00cce1a60ce3dcb8fd Mon Sep 17 00:00:00 2001
From: Riku <risaku@163.com>
Date: 星期三, 15 十月 2025 22:42:29 +0800
Subject: [PATCH] 2025.10.15 修改高德地图地理逆编码结果,让地理位置信息更加详细
---
src/test/kotlin/com/flightfeather/uav/Test.kt | 312 ++++++++++++++++++++++++++++++---------------------
1 files changed, 185 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..63b2781 100644
--- a/src/test/kotlin/com/flightfeather/uav/Test.kt
+++ b/src/test/kotlin/com/flightfeather/uav/Test.kt
@@ -1,6 +1,19 @@
package com.flightfeather.uav
+import com.flightfeather.uav.common.net.AMapService
+import com.flightfeather.uav.common.utils.*
+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 +25,184 @@
@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)
+ }
+
+ @Test
+ fun foo19() {
+ val timer = Timer(true)
+// var running = true
+ val task = object : TimerTask() {
+ override fun run() {
+ println("task run")
+ println(Date())
+// running = false
+ }
+ }
+ println(Date())
+ timer.schedule(task, 5000)
+ task.cancel()
+ timer.purge()
+
+ val task2 = object : TimerTask() {
+ override fun run() {
+ println("task2 run")
+ println(Date())
+// running = false
+ }
+ }
+ timer.schedule(task2, 4000)
+// while (running) {
+//
+// }
+ val sc = Scanner(System.`in`)
+ while (sc.hasNext()) {
+ println(sc.nextLine())
+ }
+ }
+
+ @Test
+ fun reGeo() {
+ val a = AMapService.reGeo(MapUtil.wgs84ToGcj02(121.45017 to 31.274426))
+ println(a)
}
}
\ No newline at end of file
--
Gitblit v1.9.3