|  |  |  | @ -54,7 +54,7 @@ object ParseHelper { | 
		
	
		
			
				|  |  |  |  |                     1, 4, 5, 6, 8, 9, 11, 12 -> { | 
		
	
		
			
				|  |  |  |  |                         updateGasTypeDb(gasType, gasIndex, GasPortStatus.OK) | 
		
	
		
			
				|  |  |  |  |                         setFlag(gasIndex, gasType) | 
		
	
		
			
				|  |  |  |  |                         parseGasData(gasType, it) | 
		
	
		
			
				|  |  |  |  |                         parseGasData(gasType, it, status) | 
		
	
		
			
				|  |  |  |  |                     } | 
		
	
		
			
				|  |  |  |  |                     // 故障 | 
		
	
		
			
				|  |  |  |  |                     2, 3, 7 -> { | 
		
	
	
		
			
				
					|  |  |  | @ -73,7 +73,7 @@ object ParseHelper { | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     private fun parseGasData(type: GasTypeEnum, it: ByteArray) { | 
		
	
		
			
				|  |  |  |  |     private fun parseGasData(type: GasTypeEnum, it: ByteArray, status: Int) { | 
		
	
		
			
				|  |  |  |  |         val unitHex: String = HexUtils.byteArrToHex(it, 3, 3 + 2) | 
		
	
		
			
				|  |  |  |  |         val unitToLong: Long = HexUtils.hexToLong(unitHex) | 
		
	
		
			
				|  |  |  |  |         // 10000000000000 | 
		
	
	
		
			
				
					|  |  |  | @ -106,8 +106,10 @@ object ParseHelper { | 
		
	
		
			
				|  |  |  |  |         // 量程 | 
		
	
		
			
				|  |  |  |  |         val rangHex: String = HexUtils.byteArrToHex(it, 11, 11 + 2) | 
		
	
		
			
				|  |  |  |  |         val rangHexLong: Long = HexUtils.hexToLong(rangHex) | 
		
	
		
			
				|  |  |  |  |         // 是否超量程 | 
		
	
		
			
				|  |  |  |  |         val overRange = value > rangHexLong || status == 8 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         LogUtils.w("receive msg 单位转换前 $type, 浓度 = $value $unit") | 
		
	
		
			
				|  |  |  |  |         LogUtils.w("receive msg 单位转换前 $type, 浓度 = $value $unit, 最大量程 = $rangHexLong") | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         //根据单位进行数值转换 | 
		
	
		
			
				|  |  |  |  |         val localGasUnit = getLocalGasUnit(type.desc) | 
		
	
	
		
			
				
					|  |  |  | @ -117,7 +119,7 @@ object ParseHelper { | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         // 插入 | 
		
	
		
			
				|  |  |  |  |         insertGasData(type, value, localGasUnit) | 
		
	
		
			
				|  |  |  |  |         insertGasData(type, value, localGasUnit, overRange) | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     private fun setOverlayData() { | 
		
	
	
		
			
				
					|  |  |  | @ -153,7 +155,7 @@ object ParseHelper { | 
		
	
		
			
				|  |  |  |  |     /** | 
		
	
		
			
				|  |  |  |  |      * 插入气体数据 | 
		
	
		
			
				|  |  |  |  |      */ | 
		
	
		
			
				|  |  |  |  |     private fun insertGasData(typeEnum: GasTypeEnum, value: Float, unit: String) { | 
		
	
		
			
				|  |  |  |  |     private fun insertGasData(typeEnum: GasTypeEnum, value: Float, unit: String, overRange: Boolean) { | 
		
	
		
			
				|  |  |  |  |         GlobalScope.launch(Dispatchers.IO) { | 
		
	
		
			
				|  |  |  |  |             // 阈值范围 | 
		
	
		
			
				|  |  |  |  |             val min = getGasLowThreshold(typeEnum.desc, unit) | 
		
	
	
		
			
				
					|  |  |  | @ -169,7 +171,7 @@ object ParseHelper { | 
		
	
		
			
				|  |  |  |  |             val gasDao = DBUtils.gasDao() | 
		
	
		
			
				|  |  |  |  |             gasDao.insert(gas) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |             dealWarning(typeEnum, value, min, max, unit) | 
		
	
		
			
				|  |  |  |  |             dealWarning(typeEnum, value, min, max, unit, overRange) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |             // 设置水印数据 | 
		
	
		
			
				|  |  |  |  |             setOverlayData() | 
		
	
	
		
			
				
					|  |  |  | @ -184,7 +186,8 @@ object ParseHelper { | 
		
	
		
			
				|  |  |  |  |         value: Float, | 
		
	
		
			
				|  |  |  |  |         min: Float, | 
		
	
		
			
				|  |  |  |  |         max: Float, | 
		
	
		
			
				|  |  |  |  |         unit: String | 
		
	
		
			
				|  |  |  |  |         unit: String, | 
		
	
		
			
				|  |  |  |  |         overRange: Boolean | 
		
	
		
			
				|  |  |  |  |     ) { | 
		
	
		
			
				|  |  |  |  |         // 告警处理 | 
		
	
		
			
				|  |  |  |  |         val warningDao = DBUtils.warningDao() | 
		
	
	
		
			
				
					|  |  |  | @ -200,11 +203,13 @@ object ParseHelper { | 
		
	
		
			
				|  |  |  |  |                             unit, | 
		
	
		
			
				|  |  |  |  |                             System.currentTimeMillis(), | 
		
	
		
			
				|  |  |  |  |                             min, | 
		
	
		
			
				|  |  |  |  |                             max | 
		
	
		
			
				|  |  |  |  |                             max, | 
		
	
		
			
				|  |  |  |  |                             overRange | 
		
	
		
			
				|  |  |  |  |                         ) | 
		
	
		
			
				|  |  |  |  |                     ) | 
		
	
		
			
				|  |  |  |  |                 } else { | 
		
	
		
			
				|  |  |  |  |                     warning.gasValue = value | 
		
	
		
			
				|  |  |  |  |                     warning.overRange = overRange | 
		
	
		
			
				|  |  |  |  |                     warningDao.update(warning) | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  |             } else { | 
		
	
	
		
			
				
					|  |  |  | @ -223,11 +228,13 @@ object ParseHelper { | 
		
	
		
			
				|  |  |  |  |                             unit, | 
		
	
		
			
				|  |  |  |  |                             System.currentTimeMillis(), | 
		
	
		
			
				|  |  |  |  |                             min, | 
		
	
		
			
				|  |  |  |  |                             max | 
		
	
		
			
				|  |  |  |  |                             max, | 
		
	
		
			
				|  |  |  |  |                             overRange | 
		
	
		
			
				|  |  |  |  |                         ) | 
		
	
		
			
				|  |  |  |  |                     ) | 
		
	
		
			
				|  |  |  |  |                 } else { | 
		
	
		
			
				|  |  |  |  |                     warning.gasValue = value | 
		
	
		
			
				|  |  |  |  |                     warning.overRange = overRange | 
		
	
		
			
				|  |  |  |  |                     warningDao.update(warning) | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  |             } else { | 
		
	
	
		
			
				
					|  |  |  | 
 |