|
|
@@ -20,6 +20,7 @@ void SerialInfo::on_closeWork()
|
|
|
|
|
|
void SerialInfo::on_Check_PDUStatus()
|
|
|
{
|
|
|
+ //initPDUStatus();
|
|
|
//轮询PDU信息
|
|
|
char OrderArray[8];
|
|
|
|
|
|
@@ -38,9 +39,10 @@ void SerialInfo::on_Check_PDUStatus()
|
|
|
OrderArray[6] = crc & 0xFF; // Low byte
|
|
|
OrderArray[7] = (crc >> 8) & 0xFF; // High byte
|
|
|
SendString=on_SendInfo(OrderArray,8);
|
|
|
+ QThread::msleep(QUERYSTAMP);
|
|
|
RecString=on_Rec_PDUStatus();
|
|
|
on_Parse_PDUStatus(SendString,RecString,_SWITCH_T_AC_TYPE_CHN_INFO);
|
|
|
- QThread::msleep(QUERYSTAMP);
|
|
|
+ //QThread::msleep(QUERYSTAMP);
|
|
|
|
|
|
|
|
|
//查询L1信息
|
|
|
@@ -52,9 +54,10 @@ void SerialInfo::on_Check_PDUStatus()
|
|
|
OrderArray[6] = crc & 0xFF; // Low byte
|
|
|
OrderArray[7] = (crc >> 8) & 0xFF; // High byte
|
|
|
SendString=on_SendInfo(OrderArray,8);
|
|
|
+ QThread::msleep(QUERYSTAMP);
|
|
|
RecString=on_Rec_PDUStatus();
|
|
|
on_Parse_PDUStatus(SendString,RecString,_SWITCH_T_AC_IN_L1_INFO);
|
|
|
- QThread::msleep(QUERYSTAMP);
|
|
|
+ //QThread::msleep(QUERYSTAMP);
|
|
|
|
|
|
//查询L2信息
|
|
|
OrderArray[2] = (_SWITCH_T_AC_IN_L2_INFO >> 8) & 0xFF; // High byte
|
|
|
@@ -65,9 +68,10 @@ void SerialInfo::on_Check_PDUStatus()
|
|
|
OrderArray[6] = crc & 0xFF; // Low byte
|
|
|
OrderArray[7] = (crc >> 8) & 0xFF; // High byte
|
|
|
SendString=on_SendInfo(OrderArray,8);
|
|
|
+ QThread::msleep(QUERYSTAMP);
|
|
|
RecString=on_Rec_PDUStatus();
|
|
|
on_Parse_PDUStatus(SendString,RecString,_SWITCH_T_AC_IN_L2_INFO);
|
|
|
- QThread::msleep(QUERYSTAMP);
|
|
|
+ //QThread::msleep(QUERYSTAMP);
|
|
|
|
|
|
//查询L3信息
|
|
|
OrderArray[2] = (_SWITCH_T_AC_IN_L3_INFO >> 8) & 0xFF; // High byte
|
|
|
@@ -78,67 +82,28 @@ void SerialInfo::on_Check_PDUStatus()
|
|
|
OrderArray[6] = crc & 0xFF; // Low byte
|
|
|
OrderArray[7] = (crc >> 8) & 0xFF; // High byte
|
|
|
SendString=on_SendInfo(OrderArray,8);
|
|
|
- RecString=on_Rec_PDUStatus();
|
|
|
- on_Parse_PDUStatus(SendString,RecString,_SWITCH_T_AC_IN_L3_INFO);
|
|
|
QThread::msleep(QUERYSTAMP);
|
|
|
-
|
|
|
- for(int i=0;i<m_TotalCHTemp;i++)
|
|
|
- {
|
|
|
- //查询相信息
|
|
|
- OrderArray[2] = ((_SWITCH_T_AC_CH_PHASE_INFO + 30*i)>> 8) & 0xFF; // High byte
|
|
|
- OrderArray[3] = (_SWITCH_T_AC_CH_PHASE_INFO + 30*i) & 0xFF; // Low byte
|
|
|
- OrderArray[4]=0x00;
|
|
|
- OrderArray[5]=0x1E;
|
|
|
- crc = crc16_ccitt(OrderArray, 6);
|
|
|
- OrderArray[6] = crc & 0xFF; // Low byte
|
|
|
- OrderArray[7] = (crc >> 8) & 0xFF; // High byte
|
|
|
- SendString=on_SendInfo(OrderArray,8);
|
|
|
- RecString=on_Rec_PDUStatus();
|
|
|
- on_Parse_PDUStatus(SendString,RecString,(_SWITCH_T_AC_CH_PHASE_INFO + 30*i));
|
|
|
- QThread::msleep(QUERYSTAMP);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /*
|
|
|
- //查询相信息1
|
|
|
- OrderArray[2] = (_SWITCH_T_AC_CH_PHASE_INFO >> 8) & 0xFF; // High byte
|
|
|
- OrderArray[3] = _SWITCH_T_AC_CH_PHASE_INFO & 0xFF; // Low byte
|
|
|
- OrderArray[4]=0x00;
|
|
|
- OrderArray[5]=0x96;
|
|
|
- crc = crc16_ccitt(OrderArray, 6);
|
|
|
- OrderArray[6] = crc & 0xFF; // Low byte
|
|
|
- OrderArray[7] = (crc >> 8) & 0xFF; // High byte
|
|
|
- SendString=on_SendInfo(OrderArray,8);
|
|
|
RecString=on_Rec_PDUStatus();
|
|
|
- on_Parse_PDUStatus(SendString,RecString,_SWITCH_T_AC_CH_PHASE_INFO);
|
|
|
- QThread::msleep(QUERYSTAMP);
|
|
|
+ on_Parse_PDUStatus(SendString,RecString,_SWITCH_T_AC_IN_L3_INFO);
|
|
|
+ //QThread::msleep(QUERYSTAMP);
|
|
|
|
|
|
- //查询相信息2
|
|
|
- OrderArray[2] = ((_SWITCH_T_AC_CH_PHASE_INFO + _SWITCH_CH_DIV)>> 8) & 0xFF; // High byte
|
|
|
- OrderArray[3] = (_SWITCH_T_AC_CH_PHASE_INFO + _SWITCH_CH_DIV) & 0xFF; // Low byte
|
|
|
- OrderArray[4]=0x00;
|
|
|
- OrderArray[5]=0x96;
|
|
|
- crc = crc16_ccitt(OrderArray, 6);
|
|
|
- OrderArray[6] = crc & 0xFF; // Low byte
|
|
|
- OrderArray[7] = (crc >> 8) & 0xFF; // High byte
|
|
|
- SendString=on_SendInfo(OrderArray,8);
|
|
|
- RecString=on_Rec_PDUStatus();
|
|
|
- on_Parse_PDUStatus(SendString,RecString,_SWITCH_T_AC_CH_PHASE_INFO+_SWITCH_CH_DIV);
|
|
|
- QThread::msleep(QUERYSTAMP);
|
|
|
+ //查询相信息
|
|
|
+ for(int i=0;i<m_TotalCHTemp;i++)
|
|
|
+ {
|
|
|
|
|
|
- //查询相信息3
|
|
|
- OrderArray[2] = ((_SWITCH_T_AC_CH_PHASE_INFO + _SWITCH_CH_DIV*2 )>> 8) & 0xFF; // High byte
|
|
|
- OrderArray[3] = (_SWITCH_T_AC_CH_PHASE_INFO + _SWITCH_CH_DIV*2 ) & 0xFF; // Low byte
|
|
|
- OrderArray[4]=0x00;
|
|
|
- OrderArray[5]=0x96;
|
|
|
- crc = crc16_ccitt(OrderArray, 6);
|
|
|
- OrderArray[6] = crc & 0xFF; // Low byte
|
|
|
- OrderArray[7] = (crc >> 8) & 0xFF; // High byte
|
|
|
- SendString=on_SendInfo(OrderArray,8);
|
|
|
- RecString=on_Rec_PDUStatus();
|
|
|
- on_Parse_PDUStatus(SendString,RecString,_SWITCH_T_AC_CH_PHASE_INFO+_SWITCH_CH_DIV*2);
|
|
|
- QThread::msleep(QUERYSTAMP);
|
|
|
- */
|
|
|
+ OrderArray[2] = ((_SWITCH_T_AC_CH_PHASE_INFO + 30*i)>> 8) & 0xFF; // High byte
|
|
|
+ OrderArray[3] = (_SWITCH_T_AC_CH_PHASE_INFO + 30*i) & 0xFF; // Low byte
|
|
|
+ OrderArray[4]=0x00;
|
|
|
+ OrderArray[5]=0x1E;
|
|
|
+ crc = crc16_ccitt(OrderArray, 6);
|
|
|
+ OrderArray[6] = crc & 0xFF; // Low byte
|
|
|
+ OrderArray[7] = (crc >> 8) & 0xFF; // High byte
|
|
|
+ SendString=on_SendInfo(OrderArray,8);
|
|
|
+ QThread::msleep(QUERYSTAMP);
|
|
|
+ RecString=on_Rec_PDUStatus();
|
|
|
+ on_Parse_PDUStatus(SendString,RecString,(_SWITCH_T_AC_CH_PHASE_INFO + 30*i));
|
|
|
+ //QThread::msleep(QUERYSTAMP);
|
|
|
+ }
|
|
|
|
|
|
//查询通道状态
|
|
|
OrderArray[2] = (_SWITCH_T_AC_CH_STATUS >> 8) & 0xFF; // High byte
|
|
|
@@ -149,9 +114,10 @@ void SerialInfo::on_Check_PDUStatus()
|
|
|
OrderArray[6] = crc & 0xFF; // Low byte
|
|
|
OrderArray[7] = (crc >> 8) & 0xFF; // High byte
|
|
|
SendString=on_SendInfo(OrderArray,8);
|
|
|
+ QThread::msleep(QUERYSTAMP);
|
|
|
RecString=on_Rec_PDUStatus();
|
|
|
on_Parse_PDUStatus(SendString,RecString,_SWITCH_T_AC_CH_STATUS);
|
|
|
- QThread::msleep(QUERYSTAMP);
|
|
|
+ //QThread::msleep(QUERYSTAMP);
|
|
|
|
|
|
|
|
|
//查询modbus传感器
|
|
|
@@ -163,9 +129,10 @@ void SerialInfo::on_Check_PDUStatus()
|
|
|
OrderArray[6] = crc & 0xFF; // Low byte
|
|
|
OrderArray[7] = (crc >> 8) & 0xFF; // High byte
|
|
|
SendString=on_SendInfo(OrderArray,8);
|
|
|
+ QThread::msleep(QUERYSTAMP);
|
|
|
RecString=on_Rec_PDUStatus();
|
|
|
on_Parse_PDUStatus(SendString,RecString,_SWITCH_T_AC_SENSOR_INFO);
|
|
|
- QThread::msleep(QUERYSTAMP);
|
|
|
+ //QThread::msleep(QUERYSTAMP);
|
|
|
|
|
|
//查询干节点传感器
|
|
|
OrderArray[2] =(_SWITCH_T_AC_SENSOR_INFO1 >> 8) & 0xFF; // High byte
|
|
|
@@ -176,9 +143,10 @@ void SerialInfo::on_Check_PDUStatus()
|
|
|
OrderArray[6] = crc & 0xFF; // Low byte
|
|
|
OrderArray[7] = (crc >> 8) & 0xFF; // High byte
|
|
|
SendString=on_SendInfo(OrderArray,8);
|
|
|
+ QThread::msleep(QUERYSTAMP);
|
|
|
RecString=on_Rec_PDUStatus();
|
|
|
on_Parse_PDUStatus(SendString,RecString,_SWITCH_T_AC_SENSOR_INFO1);
|
|
|
- QThread::msleep(QUERYSTAMP);
|
|
|
+ //QThread::msleep(QUERYSTAMP);
|
|
|
|
|
|
|
|
|
}
|
|
|
@@ -189,7 +157,12 @@ void SerialInfo::on_Parse_PDUStatus(const QString &Sendstr,const QString &Recstr
|
|
|
if(_SWITCH_T_AC_TYPE_CHN_INFO==infoType)
|
|
|
{
|
|
|
QVector<quint16> pRecVector=parseModbusResponse(Recstr,1);
|
|
|
- if(pRecVector.size()<1) return;
|
|
|
+ if(pRecVector.size()<1)
|
|
|
+ {
|
|
|
+ //m_TotalCHTemp =0;
|
|
|
+ // m_PDUType =0;
|
|
|
+ return;
|
|
|
+ }
|
|
|
m_TotalCHTemp = pRecVector[0] & 0xFF; // Low byte
|
|
|
m_PDUType = (pRecVector[0] >> 8) & 0xFF; // High byte
|
|
|
|
|
|
@@ -197,7 +170,14 @@ void SerialInfo::on_Parse_PDUStatus(const QString &Sendstr,const QString &Recstr
|
|
|
else if(_SWITCH_T_AC_IN_L1_INFO==infoType)
|
|
|
{
|
|
|
QVector<quint16> pRecVector=parseModbusResponse(Recstr,8);
|
|
|
- if(pRecVector.size()<8) return;
|
|
|
+ if(pRecVector.size()<8)
|
|
|
+ {
|
|
|
+ //m_PDUAllInfo.AllVoltage_L1 = 0;
|
|
|
+ //m_PDUAllInfo.AllCurrent_L1 = 0;
|
|
|
+ //m_PDUAllInfo.AllPower_L1 = 0;
|
|
|
+ //m_PDUAllInfo.AllConsumption_L1 = 0;
|
|
|
+ return;
|
|
|
+ }
|
|
|
m_PDUAllInfo.AllVoltage_L1 = ((pRecVector[1] << 16) + pRecVector[0] )/1000.0f; // Low byte
|
|
|
m_PDUAllInfo.AllCurrent_L1 = ((pRecVector[3] << 16) + pRecVector[2] )/1000.0f; // Low byte
|
|
|
m_PDUAllInfo.AllPower_L1 = ((pRecVector[5] << 16) + pRecVector[4] )/1000.0f; // Low byte
|
|
|
@@ -206,7 +186,14 @@ void SerialInfo::on_Parse_PDUStatus(const QString &Sendstr,const QString &Recstr
|
|
|
else if(_SWITCH_T_AC_IN_L2_INFO==infoType)
|
|
|
{
|
|
|
QVector<quint16> pRecVector=parseModbusResponse(Recstr,8);
|
|
|
- if(pRecVector.size()<8) return;
|
|
|
+ if(pRecVector.size()<8)
|
|
|
+ {
|
|
|
+ //m_PDUAllInfo.AllVoltage_L2 = 0;
|
|
|
+ //m_PDUAllInfo.AllCurrent_L2 = 0;
|
|
|
+ //m_PDUAllInfo.AllPower_L2 = 0;
|
|
|
+ //m_PDUAllInfo.AllConsumption_L2 = 0;
|
|
|
+ return;
|
|
|
+ }
|
|
|
m_PDUAllInfo.AllVoltage_L2 = ((pRecVector[1] << 16) + pRecVector[0] )/1000.0f; // Low byte
|
|
|
m_PDUAllInfo.AllCurrent_L2 = ((pRecVector[3] << 16) + pRecVector[2] )/1000.0f; // Low byte
|
|
|
m_PDUAllInfo.AllPower_L2 = ((pRecVector[5] << 16) + pRecVector[4] )/1000.0f; // Low byte
|
|
|
@@ -215,7 +202,14 @@ void SerialInfo::on_Parse_PDUStatus(const QString &Sendstr,const QString &Recstr
|
|
|
else if(_SWITCH_T_AC_IN_L3_INFO==infoType)
|
|
|
{
|
|
|
QVector<quint16> pRecVector=parseModbusResponse(Recstr,8);
|
|
|
- if(pRecVector.size()<8) return;
|
|
|
+ if(pRecVector.size()<8)
|
|
|
+ {
|
|
|
+ //m_PDUAllInfo.AllVoltage_L3 = 0;
|
|
|
+ //m_PDUAllInfo.AllCurrent_L3 = 0;
|
|
|
+ //m_PDUAllInfo.AllPower_L3 = 0;
|
|
|
+ //m_PDUAllInfo.AllConsumption_L3 = 0;
|
|
|
+ return;
|
|
|
+ }
|
|
|
m_PDUAllInfo.AllVoltage_L3 = ((pRecVector[1] << 16) + pRecVector[0] )/1000.0f; // Low byte
|
|
|
m_PDUAllInfo.AllCurrent_L3 = ((pRecVector[3] << 16) + pRecVector[2] )/1000.0f; // Low byte
|
|
|
m_PDUAllInfo.AllPower_L3 = ((pRecVector[5] << 16) + pRecVector[4] )/1000.0f; // Low byte
|
|
|
@@ -224,7 +218,14 @@ void SerialInfo::on_Parse_PDUStatus(const QString &Sendstr,const QString &Recstr
|
|
|
else if(_SWITCH_T_AC_CH_STATUS==infoType)
|
|
|
{
|
|
|
QVector<quint16> pRecVector=parseModbusResponse(Recstr,14);
|
|
|
- if(pRecVector.size()<14) return;
|
|
|
+ if(pRecVector.size()<14)
|
|
|
+ {
|
|
|
+ //for(int i=0;i<14;i++)
|
|
|
+ //{
|
|
|
+ // m_PDUCHInfo[i].CHStatus= false; // Low byte
|
|
|
+ //}
|
|
|
+ return;
|
|
|
+ }
|
|
|
for(int i=0;i<14;i++)
|
|
|
{
|
|
|
m_PDUCHInfo[i].CHStatus=pRecVector[i] & 0xFFFF; // Low byte
|
|
|
@@ -233,7 +234,15 @@ void SerialInfo::on_Parse_PDUStatus(const QString &Sendstr,const QString &Recstr
|
|
|
else if(_SWITCH_T_AC_SENSOR_INFO==infoType)
|
|
|
{
|
|
|
QVector<quint16> pRecVector=parseModbusResponse(Recstr,16);
|
|
|
- if(pRecVector.size()<16) return;
|
|
|
+ if(pRecVector.size()<16)
|
|
|
+ {
|
|
|
+ //m_PDUAllInfo.Sensor_Temperature = 0;
|
|
|
+ //m_PDUAllInfo.Sensor_Humidity = 0;
|
|
|
+ //m_PDUAllInfo.Sensor_CO2 = 0;
|
|
|
+ //m_PDUAllInfo.Sensor_INTemperature = 0;
|
|
|
+ //m_PDUAllInfo.Sensor_OUTTemperature = 0;
|
|
|
+ return;
|
|
|
+ }
|
|
|
m_PDUAllInfo.Sensor_Temperature = ((pRecVector[1] << 16) + pRecVector[0] )/1000.0f;
|
|
|
m_PDUAllInfo.Sensor_Humidity = ((pRecVector[3] << 16) + pRecVector[2] )/1000.0f;
|
|
|
m_PDUAllInfo.Sensor_CO2 = ((pRecVector[5] << 16) + pRecVector[4] )/1000.0f;
|
|
|
@@ -243,8 +252,13 @@ void SerialInfo::on_Parse_PDUStatus(const QString &Sendstr,const QString &Recstr
|
|
|
else if(_SWITCH_T_AC_SENSOR_INFO1==infoType)
|
|
|
{
|
|
|
QVector<quint16> pRecVector=parseModbusResponse(Recstr,4);
|
|
|
- if(pRecVector.size()<4) return;
|
|
|
- m_PDUAllInfo.Sensor_WaterImmersion = pRecVector[0] & 0xFFFF; // Low byte
|
|
|
+ if(pRecVector.size()<4)
|
|
|
+ {
|
|
|
+ //m_PDUAllInfo.Sensor_WaterImmersion=false;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ bool immFlag = pRecVector[0] & 0xFFFF; // Low byte
|
|
|
+ m_PDUAllInfo.Sensor_WaterImmersion =!immFlag;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
@@ -253,7 +267,14 @@ void SerialInfo::on_Parse_PDUStatus(const QString &Sendstr,const QString &Recstr
|
|
|
if((_SWITCH_T_AC_CH_PHASE_INFO+30*i)==infoType)
|
|
|
{
|
|
|
QVector<quint16> pRecVector=parseModbusResponse(Recstr,30);
|
|
|
- if(pRecVector.size()<30) return;
|
|
|
+ if(pRecVector.size()<30)
|
|
|
+ {
|
|
|
+ //m_PDUCHInfo[i].CHVoltage=0;
|
|
|
+ //m_PDUCHInfo[i].CHCurrent=0;
|
|
|
+ //m_PDUCHInfo[i].CHPower=0;
|
|
|
+ //m_PDUCHInfo[i].CHConsumption=0;
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
// bool L1flag=pRecVector[8] & 0xFFFF; // Low byte
|
|
|
//bool L2flag=pRecVector[18] & 0xFFFF; // Low byte
|
|
|
@@ -337,6 +358,7 @@ QString SerialInfo::on_SendInfo(char* OrderArray,int sendsize)
|
|
|
QString SerialInfo::on_Rec_PDUStatus()
|
|
|
{
|
|
|
if(!m_openflag) return "";
|
|
|
+ /*
|
|
|
// 如接收成功,会返回接收的字符串,失败返回空字符串
|
|
|
QString Allrecinfo="";
|
|
|
for (int i=0;i<10;i++)
|
|
|
@@ -364,6 +386,33 @@ QString SerialInfo::on_Rec_PDUStatus()
|
|
|
}
|
|
|
}
|
|
|
return Allrecinfo;
|
|
|
+ */
|
|
|
+ // 如接收成功,会返回接收的字符串,失败返回空字符串
|
|
|
+ QString Allrecinfo="";
|
|
|
+
|
|
|
+ QAndroidJniObject recbacktring = QAndroidJniObject::callStaticObjectMethod(
|
|
|
+ "usb/USBListActivity",
|
|
|
+ "readData",
|
|
|
+ "()Ljava/lang/String;");
|
|
|
+
|
|
|
+ QString recinfo=recbacktring.toString();
|
|
|
+ // 发送字节计数并显示
|
|
|
+ if(recinfo!="")
|
|
|
+ {
|
|
|
+ QString hexString;
|
|
|
+ QByteArray byteArray = recinfo.toLatin1(); // 将 QString 转换为 QByteArray,使用 UTF-8 编码
|
|
|
+ for (char byte : byteArray) {
|
|
|
+ // 使用 printf 格式化输出或 qDebug() 输出每个字节的十六进制表示
|
|
|
+ hexString += QString("%1 ").arg(static_cast<unsigned char>(byte), 2, 16, QChar('0'));
|
|
|
+ }
|
|
|
+ Allrecinfo=hexString;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return Allrecinfo;
|
|
|
}
|
|
|
|
|
|
uint16_t SerialInfo::crc16_ccitt(char* data, size_t length) {
|
|
|
@@ -424,4 +473,29 @@ QVector<quint16> SerialInfo::parseModbusResponse(const QString &hexString, int r
|
|
|
|
|
|
return registers;
|
|
|
}
|
|
|
+void SerialInfo::initPDUStatus()
|
|
|
+{
|
|
|
+ /*
|
|
|
+ m_PDUAllInfo.AllVoltage_L1 =0;
|
|
|
+ m_PDUAllInfo.AllCurrent_L1=0;
|
|
|
+ m_PDUAllInfo.AllPower_L1=0;
|
|
|
+ m_PDUAllInfo.AllConsumption_L1=0;
|
|
|
+
|
|
|
+ m_PDUAllInfo.AllVoltage_L2=0;
|
|
|
+ m_PDUAllInfo.AllCurrent_L2=0;
|
|
|
+ m_PDUAllInfo.AllPower_L2=0;
|
|
|
+ m_PDUAllInfo.AllConsumption_L2=0;
|
|
|
+
|
|
|
+ m_PDUAllInfo.AllVoltage_L3=0;
|
|
|
+ m_PDUAllInfo.AllCurrent_L3=0;
|
|
|
+ m_PDUAllInfo.AllPower_L3=0;
|
|
|
+ m_PDUAllInfo.AllConsumption_L3=0;
|
|
|
+ */
|
|
|
|
|
|
+ m_PDUAllInfo.Sensor_Temperature=0;
|
|
|
+ m_PDUAllInfo.Sensor_Humidity=0;
|
|
|
+ m_PDUAllInfo.Sensor_CO2=0;
|
|
|
+ m_PDUAllInfo.Sensor_INTemperature=0;
|
|
|
+ m_PDUAllInfo.Sensor_OUTTemperature=0;
|
|
|
+ m_PDUAllInfo.Sensor_WaterImmersion=false;
|
|
|
+}
|