From 25d0f31f22f77a914a50bbc088902e00e28c4889 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期三, 15 七月 2020 11:10:42 +0800
Subject: [PATCH] 根据新的多参数传输协议,修改解析规则
---
src/main/kotlin/com/flightfeather/uav/UAVApplication.kt | 2
src/main/resources/mapper/RealTimeDataMapper.xml | 35 +++++
src/main/kotlin/com/flightfeather/uav/socket/UAVByteDataDecoder.kt | 13 -
src/main/kotlin/com/flightfeather/uav/repository/impl/AirDataRepositoryImpl.kt | 10
src/main/kotlin/com/flightfeather/uav/socket/bean/AirDataPackage.kt | 15 +
pom.xml | 4
src/main/kotlin/com/flightfeather/uav/socket/decoder/AirDataDecoder.kt | 27 +++
src/main/resources/log4j2.xml | 116 ++++++++--------
/dev/null | 22 ---
src/main/kotlin/com/flightfeather/uav/socket/decoder/impl/DataUnitDecoderImpl.kt | 60 +++++++-
src/main/kotlin/com/flightfeather/uav/repository/AirDataRepository.kt | 4
src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt | 28 ++-
src/main/kotlin/com/flightfeather/uav/socket/MessageManager.kt | 30 +---
src/main/kotlin/com/flightfeather/uav/socket/DeviceSession.kt | 8
src/main/kotlin/com/flightfeather/uav/socket/bean/AirData.kt | 5
src/main/resources/application.yml | 4
16 files changed, 231 insertions(+), 152 deletions(-)
diff --git a/pom.xml b/pom.xml
index 5ee699e..3f610f5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,11 +9,11 @@
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.flightfeather</groupId>
- <artifactId>obd</artifactId>
+ <artifactId>uav</artifactId>
<version>1.0.0</version>
<packaging>war</packaging>
<name>obd</name>
- <description>Obd data server</description>
+ <description>Uav data server</description>
<properties>
<java.version>1.8</java.version>
diff --git a/src/main/kotlin/com/flightfeather/uav/UAVApplication.kt b/src/main/kotlin/com/flightfeather/uav/UAVApplication.kt
index 46b8e1d..6e53c91 100644
--- a/src/main/kotlin/com/flightfeather/uav/UAVApplication.kt
+++ b/src/main/kotlin/com/flightfeather/uav/UAVApplication.kt
@@ -11,7 +11,7 @@
@Bean
fun runner() = ApplicationRunner{
- SocketServerClient().startServer(9000)
+ SocketServerClient().startServer(9030)
}
}
diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/service/VehicleService.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/service/VehicleService.kt
deleted file mode 100644
index 53753f5..0000000
--- a/src/main/kotlin/com/flightfeather/uav/lightshare/service/VehicleService.kt
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.flightfeather.uav.lightshare.service
-
-import com.flightfeather.uav.lightshare.bean.VehicleInfoVo
-
-/**
- * @author riku
- * Date: 2019/10/25
- * 杞﹁締鐩稿叧淇℃伅鎺ュ彛
- */
-interface VehicleService {
-
- /**
- * 鑾峰彇杞﹁締淇℃伅
- */
- fun getVehicleInfo(pageNum: Int?, pageSize: Int?): List<VehicleInfoVo>
-
-}
\ No newline at end of file
diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/VehicleServiceImpl.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/VehicleServiceImpl.kt
deleted file mode 100644
index d012ac5..0000000
--- a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/VehicleServiceImpl.kt
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.flightfeather.uav.lightshare.service.impl
-
-import com.flightfeather.uav.domain.entity.RealTimeData
-import com.flightfeather.uav.lightshare.bean.VehicleInfoVo
-import com.flightfeather.uav.lightshare.service.VehicleService
-import com.flightfeather.uav.repository.VehicleRepository
-import org.springframework.beans.BeanUtils
-import org.springframework.stereotype.Service
-
-/**
- * @author riku
- * Date: 2019/10/25
- */
-@Service
-class VehicleServiceImpl() : VehicleService {
- override fun getVehicleInfo(pageNum: Int?, pageSize: Int?): List<VehicleInfoVo> {
-
- return emptyList()
- }
-}
\ No newline at end of file
diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/web/VehicleInfoController.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/web/VehicleInfoController.kt
deleted file mode 100644
index e743d5e..0000000
--- a/src/main/kotlin/com/flightfeather/uav/lightshare/web/VehicleInfoController.kt
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.flightfeather.uav.lightshare.web
-
-import com.flightfeather.uav.lightshare.service.VehicleService
-import org.springframework.web.bind.annotation.GetMapping
-import org.springframework.web.bind.annotation.RequestMapping
-import org.springframework.web.bind.annotation.RequestParam
-import org.springframework.web.bind.annotation.RestController
-
-/**
- * @author riku
- * Date: 2019/10/25
- */
-@RestController
-@RequestMapping("uav/vehicle")
-class VehicleInfoController(val vehicleService: VehicleService) {
-
- @GetMapping("/info")
- fun getVehicleInfo(
- @RequestParam("page", required = false) pageNum: Int?,
- @RequestParam("per_page", required = false) pageSize: Int?
- ) = vehicleService.getVehicleInfo(pageNum, pageSize)
-}
\ No newline at end of file
diff --git a/src/main/kotlin/com/flightfeather/uav/repository/AirDataRepository.kt b/src/main/kotlin/com/flightfeather/uav/repository/AirDataRepository.kt
index 7e2f4af..aa21e0b 100644
--- a/src/main/kotlin/com/flightfeather/uav/repository/AirDataRepository.kt
+++ b/src/main/kotlin/com/flightfeather/uav/repository/AirDataRepository.kt
@@ -1,6 +1,6 @@
package com.flightfeather.uav.repository
-import com.flightfeather.uav.socket.bean.AirPackageData
+import com.flightfeather.uav.socket.bean.AirDataPackage
/**
* @author riku
@@ -8,5 +8,5 @@
*/
interface AirDataRepository {
- fun saveAirData(packageData: AirPackageData): Int
+ fun saveAirData(dataPackage: AirDataPackage): Int
}
\ No newline at end of file
diff --git a/src/main/kotlin/com/flightfeather/uav/repository/impl/AirDataRepositoryImpl.kt b/src/main/kotlin/com/flightfeather/uav/repository/impl/AirDataRepositoryImpl.kt
index 055349d..c507354 100644
--- a/src/main/kotlin/com/flightfeather/uav/repository/impl/AirDataRepositoryImpl.kt
+++ b/src/main/kotlin/com/flightfeather/uav/repository/impl/AirDataRepositoryImpl.kt
@@ -3,7 +3,7 @@
import com.flightfeather.uav.domain.entity.RealTimeData
import com.flightfeather.uav.domain.mapper.RealTimeDataMapper
import com.flightfeather.uav.repository.AirDataRepository
-import com.flightfeather.uav.socket.bean.AirPackageData
+import com.flightfeather.uav.socket.bean.AirDataPackage
import com.google.gson.Gson
import org.springframework.stereotype.Repository
@@ -14,16 +14,16 @@
@Repository
class AirDataRepositoryImpl(private val realTimeDataMapper: RealTimeDataMapper): AirDataRepository {
- override fun saveAirData(packageData: AirPackageData): Int {
+ override fun saveAirData(dataPackage: AirDataPackage): Int {
val data = RealTimeData().apply {
- deviceCode = packageData.deviceCode
+ deviceCode = dataPackage.deviceCode
latitude
longitude
altitude
height
- factors = Gson().toJson(packageData.dataUnit)
- dataTime = packageData.dataTime
+ factors = Gson().toJson(dataPackage.dataUnit)
+ dataTime = dataPackage.dataTime
}
realTimeDataMapper.insert(data)
diff --git a/src/main/kotlin/com/flightfeather/uav/socket/DeviceSession.kt b/src/main/kotlin/com/flightfeather/uav/socket/DeviceSession.kt
index ff079ed..d387fb3 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/DeviceSession.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/DeviceSession.kt
@@ -38,10 +38,10 @@
}
fun getAirType(deviceCode: String?): List<AirTypeData>? {
- return if (typeMap.containsKey(deviceCode)) {
- typeMap[deviceCode]
- } else {
- null
+ return when {
+ deviceCode == null -> typeMap[DEFAULT_DEVICE]
+ typeMap.containsKey(deviceCode) -> typeMap[deviceCode]
+ else -> null
}
}
}
diff --git a/src/main/kotlin/com/flightfeather/uav/socket/MessageManager.kt b/src/main/kotlin/com/flightfeather/uav/socket/MessageManager.kt
index 3301672..504b3ca 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/MessageManager.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/MessageManager.kt
@@ -6,7 +6,6 @@
import com.flightfeather.uav.socket.decoder.AirDataDecoder
import com.flightfeather.uav.socket.decoder.impl.DataPackageDecoderImpl
import com.flightfeather.uav.socket.eunm.AirCommandUnit
-import io.netty.buffer.Unpooled
import io.netty.channel.ChannelHandlerContext
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
@@ -30,7 +29,7 @@
@Autowired
lateinit var airDataRepository: AirDataRepository
- val vehicleDataDecoder = AirDataDecoder()
+ val airDataDecoder = AirDataDecoder.instance
val dataPackageDecoder = DataPackageDecoderImpl()
@PostConstruct
@@ -41,21 +40,10 @@
fun dealStringMsg(msg: String, ctx: ChannelHandlerContext?) {
//瑙e寘
- val packageData = vehicleDataDecoder.decode(msg)
+ val packageData = airDataDecoder.decode(msg)
if (bccCheck(msg)) {
- if (packageData.commandUnit == AirCommandUnit.Confirm.value) {
- val t = mutableListOf<AirTypeData>()
- packageData.dataUnit.forEach {
- if (it is AirTypeData) {
- t.add(it)
- }
- }
- DeviceSession.saveAirType(packageData.deviceCode, t)
- } else if (packageData.commandUnit == AirCommandUnit.AirData.value) {
- val types = DeviceSession.getAirType(packageData.deviceCode)
- }
//淇濆瓨
DeviceSession.saveDevice(packageData.deviceCode, ctx)
// saveToTxt(msg)
@@ -76,9 +64,9 @@
/**
* 淇濆瓨鑷虫暟鎹簱
*/
- fun saveToDataBase(packageData: AirPackageData) {
- when (packageData.commandUnit) {
- AirCommandUnit.AirData.value -> instance.airDataRepository.saveAirData(packageData)
+ fun saveToDataBase(dataPackage: AirDataPackage) {
+ when (dataPackage.commandUnit) {
+ AirCommandUnit.AirData.value -> instance.airDataRepository.saveAirData(dataPackage)
}
}
@@ -88,15 +76,13 @@
fun bccCheck(msg: String):Boolean {
val list = mutableListOf<String>().apply {
addAll(dataPackageDecoder.toStringList(msg))
- //鍘婚櫎2 浣嶈捣濮嬬
- removeAt(0)
- removeAt(0)
}
//鍙栧緱鏁版嵁鍖呬腑鐨刡cc鏍¢獙缁撴灉
- val oldBcc = list[list.size - 1].toInt(16)
+ val oldBcc = "${list[list.lastIndex - 1]}${list[list.lastIndex]}".toInt(16)
//鍘婚櫎鏍¢獙缁撴灉
- list.removeAt(list.size-1)
+ list.removeAt(list.lastIndex)
+ list.removeAt(list.lastIndex)
//璁$畻bcc鏍¢獙缁撴灉
var newBcc = 0x00
diff --git a/src/main/kotlin/com/flightfeather/uav/socket/UAVByteDataDecoder.kt b/src/main/kotlin/com/flightfeather/uav/socket/UAVByteDataDecoder.kt
index bb88cb1..937060f 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/UAVByteDataDecoder.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/UAVByteDataDecoder.kt
@@ -18,7 +18,6 @@
private const val BCC_BYTES = 2//鏍¢獙鐮侀暱搴�
const val BASE_LENGTH = HEAD_BYTES + LENGTH_BYTES + BCC_BYTES
const val HEAD1 = 0x01.toByte()
- const val HEAD2 = 0x05.toByte()
}
override fun decode(p0: ChannelHandlerContext?, p1: ByteBuf?, p2: MutableList<Any>?) {
@@ -44,7 +43,7 @@
// 璇诲埌浜嗗崗璁殑寮�濮嬫爣蹇楋紝缁撴潫while寰幆
val b = ByteArray(2)
it.readBytes(b)
- if (b[0] == HEAD1 && b[1] == HEAD2) {
+ if (b[0] == HEAD1) {
dataList.add(b[0])
dataList.add(b[1])
break
@@ -61,11 +60,11 @@
}
}
- ByteArray(1).apply {
- it.readBytes(this)
- }.forEach {b ->
- dataList.add(b)
- }
+// ByteArray(1).apply {
+// it.readBytes(this)
+// }.forEach {b ->
+// dataList.add(b)
+// }
//鏁版嵁鍗曞厓鐨勯暱搴�
val length = getDataUnitLength(it, dataList)
diff --git a/src/main/kotlin/com/flightfeather/uav/socket/bean/AirData.kt b/src/main/kotlin/com/flightfeather/uav/socket/bean/AirData.kt
index 879adc9..c51473c 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/bean/AirData.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/bean/AirData.kt
@@ -1,7 +1,5 @@
package com.flightfeather.uav.socket.bean
-import java.util.*
-
/**
* @author riku
* Date: 2020/6/10
@@ -10,5 +8,8 @@
var factorId: String? = null
var factorName: String? = null
var sensorId: String? = null
+ //鐩戞祴鍥犲瓙瀹為檯鍊�
var factorData: Double? = null
+ //鐩戞祴鍥犲瓙鐗╃悊閲忥紙鐢靛帇锛�
+ var physicalQuantity: Double? = null
}
\ No newline at end of file
diff --git a/src/main/kotlin/com/flightfeather/uav/socket/bean/AirPackageData.kt b/src/main/kotlin/com/flightfeather/uav/socket/bean/AirDataPackage.kt
similarity index 68%
rename from src/main/kotlin/com/flightfeather/uav/socket/bean/AirPackageData.kt
rename to src/main/kotlin/com/flightfeather/uav/socket/bean/AirDataPackage.kt
index a5e3ffa..bd9b6ca 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/bean/AirPackageData.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/bean/AirDataPackage.kt
@@ -11,7 +11,7 @@
* 璧峰瀛楄妭 瀹氫箟 鏁版嵁绫诲瀷 鎻忚堪鍙婅姹�
*
*/
-data class AirPackageData constructor(
+data class AirDataPackage constructor(
//璧峰绗�
var head: String? = null,
//鍛戒护鍗曞厓
@@ -28,4 +28,15 @@
var dataUnit: List<DataUnit>,
//鏍¢獙鐮�
var checkCode: Int? = null
-)
\ No newline at end of file
+){
+ companion object {
+ //鏁版嵁涓殑淇濈暀瀛楄妭鏁�
+ const val RESERVED_DATA_COUNT = 12
+
+ //涓�涓繚鐣欑洃娴嬪洜瀛愮殑灞炴�ф墍鍗犲瓧鑺傛暟
+ const val FACTOR_BIT_LENGTH_2 = 3
+
+ //涓�涓姩鎬佺洃娴嬪洜瀛愮殑灞炴�ф墍鍗犲瓧鑺傛暟
+ const val FACTOR_BIT_LENGTH_1 = 6
+ }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/com/flightfeather/uav/socket/decoder/AirDataDecoder.kt b/src/main/kotlin/com/flightfeather/uav/socket/decoder/AirDataDecoder.kt
index f06f127..eee55d6 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/decoder/AirDataDecoder.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/decoder/AirDataDecoder.kt
@@ -1,6 +1,6 @@
package com.flightfeather.uav.socket.decoder
-import com.flightfeather.uav.socket.bean.AirPackageData
+import com.flightfeather.uav.socket.bean.AirDataPackage
import com.flightfeather.uav.socket.decoder.impl.DataPackageDecoderImpl
/**
@@ -8,14 +8,33 @@
* @author riku
* Date: 2019/9/12
*/
-class AirDataDecoder {
+class AirDataDecoder private constructor(){
+
+ companion object{
+
+ @Volatile
+ private var decoder: AirDataDecoder? = null
+
+ @JvmStatic
+ val instance: AirDataDecoder
+ get() {
+ if (decoder == null) {
+ synchronized(AirDataDecoder::class) {
+ if (decoder == null) {
+ decoder = AirDataDecoder()
+ }
+ }
+ }
+ return this.decoder!!
+ }
+ }
private val dataPackageDecoder: DataPackageDecoder = DataPackageDecoderImpl()
- fun decode(msg: String): AirPackageData {
+ fun decode(msg: String): AirDataPackage {
val list = dataPackageDecoder.toStringList(msg)
dataPackageDecoder.run {
- return AirPackageData(
+ return AirDataPackage(
getHead(list),
getCommandUnit(list),
getDeviceCode(list),
diff --git a/src/main/kotlin/com/flightfeather/uav/socket/decoder/impl/DataUnitDecoderImpl.kt b/src/main/kotlin/com/flightfeather/uav/socket/decoder/impl/DataUnitDecoderImpl.kt
index 4f70a2a..dac72d9 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/decoder/impl/DataUnitDecoderImpl.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/decoder/impl/DataUnitDecoderImpl.kt
@@ -1,6 +1,7 @@
package com.flightfeather.uav.socket.decoder.impl
import com.flightfeather.uav.socket.bean.AirData
+import com.flightfeather.uav.socket.bean.AirDataPackage
import com.flightfeather.uav.socket.bean.AirTypeData
import com.flightfeather.uav.socket.decoder.DataUnitDecoder
import com.flightfeather.uav.socket.eunm.FactorType
@@ -14,6 +15,7 @@
private val logger = LoggerFactory.getLogger(javaClass.name)
+ private val types = mutableListOf<AirTypeData>()
override fun getAirConfirmData(b: List<String>): List<AirTypeData> {
val resultList = mutableListOf<AirTypeData>()
@@ -22,23 +24,61 @@
resultList.add(AirTypeData(f))
}
}
+ types.clear()
+ types.addAll(resultList)
+
return resultList
}
override fun getAirData(b: List<String>): List<AirData> {
val resultList = mutableListOf<AirData>()
+
var i = 0
- while (i < b.size - 3) {
- val a = "${b[i]}${b[i + 1]}".toInt(16)
- var b1 = b[i + 2].toInt(16).toDouble()
- while (b1 >= 1) {
- b1 /= 10
+ types.forEach {
+ if (i > b.size - it.factorType.byteLength) {
+ return@forEach
}
- val data = a + b1
- resultList.add(AirData().apply {
- factorData = data
- })
- i += 3
+ when (it.factorType.byteLength) {
+ AirDataPackage.FACTOR_BIT_LENGTH_2 -> {
+ val a1 = "${b[i]}${b[i + 1]}".toInt(16)
+ var b1 = b[i + 2].toInt(16).toDouble()
+ while (b1 >= 1) {
+ b1 /= 10
+ }
+ val data1 = a1 + b1
+
+ resultList.add(AirData().apply {
+ factorId = it.factorType.value?.toString()
+ factorName = it.factorType.des
+ factorData = data1
+ })
+ }
+ AirDataPackage.FACTOR_BIT_LENGTH_1 -> {
+ //鏁版嵁瀹為檯鍊硷紙3浣嶅瓧鑺傝〃绀猴級
+ val a1 = "${b[i]}${b[i + 1]}".toInt(16)
+ var b1 = b[i + 2].toInt(16).toDouble()
+ while (b1 >= 1) {
+ b1 /= 10
+ }
+ val data1 = a1 + b1
+
+ //鏁版嵁鐗╃悊閲忥紙3浣嶅瓧鑺傝〃绀猴級
+ val a2 = "${b[i]}${b[i + 1]}".toInt(16)
+ var b2 = b[i + 2].toInt(16).toDouble()
+ while (b2 >= 1) {
+ b2 /= 10
+ }
+ val data2 = a2 + b2
+
+ resultList.add(AirData().apply {
+ factorId = it.factorType.value?.toString()
+ factorName = it.factorType.des
+ factorData = data1
+ physicalQuantity = data2
+ })
+ }
+ }
+ i += it.factorType.byteLength
}
return resultList
diff --git a/src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt b/src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt
index e14c100..da16a68 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt
@@ -4,16 +4,20 @@
* @author riku
* Date: 2020/6/10
*/
-enum class FactorType(val value: Int, val des: String){
- NO2(1, "NO2"),
- CO(2,"CO"),
- H2S(3,"H2S"),
- SO2(4,"SO2"),
- O3(5,"O3"),
- PM25(6,"PM25"),
- PM10(7, "PM10"),
- TEMPERATURE(8,"TEMPERATURE"),
- HUMIDITY(9, "HUMIDITY");
+enum class FactorType(val value: Int, val des: String, val byteLength: Int){
+ NO2(1, "NO2", 6),
+ CO(2,"CO", 6),
+ H2S(3,"H2S",6),
+ SO2(4,"SO2",6),
+ O3(5,"O3",6),
+ PM25(6,"PM25",3),
+ PM10(7, "PM10",3),
+ TEMPERATURE(8,"TEMPERATURE",3),
+ HUMIDITY(9, "HUMIDITY",3),
+ VOC(10, "VOC",3),
+ NOI(11, "NOI",3),//璐熸哀绂诲瓙
+ LNG(12,"LNG",3),//缁忓害
+ LAT(13,"LAT",3);//绾害
companion object {
@@ -27,6 +31,10 @@
PM10.value -> PM10
TEMPERATURE.value -> TEMPERATURE
HUMIDITY.value -> HUMIDITY
+ VOC.value -> VOC
+ NOI.value -> NOI
+ LNG.value -> LNG
+ LAT.value -> LAT
else -> null
}
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 2cbc2a0..b44db72 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -8,6 +8,8 @@
url: jdbc:mysql://114.215.109.124:3306/dronemonitor?serverTimezone=Asia/Shanghai&prepStmtCacheSize=517&cachePrepStmts=true&autoReconnect=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
username: root
password: 123456
+ jmx:
+ enabled: false
@@ -28,4 +30,4 @@
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
- params: count=countSql
\ No newline at end of file
+ params: count=countSql
diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml
index bf71a78..a77f22e 100644
--- a/src/main/resources/log4j2.xml
+++ b/src/main/resources/log4j2.xml
@@ -1,67 +1,67 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 6涓紭鍏堢骇浠庨珮鍒颁綆渚濇涓猴細OFF銆丗ATAL銆丒RROR銆乄ARN銆両NFO銆丏EBUG銆乀RACE銆� ALL銆�
- 濡傛灉璁剧疆浼樺厛绾т负WARN锛岄偅涔圤FF銆丗ATAL銆丒RROR銆乄ARN 4涓骇鍒殑log鑳芥甯歌緭鍑�
- 璁剧疆涓篛FF 琛ㄧず涓嶈褰昹og4j2鏈韩鐨勬棩蹇楋紝
- -->
+<!--<?xml version="1.0" encoding="UTF-8"?>-->
+<!--<!–-->
+ <!--6涓紭鍏堢骇浠庨珮鍒颁綆渚濇涓猴細OFF銆丗ATAL銆丒RROR銆乄ARN銆両NFO銆丏EBUG銆乀RACE銆� ALL銆�-->
+ <!--濡傛灉璁剧疆浼樺厛绾т负WARN锛岄偅涔圤FF銆丗ATAL銆丒RROR銆乄ARN 4涓骇鍒殑log鑳芥甯歌緭鍑�-->
+ <!--璁剧疆涓篛FF 琛ㄧず涓嶈褰昹og4j2鏈韩鐨勬棩蹇楋紝-->
+ <!--–>-->
-<!-- status锛氱敤鏉ユ寚瀹歭og4j鏈韩鐨勬墦鍗版棩蹇楃骇鍒�,monitorInterval:鎸囧畾log4j鑷姩閲嶆柊閰嶇疆鐨勭洃娴嬮棿闅旀椂闂� -->
-<configuration status="INFO" monitorInterval="30">
- <!-- 鑷繁璁剧疆灞炴�э紝鍚庨潰閫氳繃${}鏉ヨ闂� -->
- <properties>
- <property name="LOG_HOME">../obdLogs</property>
- </properties>
+<!--<!– status锛氱敤鏉ユ寚瀹歭og4j鏈韩鐨勬墦鍗版棩蹇楃骇鍒�,monitorInterval:鎸囧畾log4j鑷姩閲嶆柊閰嶇疆鐨勭洃娴嬮棿闅旀椂闂� –>-->
+<!--<configuration status="INFO" monitorInterval="30">-->
+ <!--<!– 鑷繁璁剧疆灞炴�э紝鍚庨潰閫氳繃${}鏉ヨ闂� –>-->
+ <!--<properties>-->
+ <!--<property name="LOG_HOME">../obdLogs</property>-->
+ <!--</properties>-->
- <appenders>
- <!--Appender 1. 杈撳嚭鍒癈onsole鎺у埗鍙帮紝鎸囧畾杈撳嚭鏍煎紡鍜岃繃婊ゅ櫒绛夌骇涓篒NFO -->
- <Console name="Console" target="SYSTEM_OUT">
- <!--ThresholdFilter鎸囧畾鏃ュ織娑堟伅鐨勮緭鍑烘渶浣庡眰娆�-->
- <ThresholdFilter level="ALL" onMatch="ACCEPT" onMismatch="DENY"/>
- <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
- </Console>
+ <!--<appenders>-->
+ <!--<!–Appender 1. 杈撳嚭鍒癈onsole鎺у埗鍙帮紝鎸囧畾杈撳嚭鏍煎紡鍜岃繃婊ゅ櫒绛夌骇涓篒NFO –>-->
+ <!--<Console name="Console" target="SYSTEM_OUT">-->
+ <!--<!–ThresholdFilter鎸囧畾鏃ュ織娑堟伅鐨勮緭鍑烘渶浣庡眰娆�–>-->
+ <!--<ThresholdFilter level="ALL" onMatch="ACCEPT" onMismatch="DENY"/>-->
+ <!--<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>-->
+ <!--</Console>-->
- <!--Appender 2. 杈撳嚭鍒版粴鍔ㄤ繚瀛樼殑鏂囦欢, 瑙﹀彂淇濆瓨鏃ュ織鏂囦欢鐨勬潯浠舵槸鏃ュ織鏂囦欢澶т簬3KB锛屽彧淇濆瓨鏈�鏂扮殑10涓棩蹇�-->
- <File name="allLog" fileName="${LOG_HOME}/all.log">
- <ThresholdFilter level="ALL" onMatch="ACCEPT" onMismatch="DENY"/>
- <PatternLayout charset="UTF-8" pattern="%d{yyyy.MM.dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>
- </File>
+ <!--<!–Appender 2. 杈撳嚭鍒版粴鍔ㄤ繚瀛樼殑鏂囦欢, 瑙﹀彂淇濆瓨鏃ュ織鏂囦欢鐨勬潯浠舵槸鏃ュ織鏂囦欢澶т簬3KB锛屽彧淇濆瓨鏈�鏂扮殑10涓棩蹇�–>-->
+ <!--<File name="allLog" fileName="${LOG_HOME}/all.log">-->
+ <!--<ThresholdFilter level="ALL" onMatch="ACCEPT" onMismatch="DENY"/>-->
+ <!--<PatternLayout charset="UTF-8" pattern="%d{yyyy.MM.dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>-->
+ <!--</File>-->
- <!--Appender 3. 杈撳嚭鍒版粴鍔ㄤ繚瀛樼殑鏂囦欢, 瑙﹀彂淇濆瓨鏃ュ織鏂囦欢鐨勬潯浠舵槸鏃ュ織鏂囦欢澶т簬3KB锛屽彧淇濆瓨鏈�鏂扮殑10涓棩蹇�-->
- <RollingFile name="debugLog" fileName="${LOG_HOME}/debug.log" filePattern="${LOG_HOME}/debug-%i.log">
- <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
- <PatternLayout charset="UTF-8" pattern="[%-5level][%d{yyyy-MM-dd HH:mm:ss}][%F:%L] - %m%n"/>
- <SizeBasedTriggeringPolicy size="3KB"/>
- <!-- DefaultRolloverStrategy 涓殑鍙傛暟max锛屽彲浠ラ檺鍒� SizeBasedTriggeringPolicy涓璼ize瓒呭嚭鍚庯紝鍙繚鐣檓ax涓瓨妗�-->
- <DefaultRolloverStrategy max="10"/>
- </RollingFile>
+ <!--<!–Appender 3. 杈撳嚭鍒版粴鍔ㄤ繚瀛樼殑鏂囦欢, 瑙﹀彂淇濆瓨鏃ュ織鏂囦欢鐨勬潯浠舵槸鏃ュ織鏂囦欢澶т簬3KB锛屽彧淇濆瓨鏈�鏂扮殑10涓棩蹇�–>-->
+ <!--<RollingFile name="debugLog" fileName="${LOG_HOME}/debug.log" filePattern="${LOG_HOME}/debug-%i.log">-->
+ <!--<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>-->
+ <!--<PatternLayout charset="UTF-8" pattern="[%-5level][%d{yyyy-MM-dd HH:mm:ss}][%F:%L] - %m%n"/>-->
+ <!--<SizeBasedTriggeringPolicy size="3KB"/>-->
+ <!--<!– DefaultRolloverStrategy 涓殑鍙傛暟max锛屽彲浠ラ檺鍒� SizeBasedTriggeringPolicy涓璼ize瓒呭嚭鍚庯紝鍙繚鐣檓ax涓瓨妗�–>-->
+ <!--<DefaultRolloverStrategy max="10"/>-->
+ <!--</RollingFile>-->
- <!--Appender 4. 杈撳嚭鍒版粴鍔ㄤ繚瀛樼殑鏂囦欢, 瑙﹀彂淇濆瓨鏃ュ織鏂囦欢鐨勬潯浠舵槸姣忓垎閽熺涓�娆$殑鏃ュ織浜嬩欢銆侲RROR鏃ュ織鏄寜鍒嗛挓浜х敓鏃ュ織 -->
- <RollingFile name="errorLog" fileName="${LOG_HOME}/error.log" filePattern="${LOG_HOME}/error-%d{yyyy-MM-dd_HH-mm}.log">
- <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
- <PatternLayout charset="UTF-8" pattern="[%-5level][%d{yyyy-MM-dd HH:mm:ss}][%C:%F:%L] - %m%n"/>
- <TimeBasedTriggeringPolicy/>
- </RollingFile>
+ <!--<!–Appender 4. 杈撳嚭鍒版粴鍔ㄤ繚瀛樼殑鏂囦欢, 瑙﹀彂淇濆瓨鏃ュ織鏂囦欢鐨勬潯浠舵槸姣忓垎閽熺涓�娆$殑鏃ュ織浜嬩欢銆侲RROR鏃ュ織鏄寜鍒嗛挓浜х敓鏃ュ織 –>-->
+ <!--<RollingFile name="errorLog" fileName="${LOG_HOME}/error.log" filePattern="${LOG_HOME}/error-%d{yyyy-MM-dd_HH-mm}.log">-->
+ <!--<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>-->
+ <!--<PatternLayout charset="UTF-8" pattern="[%-5level][%d{yyyy-MM-dd HH:mm:ss}][%C:%F:%L] - %m%n"/>-->
+ <!--<TimeBasedTriggeringPolicy/>-->
+ <!--</RollingFile>-->
- <RollingFile name="RollingFile" fileName="${LOG_HOME}/rar.log" filePattern="${LOG_HOME}/$${date:yyyy-MM}/${FILE_NAME}-%d{MM-dd-yyyy}-%i.log.gz">
- <PatternLayout charset="UTF-8" pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>
- <!--鏃ュ織鏂囦欢鏈�澶у�� 绗簩澶╁帇缂�-->
- <Policies>
- <TimeBasedTriggeringPolicy/>
- <SizeBasedTriggeringPolicy size="10 MB"/>
- </Policies>
- </RollingFile>
+ <!--<RollingFile name="RollingFile" fileName="${LOG_HOME}/rar.log" filePattern="${LOG_HOME}/$${date:yyyy-MM}/${FILE_NAME}-%d{MM-dd-yyyy}-%i.log.gz">-->
+ <!--<PatternLayout charset="UTF-8" pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>-->
+ <!--<!–鏃ュ織鏂囦欢鏈�澶у�� 绗簩澶╁帇缂�–>-->
+ <!--<Policies>-->
+ <!--<TimeBasedTriggeringPolicy/>-->
+ <!--<SizeBasedTriggeringPolicy size="10 MB"/>-->
+ <!--</Policies>-->
+ <!--</RollingFile>-->
- </appenders>
- <!--root 榛樿鍔犺浇-->
- <loggers>
- <root level="INFO">
- <appender-ref ref="Console"/>
- <!--<appender-ref ref="allLog"/>-->
- <appender-ref ref="debugLog"/>
- <appender-ref ref="errorLog"/>
- <appender-ref ref="RollingFile"/>
- </root>
- </loggers>
-</configuration>
\ No newline at end of file
+ <!--</appenders>-->
+ <!--<!–root 榛樿鍔犺浇–>-->
+ <!--<loggers>-->
+ <!--<root level="INFO">-->
+ <!--<appender-ref ref="Console"/>-->
+ <!--<!–<appender-ref ref="allLog"/>–>-->
+ <!--<appender-ref ref="debugLog"/>-->
+ <!--<appender-ref ref="errorLog"/>-->
+ <!--<appender-ref ref="RollingFile"/>-->
+ <!--</root>-->
+ <!--</loggers>-->
+<!--</configuration>-->
\ No newline at end of file
diff --git a/src/main/resources/mapper/RealTimeDataMapper.xml b/src/main/resources/mapper/RealTimeDataMapper.xml
new file mode 100644
index 0000000..bae1133
--- /dev/null
+++ b/src/main/resources/mapper/RealTimeDataMapper.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.flightfeather.uav.domain.mapper.RealTimeDataMapper">
+ <resultMap id="BaseResultMap" type="com.flightfeather.uav.domain.entity.RealTimeData">
+ <!--
+ WARNING - @mbg.generated
+ -->
+ <id column="id" jdbcType="INTEGER" property="id" />
+ <result column="device_code" jdbcType="VARCHAR" property="deviceCode" />
+ <result column="latitude" jdbcType="DECIMAL" property="latitude" />
+ <result column="longitude" jdbcType="DECIMAL" property="longitude" />
+ <result column="altitude" jdbcType="REAL" property="altitude" />
+ <result column="height" jdbcType="REAL" property="height" />
+ <result column="data_time" jdbcType="TIMESTAMP" property="dataTime" />
+ <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+ </resultMap>
+ <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.flightfeather.uav.domain.entity.RealTimeData">
+ <!--
+ WARNING - @mbg.generated
+ -->
+ <result column="factors" jdbcType="LONGVARCHAR" property="factors" />
+ </resultMap>
+ <sql id="Base_Column_List">
+ <!--
+ WARNING - @mbg.generated
+ -->
+ id, device_code, latitude, longitude, altitude, height, data_time, create_time
+ </sql>
+ <sql id="Blob_Column_List">
+ <!--
+ WARNING - @mbg.generated
+ -->
+ factors
+ </sql>
+</mapper>
\ No newline at end of file
--
Gitblit v1.9.3