From 29383149f7040d89ae00ad48dc48bbcf46587946 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期一, 01 九月 2025 17:32:53 +0800
Subject: [PATCH] 2025.9.1 1. 新增走航任务统计功能(待完成)

---
 src/test/kotlin/com/flightfeather/uav/Test.kt |  137 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 136 insertions(+), 1 deletions(-)

diff --git a/src/test/kotlin/com/flightfeather/uav/Test.kt b/src/test/kotlin/com/flightfeather/uav/Test.kt
index 456ec0c..11a50e1 100644
--- a/src/test/kotlin/com/flightfeather/uav/Test.kt
+++ b/src/test/kotlin/com/flightfeather/uav/Test.kt
@@ -1,12 +1,18 @@
 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
@@ -51,7 +57,8 @@
 
     @Test
     fun listCopy() {
-        val l1 = listOf(Company().apply { ciGuid = "a" }, Company().apply { ciGuid = "b" }, Company().apply { ciGuid = "c" })
+        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)
@@ -66,4 +73,132 @@
         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())
+        }
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3