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