riku
2019-09-17 2bf337ab074f1c047c4f4e4df29ed994d3decaf1
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
package com.flightfeather.obd
 
import org.junit.Test
import java.nio.charset.Charset
import java.text.SimpleDateFormat
import java.util.*
 
/**
 * @author riku
 * Date: 2019/9/12
 */
class Test {
 
    @Test
    fun foo1() {
        val b = ByteArray(20) {8}
        println(b[18])
    }
 
    @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))
    }
}