From c2aa754b4b47518d2b367eabcd5ff336f6c4b968 Mon Sep 17 00:00:00 2001 From: "XI.CHEN" <2311041011@qq.com> Date: Wed, 11 Dec 2024 17:45:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=AA=E6=8E=A5=E4=BC=A0=E6=84=9F=E5=99=A8?= =?UTF-8?q?=E4=B8=8D=E4=BD=9C=E4=B8=BA=E9=87=87=E9=9B=86=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/PhoneDevice.cpp | 327 ++++++++++++++++++++----------- 1 file changed, 214 insertions(+), 113 deletions(-) diff --git a/app/src/main/cpp/PhoneDevice.cpp b/app/src/main/cpp/PhoneDevice.cpp index 16a81573..d6322365 100644 --- a/app/src/main/cpp/PhoneDevice.cpp +++ b/app/src/main/cpp/PhoneDevice.cpp @@ -3537,32 +3537,59 @@ int CPhoneDevice::GetIceData(IDevice::ICE_INFO *iceInfo, IDevice::ICE_TAIL *iceT if(sensorParam[num].SensorsType == RALLY_PROTOCOL && sensorParam[num].IsNoInsta == 1) { GetPullValue(num, &airt); - iceInfo->t_sensor_data[pullno].original_tension = airt.EuValue; - XYLOG(XYLOG_SEVERITY_INFO,"地址%d,采样状态 = %d,拉力 = %f", sensorParam[num].devaddr, airt.AiState, iceInfo->t_sensor_data[pullno].original_tension); - if(airt.AiState != 2 && iceInfo->t_sensor_data[pullno].original_tension == 0) + if(airt.AiState == 255 || airt.AiState == -1) { - XYLOG(XYLOG_SEVERITY_INFO,"地址%d,采样状态 = %d,拉力未采集到数据,重新采样", sensorParam[num].devaddr, airt.AiState); - status = 0; + iceInfo->t_sensor_data[pullno].original_tension = 0xff; + XYLOG(XYLOG_SEVERITY_INFO, "地址%d,采样状态 = %d,拉力未接传感器", + sensorParam[num].devaddr, airt.AiState); + }else + { + iceInfo->t_sensor_data[pullno].original_tension = airt.EuValue; + XYLOG(XYLOG_SEVERITY_INFO,"地址%d,采样状态 = %d,拉力 = %f", sensorParam[num].devaddr, airt.AiState, iceInfo->t_sensor_data[pullno].original_tension); + if(airt.AiState != 2 && iceInfo->t_sensor_data[pullno].original_tension == 0) + { + XYLOG(XYLOG_SEVERITY_INFO,"地址%d,采样状态 = %d,拉力未采集到数据,重新采样", sensorParam[num].devaddr, airt.AiState); + status = 0; + } } pullno++; } else if(sensorParam[num].SensorsType == SLANT_PROTOCOL && sensorParam[num].IsNoInsta == 1) { GetAngleValue(num, &airt, 0); - iceInfo->t_sensor_data[angleno].deflection_angle = airt.EuValue; - XYLOG(XYLOG_SEVERITY_INFO,"地址%d,采样状态 = %d,x = %f", sensorParam[num].devaddr, airt.AiState, iceInfo->t_sensor_data[angleno].deflection_angle); - if(airt.AiState != 2 && iceInfo->t_sensor_data[angleno].deflection_angle == 0) + if(airt.AiState == 255 || airt.AiState == -1) { - XYLOG(XYLOG_SEVERITY_INFO,"地址%d,采样状态 = %d,倾角x未采集到数据,重新采样", sensorParam[num].devaddr, airt.AiState); - status = 0; + iceInfo->t_sensor_data[angleno].deflection_angle = 0xff; + XYLOG(XYLOG_SEVERITY_INFO, "地址%d,采样状态 = %d,倾角x未接传感器", + sensorParam[num].devaddr, airt.AiState); + }else + { + iceInfo->t_sensor_data[angleno].deflection_angle = airt.EuValue; + XYLOG(XYLOG_SEVERITY_INFO, "地址%d,采样状态 = %d,x = %f", sensorParam[num].devaddr, + airt.AiState, iceInfo->t_sensor_data[angleno].deflection_angle); + if (airt.AiState != 2 && iceInfo->t_sensor_data[angleno].deflection_angle == 0) + { + XYLOG(XYLOG_SEVERITY_INFO, "地址%d,采样状态 = %d,倾角x未采集到数据,重新采样", + sensorParam[num].devaddr, airt.AiState); + status = 0; + } } - GetAngleValue(num, &airt, 1); - iceInfo->t_sensor_data[angleno].windage_yaw_angle = airt.EuValue; - XYLOG(XYLOG_SEVERITY_INFO,"地址%d,采样状态 = %d,y = %f", sensorParam[num].devaddr, airt.AiState, iceInfo->t_sensor_data[angleno].windage_yaw_angle); - if(airt.AiState != 2 && iceInfo->t_sensor_data[angleno].windage_yaw_angle == 0) + if(airt.AiState == 255 || airt.AiState == -1) { - XYLOG(XYLOG_SEVERITY_INFO,"地址%d,采样状态 = %d,倾角y未采集到数据,重新采样", sensorParam[num].devaddr, airt.AiState); - status = 0; + iceInfo->t_sensor_data[angleno].windage_yaw_angle =0xff; + XYLOG(XYLOG_SEVERITY_INFO, "地址%d,采样状态 = %d,倾角y未接传感器", + sensorParam[num].devaddr, airt.AiState); + }else + { + iceInfo->t_sensor_data[angleno].windage_yaw_angle = airt.EuValue; + XYLOG(XYLOG_SEVERITY_INFO, "地址%d,采样状态 = %d,y = %f", sensorParam[num].devaddr, + airt.AiState, iceInfo->t_sensor_data[angleno].windage_yaw_angle); + if (airt.AiState != 2 && iceInfo->t_sensor_data[angleno].windage_yaw_angle == 0) + { + XYLOG(XYLOG_SEVERITY_INFO, "地址%d,采样状态 = %d,倾角y未采集到数据,重新采样", + sensorParam[num].devaddr, airt.AiState); + status = 0; + } } angleno++; @@ -3572,59 +3599,95 @@ int CPhoneDevice::GetIceData(IDevice::ICE_INFO *iceInfo, IDevice::ICE_TAIL *iceT { std::lock_guard lock(m_dataLocker); GetWindSpeedData(&airt); - iceTail->instantaneous_windspeed = airt.EuValue; - if(airt.AiState != 2 && iceTail->instantaneous_windspeed == 0 && m_tempData.instantaneous_windspeed == 0xff) + if(airt.AiState == 255 || airt.AiState == -1) { - XYLOG(XYLOG_SEVERITY_INFO,"采样状态 = %d,覆冰风速未采集到数据,重新采样",airt.AiState); - status = 0; - }else if(airt.AiState == 2 && m_tempData.instantaneous_windspeed == 0xff) + iceTail->instantaneous_windspeed = 0xff; + XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,覆冰风速未接传感器", + airt.AiState); + }else { - m_tempData.instantaneous_windspeed = iceTail->instantaneous_windspeed; - }else if(iceTail->instantaneous_windspeed == 0 && m_tempData.instantaneous_windspeed != 0xff) - { - iceTail->instantaneous_windspeed = m_tempData.instantaneous_windspeed; + iceTail->instantaneous_windspeed = airt.EuValue; + if (airt.AiState != 2 && iceTail->instantaneous_windspeed == 0 && m_tempData.instantaneous_windspeed == 0xff) + { + XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,覆冰风速未采集到数据,重新采样", airt.AiState); + status = 0; + } else if (airt.AiState == 2 && m_tempData.instantaneous_windspeed == 0xff) + { + m_tempData.instantaneous_windspeed = iceTail->instantaneous_windspeed; + } else if (iceTail->instantaneous_windspeed == 0 && m_tempData.instantaneous_windspeed != 0xff) + { + iceTail->instantaneous_windspeed = m_tempData.instantaneous_windspeed; + } } GetWindDirectionData(&airt); - iceTail->instantaneous_winddirection = airt.EuValue; - if(airt.AiState != 2 && iceTail->instantaneous_winddirection == 0 && m_tempData.instantaneous_winddirection == 0xff) - { - XYLOG(XYLOG_SEVERITY_INFO,"采样状态 = %d,覆冰风向未采集到数据,重新采样",airt.AiState); - status = 0; - }else if(airt.AiState == 2 && m_tempData.instantaneous_winddirection == 0xff) + if(airt.AiState == 255 || airt.AiState == -1) { - m_tempData.instantaneous_winddirection = iceTail->instantaneous_winddirection; - } else if(iceTail->instantaneous_winddirection == 0 && m_tempData.instantaneous_winddirection != 0xff) + iceTail->instantaneous_winddirection = 0xff; + XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,覆冰风向未接传感器", + airt.AiState); + }else { - iceTail->instantaneous_winddirection = m_tempData.instantaneous_winddirection; + iceTail->instantaneous_winddirection = airt.EuValue; + if (airt.AiState != 2 && iceTail->instantaneous_winddirection == 0 && + m_tempData.instantaneous_winddirection == 0xff) + { + XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,覆冰风向未采集到数据,重新采样", airt.AiState); + status = 0; + } else if (airt.AiState == 2 && m_tempData.instantaneous_winddirection == 0xff) + { + m_tempData.instantaneous_winddirection = iceTail->instantaneous_winddirection; + } else if (iceTail->instantaneous_winddirection == 0 && m_tempData.instantaneous_winddirection != 0xff) + { + iceTail->instantaneous_winddirection = m_tempData.instantaneous_winddirection; + } } GetAirTempData(&airt); - iceTail->air_temperature = airt.EuValue; - if(airt.AiState != 2 && iceTail->air_temperature == 0 && m_tempData.air_temperature == 0xff) + if(airt.AiState == 255 || airt.AiState == -1) { - XYLOG(XYLOG_SEVERITY_INFO,"采样状态 = %d,覆冰温度未采集到数据,重新采样",airt.AiState); - status = 0; - }else if(airt.AiState == 2 && m_tempData.air_temperature == 0xff) - { - m_tempData.air_temperature = iceTail->air_temperature; - }else if(iceTail->air_temperature == 0 && m_tempData.air_temperature != 0xff) + iceTail->air_temperature = 0xff; + XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,覆冰温度未接传感器", + airt.AiState); + }else { - iceTail->air_temperature = m_tempData.air_temperature; + iceTail->air_temperature = airt.EuValue; + if (airt.AiState != 2 && iceTail->air_temperature == 0 && + m_tempData.air_temperature == 0xff) + { + XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,覆冰温度未采集到数据,重新采样", + airt.AiState); + status = 0; + } else if (airt.AiState == 2 && m_tempData.air_temperature == 0xff) + { + m_tempData.air_temperature = iceTail->air_temperature; + } else if (iceTail->air_temperature == 0 && m_tempData.air_temperature != 0xff) + { + iceTail->air_temperature = m_tempData.air_temperature; + } } GetHumidityData(&airt); - iceTail->humidity = airt.EuValue; - if(airt.AiState != 2 && iceTail->humidity == 0 && m_tempData.humidity == 0xff) + if(airt.AiState == 255 || airt.AiState == -1) { - XYLOG(XYLOG_SEVERITY_INFO,"采样状态 = %d,覆冰湿度未采集到数据,重新采样",airt.AiState); - status = 0; - }else if(airt.AiState == 2 && m_tempData.humidity == 0xff) + iceTail->humidity = 0xff; + XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,覆冰湿度未接传感器", + airt.AiState); + }else { - m_tempData.humidity = iceTail->humidity; - }else if(iceTail->humidity == 0 && m_tempData.humidity != 0xff) - { - iceTail->humidity = m_tempData.humidity; + iceTail->humidity = airt.EuValue; + if (airt.AiState != 2 && iceTail->humidity == 0 && m_tempData.humidity == 0xff) + { + XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,覆冰湿度未采集到数据,重新采样", + airt.AiState); + status = 0; + } else if (airt.AiState == 2 && m_tempData.humidity == 0xff) + { + m_tempData.humidity = iceTail->humidity; + } else if (iceTail->humidity == 0 && m_tempData.humidity != 0xff) + { + iceTail->humidity = m_tempData.humidity; + } } } @@ -3661,91 +3724,129 @@ int CPhoneDevice::GetWData(IDevice::WEATHER_INFO *weatherInfo) { std::lock_guard lock(m_dataLocker); GetWeatherData(&airt, 2); - weatherInfo->avg_windspeed_10min = airt.EuValue; - weatherInfo->extreme_windspeed = airt.EuValue; - weatherInfo->standard_windspeed = airt.EuValue; - if (airt.AiState != 2 && weatherInfo->avg_windspeed_10min == 0 && - m_tempData.instantaneous_windspeed == 0xff) - { - XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,气象风速未采集到数据,重新采样", airt.AiState); - status = 0; - } else if(airt.AiState == 2 && m_tempData.instantaneous_windspeed == 0xff) - { - m_tempData.instantaneous_windspeed = weatherInfo->avg_windspeed_10min; - }else if(weatherInfo->avg_windspeed_10min == 0 && m_tempData.instantaneous_windspeed != 0xff) - { - weatherInfo->avg_windspeed_10min = m_tempData.instantaneous_windspeed; - weatherInfo->extreme_windspeed = m_tempData.instantaneous_windspeed; - weatherInfo->standard_windspeed = m_tempData.instantaneous_windspeed; + if(airt.AiState == 255 || airt.AiState == -1) + { + weatherInfo->avg_windspeed_10min = 0xff; + weatherInfo->extreme_windspeed = 0xff; + weatherInfo->standard_windspeed = 0xff; + XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,气象风速未接传感器", airt.AiState); + }else + { + weatherInfo->avg_windspeed_10min = airt.EuValue; + weatherInfo->extreme_windspeed = airt.EuValue; + weatherInfo->standard_windspeed = airt.EuValue; + if (airt.AiState != 2 && weatherInfo->avg_windspeed_10min == 0 && + m_tempData.instantaneous_windspeed == 0xff) + { + XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,气象风速未采集到数据,重新采样", + airt.AiState); + status = 0; + } else if (airt.AiState == 2 && m_tempData.instantaneous_windspeed == 0xff) + { + m_tempData.instantaneous_windspeed = weatherInfo->avg_windspeed_10min; + } else if (weatherInfo->avg_windspeed_10min == 0 && + m_tempData.instantaneous_windspeed != 0xff) + { + weatherInfo->avg_windspeed_10min = m_tempData.instantaneous_windspeed; + weatherInfo->extreme_windspeed = m_tempData.instantaneous_windspeed; + weatherInfo->standard_windspeed = m_tempData.instantaneous_windspeed; + } } GetWeatherData(&airt, 3); - weatherInfo->avg_winddirection_10min = airt.EuValue; - if (airt.AiState != 2 && weatherInfo->avg_winddirection_10min == 0 && - m_tempData.instantaneous_winddirection == 0xff) + if(airt.AiState == 255 || airt.AiState == -1) { - XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,气象风向未采集到数据,重新采样", airt.AiState); - status = 0; - } else if(airt.AiState == 2 && m_tempData.instantaneous_winddirection == 0xff) + weatherInfo->avg_winddirection_10min = 0xff; + XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,气象风向未接传感器", airt.AiState); + }else { - m_tempData.instantaneous_winddirection = weatherInfo->avg_winddirection_10min; - }else if(weatherInfo->winddirection == 0 && m_tempData.instantaneous_winddirection != 0xff) - { - weatherInfo->winddirection = m_tempData.instantaneous_winddirection; + weatherInfo->avg_winddirection_10min = airt.EuValue; + if (airt.AiState != 2 && weatherInfo->avg_winddirection_10min == 0 && + m_tempData.instantaneous_winddirection == 0xff) + { + XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,气象风向未采集到数据,重新采样", airt.AiState); + status = 0; + } else if(airt.AiState == 2 && m_tempData.instantaneous_winddirection == 0xff) + { + m_tempData.instantaneous_winddirection = weatherInfo->avg_winddirection_10min; + }else if(weatherInfo->winddirection == 0 && m_tempData.instantaneous_winddirection != 0xff) + { + weatherInfo->winddirection = m_tempData.instantaneous_winddirection; + } } - GetWeatherData(&airt, 0); - weatherInfo->air_temperature = airt.EuValue; - if (airt.AiState != 2 && weatherInfo->air_temperature == 0 && - m_tempData.air_temperature == 0xff) + if(airt.AiState == 255 || airt.AiState == -1) { - XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,气象温度未采集到数据,重新采样", airt.AiState); - status = 0; - } else if(airt.AiState == 2 && m_tempData.air_temperature == 0xff) - { - m_tempData.air_temperature = weatherInfo->air_temperature; - }else if(weatherInfo->air_temperature == 0 && m_tempData.air_temperature != 0xff) + weatherInfo->air_temperature = 0xff; + XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,气象温度未接传感器", airt.AiState); + }else { - weatherInfo->air_temperature = m_tempData.air_temperature; + weatherInfo->air_temperature = airt.EuValue; + if (airt.AiState != 2 && weatherInfo->air_temperature == 0 && + m_tempData.air_temperature == 0xff) + { + XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,气象温度未采集到数据,重新采样", + airt.AiState); + status = 0; + } else if (airt.AiState == 2 && m_tempData.air_temperature == 0xff) + { + m_tempData.air_temperature = weatherInfo->air_temperature; + } else if (weatherInfo->air_temperature == 0 && m_tempData.air_temperature != 0xff) + { + weatherInfo->air_temperature = m_tempData.air_temperature; + } } GetWeatherData(&airt, 1); - weatherInfo->humidity = airt.EuValue; - if (airt.AiState != 2 && weatherInfo->humidity == 0 && m_tempData.humidity == 0xff) - { - XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,气象湿度未采集到数据,重新采样", airt.AiState); - status = 0; - } else if(airt.AiState == 2 && m_tempData.humidity == 0xff) + if(airt.AiState == 255 || airt.AiState == -1) { - m_tempData.humidity = weatherInfo->humidity; - }else if(weatherInfo->humidity == 0 && m_tempData.humidity != 0xff) + weatherInfo->humidity = 0xff; + XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,气象湿度未接传感器", airt.AiState); + }else { - weatherInfo->humidity = m_tempData.humidity; + weatherInfo->humidity = airt.EuValue; + if (airt.AiState != 2 && weatherInfo->humidity == 0 && m_tempData.humidity == 0xff) + { + XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,气象湿度未采集到数据,重新采样", airt.AiState); + status = 0; + } else if(airt.AiState == 2 && m_tempData.humidity == 0xff) + { + m_tempData.humidity = weatherInfo->humidity; + }else if(weatherInfo->humidity == 0 && m_tempData.humidity != 0xff) + { + weatherInfo->humidity = m_tempData.humidity; + } } GetWeatherData(&airt, 4); weatherInfo->precipitation = airt.EuValue; -// if (airt.AiState != 2 && weatherInfo->precipitation == 0) { -// XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,降雨量未采集到数据,重新采样", -// weatherInfo->precipitation, airt.AiState); -// status = 0; -// } +#if 0 + if (airt.AiState != 2 && weatherInfo->precipitation == 0) { + XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,降雨量未采集到数据,重新采样", + weatherInfo->precipitation, airt.AiState); + status = 0; + } +#endif GetWeatherData(&airt, 5); weatherInfo->air_pressure = airt.EuValue; -// if (airt.AiState != 2 && weatherInfo->air_pressure == 0) { -// XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,气压未采集到数据,重新采样", -// weatherInfo->air_pressure, airt.AiState); -// status = 0; -// } +#if 0 + if (airt.AiState != 2 && weatherInfo->air_pressure == 0) { + XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,气压未采集到数据,重新采样", + weatherInfo->air_pressure, airt.AiState); + status = 0; + } +#endif GetWeatherData(&airt, 6); weatherInfo->radiation_intensity = airt.EuValue; -// if (airt.AiState != 2 && weatherInfo->radiation_intensity == 0) { -// XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,光照强度未采集到数据,重新采样", -// weatherInfo->radiation_intensity, airt.AiState); -// status = 0; -// } +#if 0 + if (airt.AiState != 2 && weatherInfo->radiation_intensity == 0) { + XYLOG(XYLOG_SEVERITY_INFO, "采样状态 = %d,光照强度未采集到数据,重新采样", + weatherInfo->radiation_intensity, airt.AiState); + status = 0; + } +#endif if (status) return true; else