|  |  | @ -1,19 +1,14 @@ | 
			
		
	
		
		
			
				
					
					|  |  |  | package com.yinuo.safetywatcher.watcher.port |  |  |  | package com.yinuo.safetywatcher.watcher.port | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.C02 |  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.C02 | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.CH4 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.CH4_LEL2PPMFACTOR |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.CL2 |  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.CL2 | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.CO |  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.CO | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.H2 |  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.H2 | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.H2S |  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.H2S | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.H2_LEL2PPMFACTOR |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.HF |  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.HF | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_C02 |  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_C02 | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_CH4 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_CL2 |  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_CL2 | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_CO |  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_CO | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_H2 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_H2S |  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_H2S | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_HF |  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_HF | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_NH3 |  |  |  | import com.yinuo.safetywatcher.watcher.port.cmd.MOLECULAR_NH3 | 
			
		
	
	
		
		
			
				
					|  |  | @ -45,7 +40,7 @@ const val H2S_MAX_PPM = 15f | 
			
		
	
		
		
			
				
					
					|  |  |  | const val H2_MIN_LEL = 25f |  |  |  | const val H2_MIN_LEL = 25f | 
			
		
	
		
		
			
				
					
					|  |  |  | const val H2_MAX_LEL = 50f |  |  |  | const val H2_MAX_LEL = 50f | 
			
		
	
		
		
			
				
					
					|  |  |  | const val NH3_MIN_PPM = 25f |  |  |  | const val NH3_MIN_PPM = 25f | 
			
		
	
		
		
			
				
					
					|  |  |  | const val NH3_MAX_PPM  = 50f |  |  |  | const val NH3_MAX_PPM = 50f | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | const val S02_MIN_PPM = 2f |  |  |  | const val S02_MIN_PPM = 2f | 
			
		
	
		
		
			
				
					
					|  |  |  | const val S02_MAX_PPM = 5f |  |  |  | const val S02_MAX_PPM = 5f | 
			
		
	
		
		
			
				
					
					|  |  |  | const val CL2_MIN_PPM = 0.5f |  |  |  | const val CL2_MIN_PPM = 0.5f | 
			
		
	
	
		
		
			
				
					|  |  | @ -58,6 +53,7 @@ const val HF_MIN_PPM = 2f | 
			
		
	
		
		
			
				
					
					|  |  |  | const val HF_MAX_PPM = 6f |  |  |  | const val HF_MAX_PPM = 6f | 
			
		
	
		
		
			
				
					
					|  |  |  | const val C02_MIN_PPM = 5000f |  |  |  | const val C02_MIN_PPM = 5000f | 
			
		
	
		
		
			
				
					
					|  |  |  | const val C02_MAX_PPM = 30000f |  |  |  | const val C02_MAX_PPM = 30000f | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | //?? TODO VOCS 这个值现在不对 |  |  |  | //?? TODO VOCS 这个值现在不对 | 
			
		
	
		
		
			
				
					
					|  |  |  | const val VOCS_MIN_PPM = 2f |  |  |  | const val VOCS_MIN_PPM = 2f | 
			
		
	
		
		
			
				
					
					|  |  |  | const val VOCS_MAX_PPM = 6f |  |  |  | const val VOCS_MAX_PPM = 6f | 
			
		
	
	
		
		
			
				
					|  |  | @ -69,7 +65,7 @@ const val UNIT_MGM3 = "mg/m3" | 
			
		
	
		
		
			
				
					
					|  |  |  | const val UNIT_LEL = "%LEL" |  |  |  | const val UNIT_LEL = "%LEL" | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | // 气体默认阈值表 |  |  |  | // 气体默认阈值表 | 
			
		
	
		
		
			
				
					
					|  |  |  | val default_threshold_map_ppm = hashMapOf<String, Float>( |  |  |  | val default_threshold_map_ppm = hashMapOf( | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     Pair("${CO}_$MIN_SUFFIX", CO_MIN_PPM), |  |  |  |     Pair("${CO}_$MIN_SUFFIX", CO_MIN_PPM), | 
			
		
	
		
		
			
				
					
					|  |  |  |     Pair("${CO}_$MAX_SUFFIX", CO_MAX_PPM), |  |  |  |     Pair("${CO}_$MAX_SUFFIX", CO_MAX_PPM), | 
			
		
	
		
		
			
				
					
					|  |  |  | //    Pair("${CH4}_$MIN_SUFFIX", lel2ppm(CH4_MIN_LEL, CH4_LEL2PPMFACTOR)), |  |  |  | //    Pair("${CH4}_$MIN_SUFFIX", lel2ppm(CH4_MIN_LEL, CH4_LEL2PPMFACTOR)), | 
			
		
	
	
		
		
			
				
					|  |  | @ -96,7 +92,7 @@ val default_threshold_map_ppm = hashMapOf<String, Float>( | 
			
		
	
		
		
			
				
					
					|  |  |  | ) |  |  |  | ) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | // 气体默认阈值表 |  |  |  | // 气体默认阈值表 | 
			
		
	
		
		
			
				
					
					|  |  |  | val default_threshold_map_mgm3 = hashMapOf<String, Float>( |  |  |  | val default_threshold_map_mgm3 = hashMapOf( | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     Pair("${CO}_$MIN_SUFFIX", ppm2mgm3(CO_MIN_PPM, MOLECULAR_CO)), |  |  |  |     Pair("${CO}_$MIN_SUFFIX", ppm2mgm3(CO_MIN_PPM, MOLECULAR_CO)), | 
			
		
	
		
		
			
				
					
					|  |  |  |     Pair("${CO}_$MAX_SUFFIX", ppm2mgm3(CO_MAX_PPM, MOLECULAR_CO)), |  |  |  |     Pair("${CO}_$MAX_SUFFIX", ppm2mgm3(CO_MAX_PPM, MOLECULAR_CO)), | 
			
		
	
		
		
			
				
					
					|  |  |  | //    Pair("${CH4}_$MIN_SUFFIX", ppm2mgm3(lel2ppm(CH4_MIN_LEL, CH4_LEL2PPMFACTOR), MOLECULAR_CH4)), |  |  |  | //    Pair("${CH4}_$MIN_SUFFIX", ppm2mgm3(lel2ppm(CH4_MIN_LEL, CH4_LEL2PPMFACTOR), MOLECULAR_CH4)), | 
			
		
	
	
		
		
			
				
					|  |  | @ -121,7 +117,53 @@ val default_threshold_map_mgm3 = hashMapOf<String, Float>( | 
			
		
	
		
		
			
				
					
					|  |  |  |     Pair("${C02}_$MAX_SUFFIX", ppm2mgm3(C02_MAX_PPM, MOLECULAR_C02)), |  |  |  |     Pair("${C02}_$MAX_SUFFIX", ppm2mgm3(C02_MAX_PPM, MOLECULAR_C02)), | 
			
		
	
		
		
			
				
					
					|  |  |  | ) |  |  |  | ) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | val default_threshold_map_unit = hashMapOf<String, HashMap<String, Float>>( |  |  |  | val default_threshold_map_unit = hashMapOf( | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     Pair(UNIT_PPM, default_threshold_map_ppm), |  |  |  |     Pair(UNIT_PPM, default_threshold_map_ppm), | 
			
		
	
		
		
			
				
					
					|  |  |  |     Pair(UNIT_MGM3, default_threshold_map_mgm3), |  |  |  |     Pair(UNIT_MGM3, default_threshold_map_mgm3), | 
			
		
	
		
		
			
				
					
					|  |  |  | ) |  |  |  | ) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | val so2_gas_cross_impact_map = hashMapOf( | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(CO, -0.002f), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(NO2, 1.67f), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(H2S, -0.004f), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(CL2, 0.4f) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | ) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | val co_gas_cross_impact_map = hashMapOf( | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(H2S, -0.25f), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(S02, -0.25f), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(NO, -0.5f), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(H2, -0.125f) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | ) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | val h2s_gas_cross_impact_map = hashMapOf( | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(CO, -0.02f) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | ) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | val nh3_gas_cross_impact_map = hashMapOf( | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(CO, 0.02f), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(H2S, -3.4f), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(C02, 0.0005f), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(H2, 0.0015f), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(S02, -1.6f), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(NO2, 1f), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(CL2, 0.5f) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | ) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | val no_gas_cross_impact_map = hashMapOf( | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(H2S, -0.3f), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(NO2, 0.1f) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | ) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | /** | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  * 气体交叉影响系数表 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | val gas_cross_impact_map = hashMapOf( | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(S02, so2_gas_cross_impact_map), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(CO, co_gas_cross_impact_map), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(H2S, h2s_gas_cross_impact_map), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | //    Pair(CL2, gas_cross_impact_map), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(NH3, nh3_gas_cross_impact_map), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Pair(NO, no_gas_cross_impact_map), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | ) | 
			
		
	
	
		
		
			
				
					|  |  | 
 |