<转载>set names utf8的内部执行原理

解决MySQL乱码问题
本文详细解释了如何通过设置MySQL的字符集为UTF-8来解决数据读取时出现的乱码问题,并深入探讨了其背后的原理。

解决乱码的方法,我们经常使用“set names utf8”,那么为什么加上这句代码就可以解决了呢?下面跟着我一起来深入set names utf8的内部执行原理

先说MySQL的字符集问题。Windows下可通过修改my.ini内的

PHP代码

[mysql]  

 default-character-set=utf8    //客户端的默认字符集
 [mysqld]

default-character-set=utf8    //服务器端默认的字符集

假设我们把两个都设为utf8,然后在MySQL Command Line Client里面输入“show variebles like“character_set_%”;”,可看到如下字符:
character_set_client   latin1
character_set_connection    latin1
character_set_database     utf8
character_set_results    latin1
character_set_server   utf8
character_set_system     utf8
要是我们通过采用UTF-8的PHP程序从数据库里读取数据,很有可能是一串“?????”或者是其他乱码。

解决办法是,在连接数据库之后,读取数据之前,先执行一项查询“SET NAMES UTF8”,即在PHP里为

mysql_query("SET NAMES UTF8");    

//该句话一定要放在数据库服务器连接语句【$connection=mysql_connect($db_host,$db_user,$db_psw)or die("连接服务器失败");】之后

即可显示正常(只要数据库里信息的字符正常)。

到MySQL命令行输入“SET NAMES UTF8;”,然后执行“show variebles like“character_set_%”;”,发现原来为latin1的那些变量“character_set_client”、“character_set_connection”、“character_set_results”的值全部变为utf8了,原来是这3个变量在捣蛋。

查阅手册,上面那句等于:

SET character_set_client = utf8;       

SET character_set_results = utf8;      

SET character_set_connection = utf8;  

看看这3个变量的作用:
信息输入路径:client→connection→server;
信息输出路径:server→connection→results。
换句话说,每个路径要经过3次改变字符集编码。以出现乱码的输出为例,server里utf8的数据,传入connection转为latin1,传入results转为latin1,utf-8页面又把results转过来。如果两种字符集不兼容,比如latin1和utf8,转化过程就为不可逆的,破坏性的。

但这里要声明一点,“SET NAMES UTF8”作用只是临时的,MySQL重启后就恢复默认了。

接下来就说到MySQL在服务器上的配置问题了。岂不是我们每次对数据库读写都得加上“SET NAMESUTF8”,以保证数据传输的编码一致?能不能通过配置MySQL来达到那三个变量默认就为我们要想的字符集?手册上没说,我在网上也没找到答案。所以,从服务器配置的角度而言,是没办法省略掉那行代码的。
总结:为了让你的网页能在更多的服务器上正常地显示,还是加上“SET NAMES UTF8”吧,即使你现在没有加上这句也能正常访问。

转载自:http://hi.baidu.com/myt1988/blog/item/335786808ab7b8ce9123d9b7.html

转载于:https://www.cnblogs.com/bulemichael/archive/2012/09/10/2679385.html

