feiyu02
2025-01-08 cf4a07510de9b954c3f7393d54206eece7d6ad4a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
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.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.math.BigDecimal
import java.text.SimpleDateFormat
import java.util.*
 
/**
 * @author riku
 * Date: 2019/9/12
 */
class Test {
 
    @Test
    fun foo1() {
        val s = SimpleDateFormat.getDateTimeInstance().format(Date())
        println(s)
    }
 
    @Test
    fun foo2() {
        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)
            }
        }
        val str = Gson().toJson(list)
        out.append(str)
        out.flush()
        out.close()
    }
 
    @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 a = listOf(1, 2, 3)
    }
}