| | |
| | | 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.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 |
| | |
| | | |
| | | @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) |
| | |
| | | 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) |
| | | } |
| | | } |