<?xml version="1.0" encoding="utf-8"?> <Config> <channel name="EWD_Tool/EWD_Behind_Damper_Exhaust_Pressure_Rdng_AI">EWD_Behind_Damper_Exhaust_Pressure</channel> <channel name="EWD_Tool/EWD_Cascade_Flow_Rdng_AI">EWD_Cascade_Flow</channel> <channel name="EWD_Tool/EWD_DI_Manifold_Pressure1_AI">EWD_DI_Manifold_Pressure1</channel> <channel name="EWD_Tool/EWD_DI_Manifold_Pressure2_AI">EWD_DI_Manifold_Pressure2</channel> <channel name="EWD_Tool/EWD_Front_Damper_Exhaust_Pressure_Rdng_AI">EWD_Front_Damper_Exhaust_Pressure</channel> <channel name="EWD_Tool/EWD_N2Purge_Flow_AI">EWD_N2Purge_Flow</channel> <channel name="EWD_Tool/EWD_PTRZone_Psw_Rdng_AI">EWD_PTRZone_Psw</channel> <channel name="EWD_Tool/EWD_SPAREZone_Psw_Rdng_AI">EWD_SPAREZone_Psw</channel> <channel name="EWD_Tool/EWD_Spray_Flow_Rdng_AI">EWD_Spray_Flow</channel> <channel name="PMEWD/RecipeProcessedTime">EWD_RecipeProcessedTime</channel> <channel name="PMEWD/RecipeTotalProcessTime">EWD_RecipeTotalProcessTime</channel> <channel name="PMEWD/JobID">EWD_JobName</channel> <channel name="PMEWD/RecipeName">EWD_RouteRecipeName</channel> <channel name="FFU/ReadSpeed21_AI">EWD_FFU1_RPM</channel> <channel name="FFU/ReadSpeed22_AI">EWD_FFU2_RPM</channel> <channel name="Tanks_1_2/DHF_Behind_Damper_Exhaust_Pressure_Rdng_AI">DHF_Behind_Damper_Exhaust_Pressure</channel> <channel name="Tanks_1_2/DHF_CycPipe_Flow_Rdng_AI">DHF_CycPipe_Flow</channel> <channel name="Tanks_1_2/DHF_DispenseDI_Flow_Rdng_AI">DHF_DispenseDI_Flow</channel> <channel name="Tanks_1_2/DHF_DIW_Dispense_Flow_Rdng_AI">DHF_DIW_Dispense_Flow</channel> <channel name="Tanks_1_2/DHF_DIW_Dispense_Total_Rdng_AI">DHF_DIW_Dispense_Total</channel> <channel name="Tanks_1_2/DHF_DIW_Spike_Flow_Rdng_AI">DHF_DIW_Spike_Flow</channel> <channel name="Tanks_1_2/DHF_DIW_Spike_Total_Rdng_AI">DHF_DIW_Spike_Total</channel> <channel name="Tanks_1_2/DHF_Front_Damper_Exhaust_Pressure_Rdng_AI">DHF_Front_Damper_Exhaust_Pressure</channel> <channel name="Tanks_1_2/DHF_HE_TempPV_Rdng_AI">DHF_HE_TempPV</channel> <channel name="Tanks_1_2/DHF_HE_TempSV_Rdng_AI">DHF_HE_TempSV</channel> <channel name="Tanks_1_2/DHF_HF_Cncet_Rdng_AI">DHF_HF_Cncet</channel> <channel name="Tanks_1_2/DHF_HF_Cncet_Temp_Rdng_AI">DHF_HF_Cncet_Temp</channel> <channel name="Tanks_1_2/DHF_HF_Flow_Rdng_AI">DHF_HF_Flow</channel> <channel name="Tanks_1_2/DHF_HF_Total_Flow_Rdng_AI">DHF_HF_Total_Flow</channel> <channel name="Tanks_1_2/DHF_InnerTnk_Lvl_Rdng_AI">DHF_InnerTnk_Lvl</channel> <channel name="Tanks_1_2/DHF_InnerTnk_Temp_Rdng_AI">DHF_InnerTnk_Temp</channel> <channel name="Tanks_1_2/DHF_OuterTnk_Lvl_Rdng_AI">DHF_OuterTnk_Lvl</channel> <channel name="Tanks_1_2/DHF_PCW_Flow_Rdng_AI">DHF_PCW_Flow</channel> <channel name="Tanks_1_2/DHF_PCW_Pressure_Rdng_AI">DHF_PCW_Pressure</channel> <channel name="Tanks_1_2/DHF_SpikeDI_Flow_Rdng_AI">DHF_SpikeDI_Flow</channel> <channel name="Tanks_1_2/DHF_VSL_HF_Lvl_Rdng_AI">DHF_VSL_HF_Lvl</channel> <channel name="Tanks_1_2/N2Bubble_N2Purge_Flow1_AI">Tank1_N2Bubble_N2Purge_Flow1</channel> <channel name="Tanks_1_2/N2Bubble_N2Purge_Flow2_AI">Tank1_N2Bubble_N2Purge_Flow2</channel> <channel name="Tanks_1_2/N2Bubble_N2Purge_Flow3_AI">Tank1_N2Bubble_N2Purge_Flow3</channel> <channel name="Tanks_1_2/N2Bubble_N2Purge_Flow4_AI">Tank1_N2Bubble_N2Purge_Flow4</channel> <channel name="Tanks_1_2/N2Bubble_N2Purge_Flow5_AI">Tank1_N2Bubble_N2Purge_Flow5</channel> <channel name="Tanks_1_2/N2Bubble_N2Purge_Flow6_AI">Tank1_N2Bubble_N2Purge_Flow6</channel> <channel name="Tanks_1_2/N2Bubble_N2Purge_Flow7_AI">Tank1_N2Bubble_N2Purge_Flow7</channel> <channel name="Tanks_1_2/N2Bubble_N2Purge_Flow8_AI">Tank1_N2Bubble_N2Purge_Flow8</channel> <channel name="Tanks_1_2/N2Bubble_N2Purge_Flow9_AI">Tank1_N2Bubble_N2Purge_Flow9</channel> <channel name="Tanks_1_2/N2Bubble_N2Purge_Flow10_AI">Tank1_N2Bubble_N2Purge_Flow10</channel> <channel name="Tanks_1_2/N2Bubble_N2Purge_Pressure1_AI">Tank1_N2Bubble_N2Purge_Pressure1</channel> <channel name="Tanks_1_2/N2Bubble_N2Purge_Pressure2_AI">Tank1_N2Bubble_N2Purge_Pressure2</channel> <channel name="Tanks_1_2/N2Bubble_N2Purge_Pressure3_AI">Tank1_N2Bubble_N2Purge_Pressure3</channel> <channel name="Tanks_1_2/N2Bubble_N2Purge_Pressure4_AI">Tank1_N2Bubble_N2Purge_Pressure4</channel> <channel name="Tanks_1_2/N2Bubble_N2Purge_Pressure5_AI">Tank1_N2Bubble_N2Purge_Pressure5</channel> <channel name="Tanks_1_2/N2Bubble_N2Purge_Pressure6_AI">Tank1_N2Bubble_N2Purge_Pressure6</channel> <channel name="Tanks_1_2/N2Bubble_N2Purge_Pressure7_AI">Tank1_N2Bubble_N2Purge_Pressure7</channel> <channel name="Tanks_1_2/N2Bubble_N2Purge_Pressure8_AI">Tank1_N2Bubble_N2Purge_Pressure8</channel> <channel name="Tanks_1_2/N2Bubble_N2Purge_Pressure10_AI">Tank1_N2Bubble_N2Purge_Pressure10</channel> <channel name="Tanks_1_2/N2Bubble_HE_Temp_Rdng_AI">Tank1_N2Bubble_HE_Temp</channel> <channel name="Tanks_1_2/N2Bubble_HE_TempSV_Rdng_AI">Tank1_N2Bubble_HE_TempSV</channel> <channel name="Tanks_1_2/N2Bubble_HE_TempPV_Rdng_AI">Tank1_N2Bubble_HE_TempPV</channel> <channel name="Tanks_1_2/N2Bubble_MFC1_Flow_Rdng_AI">Tank1_N2Bubble_MFC1_Flow</channel> <channel name="Tanks_1_2/N2Bubble_MFC2_Flow_Rdng_AI">Tank1_N2Bubble_MFC2_Flow</channel> <channel name="Tanks_1_2/N2Bubble_MFC3_Flow_Rdng_AI">Tank1_N2Bubble_MFC3_Flow</channel> <channel name="Tanks_1_2/N2Bubble_MFC4_Flow_Rdng_AI">Tank1_N2Bubble_MFC4_Flow</channel> <channel name="Tanks_1_2/N2Bubble_MFC5_Flow_Rdng_AI">Tank1_N2Bubble_MFC5_Flow</channel> <channel name="Tanks_1_2/N2Bubble_MFC6_Flow_Rdng_AI">Tank1_N2Bubble_MFC6_Flow</channel> <channel name="Tanks_1_2/N2Bubble_MFC7_Flow_Rdng_AI">Tank1_N2Bubble_MFC7_Flow</channel> <channel name="Tanks_1_2/N2Bubble_MFC8_Flow_Rdng_AI">Tank1_N2Bubble_MFC8_Flow</channel> <channel name="Tanks_1_2/N2Bubble_MFC9_Flow_Rdng_AI">Tank1_N2Bubble_MFC9_Flow</channel> <channel name="Tanks_1_2/N2Bubble_MFC10_Flow_Rdng_AI">Tank1_N2Bubble_MFC10_Flow</channel> <channel name="PM1/RecipeCurrentStepNumber">DHF_StepID</channel> <channel name="PM1/RecipeProcessedTime">DHF_RecipeProcessedTime</channel> <channel name="PM1/RecipeTotalProcessTime">DHF_RecipeTotalProcessTime</channel> <channel name="PM1/JobID">DHF_JobName</channel> <channel name="PM1/RecipeName">DHF_RecipeName</channel> <channel name="PMChemical1/BathLifeTotalCount">DHF_BathLifeTotalCount</channel> <channel name="PMChemical1/BathLifeTotalTime">DHF_BathLifeTotalTime</channel> <channel name="FFU/ReadSpeed1_AI">DHF_FFU1_RPM</channel> <channel name="FFU/ReadSpeed2_AI">DHF_FFU2_RPM</channel> <channel name="Tanks_1_2/iCB_Behind_Damper_Exhaust_Pressure_Rdng_AI">Tank2_iCB_Behind_Damper_Exhaust_Pressure</channel> <channel name="Tanks_1_2/iCB_Chem1_Cncet_Rdng_AI">Tank2_iCB_Chem1_Cncet</channel> <channel name="Tanks_1_2/iCB_Chem2_Cncet_Rdng_AI">Tank2_iCB_Chem2_Cncet</channel> <channel name="Tanks_1_2/iCB_Chem3_Cncet_Rdng_AI">Tank2_iCB_Chem3_Cncet</channel> <channel name="Tanks_1_2/iCB_CM_Temp_Rdng_AI">Tank2_iCB_CM_Temp</channel> <channel name="Tanks_1_2/iCB_CM_Temp_Rdng_AI">Tank2_iCB_CM_Temp</channel> <channel name="Tanks_1_2/iCB_DI_Pressure_Rdng_AI">Tank2_iCB_DI_Pressure</channel> <channel name="Tanks_1_2/iCB_DispenseDI_Flow_Rdng_AI">Tank2_iCB_DispenseDI_Flow</channel> <channel name="Tanks_1_2/iCB_DownCascade_Left_Flow_Rdng_AI">Tank2_iCB_DownCascade_Left_Flow</channel> <channel name="Tanks_1_2/iCB_DownCascade_Right_Flow_Rdng_AI">Tank2_iCB_DownCascade_Right_Flow</channel> <channel name="Tanks_1_2/iCB_Front_Damper_Exhaust_Pressure_Rdng_AI">Tank2_iCB_Front_Damper_Exhaust_Pressure</channel> <channel name="Tanks_1_2/iCB_H2O2_Flow_Rdng_AI">Tank2_iCB_H2O2_Flow</channel> <channel name="Tanks_1_2/iCB_H2O2_Total_Flow_Rdng_AI">Tank2_iCB_H2O2_Total_Flow</channel> <channel name="Tanks_1_2/iCB_HF_Flow_Rdng_AI">Tank2_iCB_HF_Flow</channel> <channel name="Tanks_1_2/iCB_HF_Flow_Rdng2_AI">Tank2_iCB_HF_Flow_Rdng2</channel> <channel name="Tanks_1_2/iCB_HF_Total_Flow_Rdng_AI">Tank2_iCB_HF_Total_Flow</channel> <channel name="Tanks_1_2/iCB_HF_Total_Flow_Rdng2_AI">Tank2_iCB_HF_Total_Flow_Rdng2</channel> <channel name="Tanks_1_2/iCB_Lvl_Rdng_AI">Tank2_iCB_Lvl</channel> <channel name="Tanks_1_2/iCB_Mega_Power_Rdng1_AI">Tank2_iCB_Mega_Power_Rdng1</channel> <channel name="Tanks_1_2/iCB_Mega_Power_Rdng2_AI">Tank2_iCB_Mega_Power_Rdng2</channel> <channel name="Tanks_1_2/iCB_MidCascade_Left_Flow_Rdng_AI">Tank2_iCB_MidCascade_Left_Flow</channel> <channel name="Tanks_1_2/iCB_MidCascade_Right_Flow_Rdng_AI">Tank2_iCB_MidCascade_Right_Flow</channel> <channel name="Tanks_1_2/iCB_Mix_Temp_Rdng_AI">Tank2_iCB_Mix_Temp</channel> <channel name="Tanks_1_2/iCB_MotorNeedleValve_H2O2_FlowPV_AI">Tank2_iCB_MotorNeedleValve_H2O2_FlowPV</channel> <channel name="Tanks_1_2/iCB_MotorNeedleValve_HF1_FlowPV_AI">Tank2_iCB_MotorNeedleValve_HF1_FlowPV</channel> <channel name="Tanks_1_2/iCB_MotorNeedleValve_HF2_FlowPV_AI">Tank2_iCB_MotorNeedleValve_HF2_FlowPV</channel> <channel name="Tanks_1_2/iCB_MotorNeedleValve_NH4OH_FlowPV_AI">Tank2_iCB_MotorNeedleValve_NH4OH_FlowPV</channel> <channel name="Tanks_1_2/iCB_MotorNeedleValve_TMAH1_FlowPV_AI">Tank2_iCB_MotorNeedleValve_TMAH1_FlowPV</channel> <channel name="Tanks_1_2/iCB_MotorNeedleValve_TMAH2_FlowPV_AI">Tank2_iCB_MotorNeedleValve_TMAH2_FlowPV</channel> <channel name="Tanks_1_2/iCB_NH4OH_Flow_Rdng_AI">Tank2_iCB_NH4OH_Flow</channel> <channel name="Tanks_1_2/iCB_NH4OH_Total_Flow_Rdng_AI">Tank2_iCB_NH4OH_Total_Flow</channel> <channel name="Tanks_1_2/iCB_O3Generation_DI_Cncet_Rdng_AI">Tank2_iCB_O3Generation_DI_Cncet</channel> <channel name="Tanks_1_2/iCB_O3Generation_DI_Flow_Rdng_AI">Tank2_iCB_O3Generation_DI_Flow</channel> <channel name="Tanks_1_2/iCB_Resist_Rdng_AI">Tank2_iCB_Resist</channel> <channel name="Tanks_1_2/iCB_Spray_Left_Flow_Rdng_AI">Tank2_iCB_Spray_Left_Flow</channel> <channel name="Tanks_1_2/iCB_Spray_Right_Flow_Rdng_AI">Tank2_iCB_Spray_Right_Flow</channel> <channel name="Tanks_1_2/iCB_SprayDI_Flow_Rdng_AI">Tank2_iCB_SprayDI_Flow</channel> <channel name="Tanks_1_2/iCB_Temp_Rdng_AI">Tank2_iCB_Temp</channel> <channel name="Tanks_1_2/iCB_TMAH_Flow_Rdng_AI">Tank2_iCB_TMAH_Flow</channel> <channel name="Tanks_1_2/iCB_TMAH_Flow_Rdng2_AI">Tank2_iCB_TMAH_Flow_Rdng2</channel> <channel name="Tanks_1_2/iCB_TMAH_Total_Flow_Rdng_AI">Tank2_iCB_TMAH_Total_Flow</channel> <channel name="Tanks_1_2/iCB_TMAH_Total_Flow_Rdng2_AI">Tank2_iCB_TMAH_Total_Flow_Rdng2</channel> <channel name="Tanks_1_2/iCB_VSL_H2O2_Behind_Damper_Exhaust_Pressure_Rdng_AI">Tank2_iCB_VSL_H2O2_Behind_Damper_Exhaust_Pressure</channel> <channel name="Tanks_1_2/iCB_VSL_H2O2_Front_Damper_Exhaust_Pressure_Rdng_AI">Tank2_iCB_VSL_H2O2_Front_Damper_Exhaust_Pressure</channel> <channel name="Tanks_1_2/iCB_VSL_H2O2_N2PressurePV_Rdng_AI">Tank2_iCB_VSL_H2O2_N2PressurePV</channel> <channel name="Tanks_1_2/iCB_VSL_HF_Behind_Damper_Exhaust_Pressure_Rdng_AI">Tank2_iCB_VSL_HF_Behind_Damper_Exhaust_Pressure</channel> <channel name="Tanks_1_2/iCB_VSL_HF_Front_Damper_Exhaust_Pressure_Rdng_AI">Tank2_iCB_VSL_HF_Front_Damper_Exhaust_Pressure</channel> <channel name="Tanks_1_2/iCB_VSL_HF_N2PressurePV_Rdng_AI">Tank2_iCB_VSL_HF_N2PressurePV</channel> <channel name="Tanks_1_2/iCB_VSL_NH4OH_Behind_Damper_Exhaust_Pressure_Rdng_AI">Tank2_iCB_VSL_NH4OH_Behind_Damper_Exhaust_Pressure</channel> <channel name="Tanks_1_2/iCB_VSL_NH4OH_Front_Damper_Exhaust_Pressure_Rdng_AI">Tank2_iCB_VSL_NH4OH_Front_Damper_Exhaust_Pressure</channel> <channel name="Tanks_1_2/iCB_VSL_NH4OH_N2PressurePV_Rdng_AI">Tank2_iCB_VSL_NH4OH_N2PressurePV</channel> <channel name="Tanks_1_2/iCB_VSL_TMAH_Behind_Damper_Exhaust_Pressure_Rdng_AI">Tank2_iCB_VSL_TMAH_Behind_Damper_Exhaust_Pressure</channel> <channel name="Tanks_1_2/iCB_VSL_TMAH_Front_Damper_Exhaust_Pressure_Rdng_AI">Tank2_iCB_VSL_TMAH_Front_Damper_Exhaust_Pressure</channel> <channel name="Tanks_1_2/iCB_VSL_TMAH_N2PressurePV_Rdng_AI">Tank2_iCB_VSL_TMAH_N2PressurePV</channel> <channel name="PM2/RecipeCurrentStepNumber">Tank2_iCB_StepID</channel> <channel name="PM2/RecipeProcessedTime">Tank2_iCB_RecipeProcessedTime</channel> <channel name="PM2/RecipeTotalProcessTime">Tank2_iCB_RecipeTotalProcessTime</channel> <channel name="PM2/JobID">Tank2_iCB_JobName</channel> <channel name="PM2/RecipeName">Tank2_iCB_RecipeName</channel> <channel name="FFU/ReadSpeed3_AI">Tank2_iCB_FFU1_RPM</channel> <channel name="FFU/ReadSpeed4_AI">Tank2_iCB_FFU2_RPM</channel> <channel name="Tanks_3_4/TMAH_VSL_TMAH_Lvl_Rdng_AI">TMAH_VSL_TMAH_Lvl</channel> <channel name="Tanks_3_4/TMAH_VSL_DIW_Lvl_Rdng_AI">TMAH_VSL_DIW_Lvl</channel> <channel name="Tanks_3_4/TMAH_TMAH_Total_Flow_Rdng2_AI">TMAH_TMAH_Total_Flow_Rdng2</channel> <channel name="Tanks_3_4/TMAH_TMAH_Total_Flow_Rdng_AI">TMAH_TMAH_Total_Flow</channel> <channel name="Tanks_3_4/TMAH_TMAH_Flow2_Rdng_AI">TMAH_TMAH_Flow2</channel> <channel name="Tanks_3_4/TMAH_TMAH_Flow_Rdng_AI">TMAH_TMAH_Flow</channel> <channel name="Tanks_3_4/TMAH_TMAH_Cncet_Temp_Rdng_AI">TMAH_TMAH_Cncet_Temp</channel> <channel name="Tanks_3_4/TMAH_TMAH_Cncet_Rdng_AI">TMAH_TMAH_Cncet</channel> <channel name="Tanks_3_4/TMAH_SpikeDI_Flow_Rdng_AI">TMAH_SpikeDI_Flow</channel> <channel name="Tanks_3_4/TMAH_OuterTnk_Lvl_Rdng_AI">TMAH_OuterTnk_Lvl</channel> <channel name="Tanks_3_4/TMAH_Mega_Power_Rdng2_AI">TMAH_Mega_Power_Rdng2</channel> <channel name="Tanks_3_4/TMAH_Mega_Power_Rdng1_AI">TMAH_Mega_Power_Rdng1</channel> <channel name="Tanks_3_4/TMAH_InnerTnk_Temp_Rdng_AI">TMAH_InnerTnk_Temp</channel> <channel name="Tanks_3_4/TMAH_InnerTnk_Lvl_Rdng_AI">TMAH_InnerTnk_Lvl</channel> <channel name="Tanks_3_4/TMAH_HE_TempSV_Rdng_AI">TMAH_HE_TempSV</channel> <channel name="Tanks_3_4/TMAH_HE_TempPV_Rdng_AI">TMAH_HE_TempPV</channel> <channel name="Tanks_3_4/TMAH_HE_Temp_Rdng_AI">TMAH_HE_Temp</channel> <channel name="Tanks_3_4/TMAH_HE_OutletTemp_Rdng_AI">TMAH_HE_OutletTemp</channel> <channel name="Tanks_3_4/TMAH_Front_Damper_Exhaust_Pressure_Rdng_AI">TMAH_Front_Damper_Exhaust_Pressure</channel> <channel name="Tanks_3_4/TMAH_DIW_Total_Rdng_AI">TMAH_DIW_Total</channel> <channel name="Tanks_3_4/TMAH_DIW_Spike_Total_Rdng_AI">TMAH_DIW_Spike_Total</channel> <channel name="Tanks_3_4/TMAH_DIW_Spike_Flow_Rdng_AI">TMAH_DIW_Spike_Flow</channel> <channel name="Tanks_3_4/TMAH_DIW_Flow_Rdng_AI">TMAH_DIW_Flow</channel> <channel name="Tanks_3_4/TMAH_DIW_Dispense_Flow_Rdng_AI">TMAH_DIW_Dispense_Flow</channel> <channel name="Tanks_3_4/TMAH_DIW_Cncet_Rdng_AI">TMAH_DIW_Cncet</channel> <channel name="Tanks_3_4/TMAH_CycPipe_Flow_Rdng_AI">TMAH_CycPipe_Flow</channel> <channel name="Tanks_3_4/TMAH_Behind_Damper_Exhaust_Pressure_Rdng_AI">TMAH_Behind_Damper_Exhaust_Pressure</channel> <channel name="Tanks_3_4/PRM2_H3PO4_Cncet_Rdng_AI">PRM2_H3PO4_Cncet</channel> <channel name="Tanks_3_4/PRM2_H2O_Cncet_Rdng_AI">PRM2_H2O_Cncet</channel> <channel name="Tanks_3_4/PRM1_H3PO4_Cncet_Rdng_AI">PRM1_H3PO4_Cncet</channel> <channel name="Tanks_3_4/PRM1_H2O_Cncet_Rdng_AI">PRM1_H2O_Cncet</channel> <channel name="Tanks_3_4/PRM_H3PO4_Cncet_Rdng_AI">PRM_H3PO4_Cncet</channel> <channel name="Tanks_3_4/PRM_H2O_Cncet_Rdng_AI">PRM_H2O_Cncet</channel> <channel name="Tanks_3_4/N2Bubble_N2Purge_Pressure9_AI">Tank3_N2Bubble_N2Purge_Pressure9</channel> <channel name="Tanks_3_4/N2Bubble_N2Purge_Pressure8_AI">Tank3_N2Bubble_N2Purge_Pressure8</channel> <channel name="Tanks_3_4/N2Bubble_N2Purge_Pressure7_AI">Tank3_N2Bubble_N2Purge_Pressure7</channel> <channel name="Tanks_3_4/N2Bubble_N2Purge_Pressure6_AI">Tank3_N2Bubble_N2Purge_Pressure6</channel> <channel name="Tanks_3_4/N2Bubble_N2Purge_Pressure5_AI">Tank3_N2Bubble_N2Purge_Pressure5</channel> <channel name="Tanks_3_4/N2Bubble_N2Purge_Pressure4_AI">Tank3_N2Bubble_N2Purge_Pressure4</channel> <channel name="Tanks_3_4/N2Bubble_N2Purge_Pressure3_AI">Tank3_N2Bubble_N2Purge_Pressure3</channel> <channel name="Tanks_3_4/N2Bubble_N2Purge_Pressure2_AI">Tank3_N2Bubble_N2Purge_Pressure2</channel> <channel name="Tanks_3_4/N2Bubble_N2Purge_Pressure10_AI">Tank3_N2Bubble_N2Purge_Pressure10</channel> <channel name="Tanks_3_4/N2Bubble_N2Purge_Pressure1_AI">Tank3_N2Bubble_N2Purge_Pressure1</channel> <channel name="Tanks_3_4/N2Bubble_N2Purge_Flow9_AI">Tank3_N2Bubble_N2Purge_Flow9</channel> <channel name="Tanks_3_4/N2Bubble_N2Purge_Flow8_AI">Tank3_N2Bubble_N2Purge_Flow8</channel> <channel name="Tanks_3_4/N2Bubble_N2Purge_Flow7_AI">Tank3_N2Bubble_N2Purge_Flow7</channel> <channel name="Tanks_3_4/N2Bubble_N2Purge_Flow6_AI">Tank3_N2Bubble_N2Purge_Flow6</channel> <channel name="Tanks_3_4/N2Bubble_N2Purge_Flow5_AI">Tank3_N2Bubble_N2Purge_Flow5</channel> <channel name="Tanks_3_4/N2Bubble_N2Purge_Flow4_AI">Tank3_N2Bubble_N2Purge_Flow4</channel> <channel name="Tanks_3_4/N2Bubble_N2Purge_Flow3_AI">Tank3_N2Bubble_N2Purge_Flow3</channel> <channel name="Tanks_3_4/N2Bubble_N2Purge_Flow2_AI">Tank3_N2Bubble_N2Purge_Flow2</channel> <channel name="Tanks_3_4/N2Bubble_N2Purge_Flow10_AI">Tank3_N2Bubble_N2Purge_Flow10</channel> <channel name="Tanks_3_4/N2Bubble_N2Purge_Flow1_AI">Tank3_N2Bubble_N2Purge_Flow1</channel> <channel name="Tanks_3_4/N2Bubble_MFC9_Flow_Rdng_AI">Tank3_N2Bubble_MFC9_Flow</channel> <channel name="Tanks_3_4/N2Bubble_MFC8_Flow_Rdng_AI">Tank3_N2Bubble_MFC8_Flow</channel> <channel name="Tanks_3_4/N2Bubble_MFC7_Flow_Rdng_AI">Tank3_N2Bubble_MFC7_Flow</channel> <channel name="Tanks_3_4/N2Bubble_MFC6_Flow_Rdng_AI">Tank3_N2Bubble_MFC6_Flow</channel> <channel name="Tanks_3_4/N2Bubble_MFC5_Flow_Rdng_AI">Tank3_N2Bubble_MFC5_Flow</channel> <channel name="Tanks_3_4/N2Bubble_MFC4_Flow_Rdng_AI">Tank3_N2Bubble_MFC4_Flow</channel> <channel name="Tanks_3_4/N2Bubble_MFC3_Flow_Rdng_AI">Tank3_N2Bubble_MFC3_Flow</channel> <channel name="Tanks_3_4/N2Bubble_MFC2_Flow_Rdng_AI">Tank3_N2Bubble_MFC2_Flow</channel> <channel name="Tanks_3_4/N2Bubble_MFC10_Flow_Rdng_AI">Tank3_N2Bubble_MFC10_Flow</channel> <channel name="Tanks_3_4/N2Bubble_MFC1_Flow_Rdng_AI">Tank3_N2Bubble_MFC1_Flow</channel> <channel name="Tanks_3_4/N2Bubble_HE_TempSV_Rdng_AI">Tank3_N2Bubble_HE_TempSV</channel> <channel name="Tanks_3_4/N2Bubble_HE_TempPV_Rdng_AI">Tank3_N2Bubble_HE_TempPV</channel> <channel name="Tanks_3_4/N2Bubble_HE_Temp_Rdng_AI">Tank3_N2Bubble_HE_Temp</channel> <channel name="PM3/RecipeCurrentStepNumber">THMA_StepID</channel> <channel name="PM3/RecipeProcessedTime">THMA_RecipeProcessedTime</channel> <channel name="PM3/RecipeTotalProcessTime">THMA_RecipeTotalProcessTime</channel> <channel name="PM3/JobID">THMA_JobName</channel> <channel name="PM3/RecipeName">THMA_RecipeName</channel> <channel name="PMChemical3/BathLifeTotalCount">THMA_BathLifeTotalCount</channel> <channel name="PMChemical3/BathLifeTotalTime">THMA_BathLifeTotalTime</channel> <channel name="FFU/ReadSpeed5_AI">THMA_FFU1_RPM</channel> <channel name="FFU/ReadSpeed6_AI">THMA_FFU2_RPM</channel> <channel name="Tanks_3_4/iCB_VSL_TMAH_N2PressurePV_Rdng_AI">Tank4_iCB_VSL_TMAH_N2PressurePV</channel> <channel name="Tanks_3_4/iCB_VSL_TMAH_Front_Damper_Exhaust_Pressure_Rdng_AI">Tank4_iCB_VSL_TMAH_Front_Damper_Exhaust_Pressure</channel> <channel name="Tanks_3_4/iCB_VSL_TMAH_Behind_Damper_Exhaust_Pressure_Rdng_AI">Tank4_iCB_VSL_TMAH_Behind_Damper_Exhaust_Pressure</channel> <channel name="Tanks_3_4/iCB_VSL_NH4OH_N2PressurePV_Rdng_AI">Tank4_iCB_VSL_NH4OH_N2PressurePV</channel> <channel name="Tanks_3_4/iCB_VSL_NH4OH_Front_Damper_Exhaust_Pressure_Rdng_AI">Tank4_iCB_VSL_NH4OH_Front_Damper_Exhaust_Pressure</channel> <channel name="Tanks_3_4/iCB_VSL_NH4OH_Behind_Damper_Exhaust_Pressure_Rdng_AI">Tank4_iCB_VSL_NH4OH_Behind_Damper_Exhaust_Pressure</channel> <channel name="Tanks_3_4/iCB_VSL_HF_N2PressurePV_Rdng_AI">Tank4_iCB_VSL_HF_N2PressurePV</channel> <channel name="Tanks_3_4/iCB_VSL_HF_Front_Damper_Exhaust_Pressure_Rdng_AI">Tank4_iCB_VSL_HF_Front_Damper_Exhaust_Pressure</channel> <channel name="Tanks_3_4/iCB_VSL_HF_Behind_Damper_Exhaust_Pressure_Rdng_AI">Tank4_iCB_VSL_HF_Behind_Damper_Exhaust_Pressure</channel> <channel name="Tanks_3_4/iCB_VSL_H2O2_N2PressurePV_Rdng_AI">Tank4_iCB_VSL_H2O2_N2PressurePV</channel> <channel name="Tanks_3_4/iCB_VSL_H2O2_Front_Damper_Exhaust_Pressure_Rdng_AI">Tank4_iCB_VSL_H2O2_Front_Damper_Exhaust_Pressure</channel> <channel name="Tanks_3_4/iCB_VSL_H2O2_Behind_Damper_Exhaust_Pressure_Rdng_AI">Tank4_iCB_VSL_H2O2_Behind_Damper_Exhaust_Pressure</channel> <channel name="Tanks_3_4/iCB_TMAH_Total_Flow_Rdng2_AI">Tank4_iCB_TMAH_Total_Flow_Rdng2</channel> <channel name="Tanks_3_4/iCB_TMAH_Total_Flow_Rdng_AI">Tank4_iCB_TMAH_Total_Flow</channel> <channel name="Tanks_3_4/iCB_TMAH_Flow_Rdng2_AI">Tank4_iCB_TMAH_Flow_Rdng2</channel> <channel name="Tanks_3_4/iCB_TMAH_Flow_Rdng_AI">Tank4_iCB_TMAH_Flow</channel> <channel name="Tanks_3_4/iCB_TMAH_Cncet_Rdng_AI">Tank4_iCB_TMAH_Cncet</channel> <channel name="Tanks_3_4/iCB_Temp_Rdng_AI">Tank4_iCB_Temp</channel> <channel name="Tanks_3_4/iCB_SprayDI_Flow_Rdng_AI">Tank4_iCB_SprayDI_Flow</channel> <channel name="Tanks_3_4/iCB_Spray_Right_Flow_Rdng_AI">Tank4_iCB_Spray_Right_Flow</channel> <channel name="Tanks_3_4/iCB_Spray_Left_Flow_Rdng_AI">Tank4_iCB_Spray_Left_Flow</channel> <channel name="Tanks_3_4/iCB_Resist_Rdng_AI">Tank4_iCB_Resist</channel> <channel name="Tanks_3_4/iCB_O3Generation_DI_Flow_Rdng_AI">Tank4_iCB_O3Generation_DI_Flow</channel> <channel name="Tanks_3_4/iCB_O3Generation_DI_Cncet_Rdng_AI">Tank4_iCB_O3Generation_DI_Cncet</channel> <channel name="Tanks_3_4/iCB_NH4OH_Total_Flow_Rdng_AI">Tank4_iCB_NH4OH_Total_Flow</channel> <channel name="Tanks_3_4/iCB_NH4OH_Flow_Rdng_AI">Tank4_iCB_NH4OH_Flow</channel> <channel name="Tanks_3_4/iCB_MotorNeedleValve_TMAH2_FlowPV_AI">Tank4_iCB_MotorNeedleValve_TMAH2_FlowPV</channel> <channel name="Tanks_3_4/iCB_MotorNeedleValve_TMAH1_FlowPV_AI">Tank4_iCB_MotorNeedleValve_TMAH1_FlowPV</channel> <channel name="Tanks_3_4/iCB_MotorNeedleValve_NH4OH_FlowPV_AI">Tank4_iCB_MotorNeedleValve_NH4OH_FlowPV</channel> <channel name="Tanks_3_4/iCB_MotorNeedleValve_HF2_FlowPV_AI">Tank4_iCB_MotorNeedleValve_HF2_FlowPV</channel> <channel name="Tanks_3_4/iCB_MotorNeedleValve_HF1_FlowPV_AI">Tank4_iCB_MotorNeedleValve_HF1_FlowPV</channel> <channel name="Tanks_3_4/iCB_MotorNeedleValve_H2O2_FlowPV_AI">Tank4_iCB_MotorNeedleValve_H2O2_FlowPV</channel> <channel name="Tanks_3_4/iCB_MixTemp_Rdng_AI">Tank4_iCB_MixTemp</channel> <channel name="Tanks_3_4/iCB_MidCascade_Right_Flow_Rdng_AI">Tank4_iCB_MidCascade_Right_Flow</channel> <channel name="Tanks_3_4/iCB_MidCascade_Left_Flow_Rdng_AI">Tank4_iCB_MidCascade_Left_Flow</channel> <channel name="Tanks_3_4/iCB_Mega_Power_Rdng2_AI">Tank4_iCB_Mega_Power_Rdng2</channel> <channel name="Tanks_3_4/iCB_Mega_Power_Rdng1_AI">Tank4_iCB_Mega_Power_Rdng1</channel> <channel name="Tanks_3_4/iCB_Lvl_Rdng_AI">Tank4_iCB_Lvl</channel> <channel name="Tanks_3_4/iCB_HF_Total_Flow_Rdng2_AI">Tank4_iCB_HF_Total_Flow_Rdng2</channel> <channel name="Tanks_3_4/iCB_HF_Total_Flow_Rdng_AI">Tank4_iCB_HF_Total_Flow</channel> <channel name="Tanks_3_4/iCB_HF_Flow_Rdng2_AI">Tank4_iCB_HF_Flow_Rdng2</channel> <channel name="Tanks_3_4/iCB_HF_Flow_Rdng_AI">Tank4_iCB_HF_Flow</channel> <channel name="Tanks_3_4/iCB_HF_Cncet_Rdng_AI">Tank4_iCB_HF_Cncet</channel> <channel name="Tanks_3_4/iCB_HE_Flow_Rdng_AI">Tank4_iCB_HE_Flow</channel> <channel name="Tanks_3_4/iCB_HCL_Cncet_Rdng_AI">Tank4_iCB_HCL_Cncet</channel> <channel name="Tanks_3_4/iCB_H2O2_Total_Flow_Rdng_AI">Tank4_iCB_H2O2_Total_Flow</channel> <channel name="Tanks_3_4/iCB_H2O2_Flow_Rdng_AI">Tank4_iCB_H2O2_Flow</channel> <channel name="Tanks_3_4/iCB_Front_Damper_Exhaust_Pressure_Rdng_AI">Tank4_iCB_Front_Damper_Exhaust_Pressure</channel> <channel name="Tanks_3_4/iCB_DownCascade_Right_Flow_Rdng_AI">Tank4_iCB_DownCascade_Right_Flow</channel> <channel name="Tanks_3_4/iCB_DownCascade_Left_Flow_Rdng_AI">Tank4_iCB_DownCascade_Left_Flow</channel> <channel name="Tanks_3_4/iCB_DispenseDI_Flow_Rdng_AI">Tank4_iCB_DispenseDI_Flow</channel> <channel name="Tanks_3_4/iCB_DI_Pressure_Rdng_AI">Tank4_iCB_DI_Pressure</channel> <channel name="Tanks_3_4/iCB_CM_Temp_Rdng_AI">Tank4_iCB_CM_Temp</channel> <channel name="Tanks_3_4/iCB_Behind_Damper_Exhaust_Pressure_Rdng_AI">Tank4_iCB_Behind_Damper_Exhaust_Pressure</channel> <channel name="PM4/RecipeCurrentStepNumber">Tank4_iCB_StepID</channel> <channel name="PM4/RecipeProcessedTime">Tank4_iCB_RecipeProcessedTime</channel> <channel name="PM4/RecipeTotalProcessTime">Tank4_iCB_RecipeTotalProcessTime</channel> <channel name="PM4/JobID">Tank4_iCB_JobName</channel> <channel name="PM4/RecipeName">Tank4_iCB_RecipeName</channel> <channel name="FFU/ReadSpeed7_AI">Tank4_iCB_FFU1_RPM</channel> <channel name="FFU/ReadSpeed8_AI">Tank4_iCB_FFU2_RPM</channel> <channel name="Tanks_LPD/LPD_AXIS_Torque_Value_AI">LPD_AXIS_Torque_Value</channel> <channel name="Tanks_LPD/LPD_Bottom_Position_AI">LPD_Bottom_Position</channel> <channel name="Tanks_LPD/LPD_CH_Pressure_AI">LPD_CH_Pressure</channel> <channel name="Tanks_LPD/LPD_Change1_Position_AI">LPD_Change1_Position</channel> <channel name="Tanks_LPD/LPD_Change2_Position_AI">LPD_Change2_Position</channel> <channel name="Tanks_LPD/LPD_CM_HF_CONC_AI">LPD_CM_HF_CONC</channel> <channel name="Tanks_LPD/LPD_CM_HF_TEMP_AI">LPD_CM_HF_TEMP</channel> <channel name="Tanks_LPD/LPD_Current_Axis_Position_AI">LPD_Current_Axis_Position</channel> <channel name="Tanks_LPD/LPD_Current_Axis_Speed_AI">LPD_Current_Axis_Speed</channel> <channel name="Tanks_LPD/LPD_Current_MakeSafe_RTime_AI">LPD_Current_MakeSafe_RTime</channel> <channel name="Tanks_LPD/LPD_Current_MakeSafe_STime_AI">LPD_Current_MakeSafe_STime</channel> <channel name="Tanks_LPD/LPD_Current_Post_Recipe_Step_AI">LPD_Current_Post_Recipe_Step</channel> <channel name="Tanks_LPD/LPD_Current_Post_Recipe_Time_AI">LPD_Current_Post_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Current_Pre_Recipe_Step_AI">LPD_Current_Pre_Recipe_Step</channel> <channel name="Tanks_LPD/LPD_Current_Pre_Recipe_Time_AI">LPD_Current_Pre_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Current_Process_Recipe_Step_AI">LPD_Current_Process_Recipe_Step</channel> <channel name="Tanks_LPD/LPD_Current_Process_Recipe_Time_AI">LPD_Current_Process_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Current_Recipe_Num_AI">LPD_Current_Recipe_Num</channel> <channel name="Tanks_LPD/LPD_DIW_PROC_Flow_AI">LPD_DIW_PROC_Flow</channel> <channel name="Tanks_LPD/LPD_DIW_PROC_Pressure_AI">LPD_DIW_PROC_Pressure</channel> <channel name="Tanks_LPD/LPD_DIW_VACP_Flow_AI">LPD_DIW_VACP_Flow</channel> <channel name="Tanks_LPD/LPD_DRAIN_TK03_Resist_AI">LPD_DRAIN_TK03_Resist</channel> <channel name="Tanks_LPD/LPD_IPA_Cncet_AI">LPD_IPA_Cncet</channel> <channel name="Tanks_LPD/LPD_IPA_Dry_SUPPLY_FLOW_AI">LPD_IPA_Dry_SUPPLY_FLOW</channel> <channel name="Tanks_LPD/LPD_IPA_N2_1_HT_TC3_AI">LPD_IPA_N2_1_HT_TC3</channel> <channel name="Tanks_LPD/LPD_IPA_N2_2_HT_TC3_AI">LPD_IPA_N2_2_HT_TC3</channel> <channel name="Tanks_LPD/LPD_IPA_Supply_Flow_AI">LPD_IPA_Supply_Flow</channel> <channel name="Tanks_LPD/LPD_IPA_VP_CirclePumpFlowRate_AI">LPD_IPA_VP_CirclePumpFlowRate</channel> <channel name="Tanks_LPD/LPD_IPA_VP_CONTROL_HT_Temp_AI">LPD_IPA_VP_CONTROL_HT_Temp</channel> <channel name="Tanks_LPD/LPD_IPA_VP_HT_TC1_AI">LPD_IPA_VP_HT_TC1</channel> <channel name="Tanks_LPD/LPD_IPA_VP_HT_TC2_AI">LPD_IPA_VP_HT_TC2</channel> <channel name="Tanks_LPD/LPD_IPA_VP_PROTECT_HT_Temp_AI">LPD_IPA_VP_PROTECT_HT_Temp</channel> <channel name="Tanks_LPD/LPD_IPA_VP_PRS_AI">LPD_IPA_VP_PRS</channel> <channel name="Tanks_LPD/LPD_IPA1_N2_HT_TC_AI">LPD_IPA1_N2_HT_TC</channel> <channel name="Tanks_LPD/LPD_IPA1_N2_HT_Temp_AI">LPD_IPA1_N2_HT_Temp</channel> <channel name="Tanks_LPD/LPD_IPA2_N2_HT_TC_AI">LPD_IPA2_N2_HT_TC</channel> <channel name="Tanks_LPD/LPD_IPA2_N2_HT_Temp_AI">LPD_IPA2_N2_HT_Temp</channel> <channel name="Tanks_LPD/LPD_MFC1_Flow_AI">LPD_MFC1_Flow</channel> <channel name="Tanks_LPD/LPD_MFC2_Flow_AI">LPD_MFC2_Flow</channel> <channel name="Tanks_LPD/LPD_N2_BYPASS_HT_TC_AI">LPD_N2_BYPASS_HT_TC</channel> <channel name="Tanks_LPD/LPD_N2_Bypass_HT_Temp_AI">LPD_N2_Bypass_HT_Temp</channel> <channel name="Tanks_LPD/LPD_N2_PRE_HT_TC_AI">LPD_N2_PRE_HT_TC</channel> <channel name="Tanks_LPD/LPD_N2_Pre_HT_Temp_AI">LPD_N2_Pre_HT_Temp</channel> <channel name="Tanks_LPD/LPD_Num1_Post_Recipe_Time_AI">LPD_Num1_Post_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num1_Pre_Recipe_Time_AI">LPD_Num1_Pre_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num1_Process_Recipe_Time_AI">LPD_Num1_Process_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num10_Post_Recipe_Time_AI">LPD_Num10_Post_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num10_Pre_Recipe_Time_AI">LPD_Num10_Pre_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num10_Process_Recipe_Time_AI">LPD_Num10_Process_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num2_Post_Recipe_Time_AI">LPD_Num2_Post_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num2_Pre_Recipe_Time_AI">LPD_Num2_Pre_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num2_Process_Recipe_Time_AI">LPD_Num2_Process_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num3_Post_Recipe_Time_AI">LPD_Num3_Post_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num3_Pre_Recipe_Time_AI">LPD_Num3_Pre_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num3_Process_Recipe_Time_AI">LPD_Num3_Process_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num4_Post_Recipe_Time_AI">LPD_Num4_Post_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num4_Pre_Recipe_Time_AI">LPD_Num4_Pre_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num4_Process_Recipe_Time_AI">LPD_Num4_Process_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num5_Post_Recipe_Time_AI">LPD_Num5_Post_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num5_Pre_Recipe_Time_AI">LPD_Num5_Pre_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num5_Process_Recipe_Time_AI">LPD_Num5_Process_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num6_Post_Recipe_Time_AI">LPD_Num6_Post_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num6_Pre_Recipe_Time_AI">LPD_Num6_Pre_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num6_Process_Recipe_Time_AI">LPD_Num6_Process_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num7_Post_Recipe_Time_AI">LPD_Num7_Post_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num7_Pre_Recipe_Time_AI">LPD_Num7_Pre_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num7_Process_Recipe_Time_AI">LPD_Num7_Process_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num8_Post_Recipe_Time_AI">LPD_Num8_Post_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num8_Pre_Recipe_Time_AI">LPD_Num8_Pre_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num8_Process_Recipe_Time_AI">LPD_Num8_Process_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num9_Post_Recipe_Time_AI">LPD_Num9_Post_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num9_Pre_Recipe_Time_AI">LPD_Num9_Pre_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Num9_Process_Recipe_Time_AI">LPD_Num9_Process_Recipe_Time</channel> <channel name="Tanks_LPD/LPD_Process_Position_AI">LPD_Process_Position</channel> <channel name="Tanks_LPD/LPD_Process_Tank_RTD_AI">LPD_Process_Tank_RTD</channel> <channel name="Tanks_LPD/LPD_RE_CDA_Scaling_AI">LPD_RE_CDA_Scaling</channel> <channel name="Tanks_LPD/LPD_SCRUB_EXH_PRS_FRONT_AI">LPD_SCRUB_EXH_PRS_FRONT</channel> <channel name="Tanks_LPD/LPD_SCRUB_EXH_PRS_REAR_AI">LPD_SCRUB_EXH_PRS_REAR</channel> <channel name="Tanks_LPD/LPD_SOL_EXH_Pressure_Front_AI">LPD_SOL_EXH_Pressure_Front</channel> <channel name="Tanks_LPD/LPD_SOL_EXH_Pressure_Rear_AI">LPD_SOL_EXH_Pressure_Rear</channel> <channel name="Tanks_LPD/LPD_SRB_EXH_Pressure_Front_AI">LPD_SRB_EXH_Pressure_Front</channel> <channel name="Tanks_LPD/LPD_SRB_EXH_Pressure_Rear_AI">LPD_SRB_EXH_Pressure_Rear</channel> <channel name="Tanks_LPD/LPD_Step_Status_AI">LPD_Step_Status</channel> <channel name="Tanks_LPD/LPD_Transfer_Position_AI">LPD_Transfer_Position</channel> <channel name="PMDryer/RecipeCurrentStepNumber">Dry_StepID</channel> <channel name="PMDryer/RecipeProcessedTime">Dry_RecipeProcessedTime</channel> <channel name="PMDryer/RecipeTotalProcessTime">Dry_RecipeTotalProcessTime</channel> <channel name="PMDryer/JobID">Dry_JobName</channel> <channel name="PMDryer/RecipeName">Dry_RecipeName</channel> <channel name="FFU/ReadSpeed23_AI">Dry_FFU1_RPM</channel> <channel name="FFU/ReadSpeed24_AI">Dry_FFU2_RPM</channel> </Config> 这里面是否有重复的
07-27
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!-- Copyright (c) 2016-2020, The Linux Foundation. All rights reserved Not a Contribution. --> <!-- Copyright (C) 2015 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- Changes from Qualcomm Innovation Center are provided under the following license: Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --> <audioPolicyConfiguration version="7.0" xmlns:xi="http://www.w3.org/2001/XInclude"> <!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” --> <!-- Global configuration Decalaration --> <globalConfiguration speaker_drc_enabled="true" call_screen_mode_supported="true"/> <!-- Modules section: There is one section per audio HW module present on the platform. Each module section will contains two mandatory tags for audio HAL “halVersion” and “name”. The module names are the same as in current .conf file: “primary”, “A2DP”, “remote_submix”, “USB” Each module will contain the following sections: “devicePorts”: a list of device descriptors for all input and output devices accessible via this module. This contains both permanently attached devices and removable devices. “mixPorts”: listing all output and input streams exposed by the audio HAL “routes”: list of possible connections between input and output devices or between stream and devices. "route": is defined by an attribute: -"type": <mux|mix> means all sources are mutual exclusive (mux) or can be mixed (mix) -"sink": the sink involved in this route -"sources": all the sources than can be connected to the sink via vis route “attachedDevices”: permanently attached devices. The attachedDevices section is a list of devices names. The names correspond to device names defined in <devicePorts> section. “defaultOutputDevice”: device to be used by default when no policy rule applies --> <modules> <!-- Primary Audio HAL is now hosted in audio_module_config_primary --> <!-- A2DP Audio HAL --> <!-- <module name="a2dp" halVersion="2.0"> <mixPorts> <mixPort name="a2dp input" role="sink"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/> </mixPort> </mixPorts> <devicePorts> <devicePort tagName="BT A2DP In" type="AUDIO_DEVICE_IN_BLUETOOTH_A2DP" role="source"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/> </devicePort> </devicePorts> <routes> <route type="mix" sink="a2dp input" sources="BT A2DP In"/> </routes> </module> --> <!-- Usb Audio HAL --> <module name="usb" halVersion="2.0"> <mixPorts> <mixPort name="usb_accessory output" role="source"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/> </mixPort> </mixPorts> <devicePorts> <devicePort tagName="USB Host Out" type="AUDIO_DEVICE_OUT_USB_ACCESSORY" role="sink"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/> </devicePort> </devicePorts> <routes> <route type="mix" sink="USB Host Out" sources="usb_accessory output"/> </routes> </module> <!-- #ifdef OPLUS_FEATURE_VIRTUAL_AUDIO --> <!-- ZhangHui@MULTIMEDIA.AUDIOSERVER.BASE, 2021/10/11, Add for virtual audio --> <xi:include href="/odm/etc/virtual_audio_policy_configuration.xml"> <xi:fallback></xi:fallback> </xi:include> <!-- #endif OPLUS_FEATURE_VIRTUAL_AUDIO --> <!-- Remote Submix Audio HAL --> <xi:include href="/vendor/etc/r_submix_audio_policy_configuration.xml"/> <!-- Bluetooth Audio HAL for hearing aid --> <xi:include href="/vendor/etc/bluetooth_qti_hearing_aid_audio_policy_configuration.xml"/> <!-- Stub HAL --> <xi:include href="/vendor/etc/stub_audio_policy_configuration.xml"/> </modules> <!-- End of Modules section --> <!-- Volume section --> <xi:include href="/vendor/etc/audio_policy_volumes.xml"/> <xi:include href="/vendor/etc/default_volume_tables.xml"/> <!-- End of Volume section --> </audioPolicyConfiguration> 以上文件路径:/vendor/etc/audio/sku_sun_qssi/audio_policy_configuration.xml 一加13 Coloros15,安卓版本15,修改该文件,绕过安卓音频SRC实现系统全局自适应采样率(Dynamic sampling rates)、自适应位深(Bit_perfect)(保持音频文件原始位深,16bit文件不升级位深)、禁用升频和重采样,关闭所有音频音效(effect)以及影响音频质量无损输出的一切音频处理,最大程度上抑制并降低音频抖动(jitter)(最大化优化时钟管理和同步)、最大程度降低音频失真和噪声以及电源纹波和噪声,以输出和输入最干净无污染最高质量的HIFI无损原始音频信号直出,并且输出修改过的完整文件(不要片段)
最新发布
08-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值