修改多线程采集数据

N938
XI.CHEN 6 months ago
parent 517323a28e
commit 101f136036

@ -438,6 +438,7 @@ CPhoneDevice::CPhoneDevice(JavaVM* vm, jobject service, const std::string& appPa
m_sensorsStatus = false;
m_lastTime = 0;
m_shouldStopWaiting = false;
m_collecting = false;
RegisterHandlerForSignal(SIGUSR2);
@ -3508,7 +3509,20 @@ int CPhoneDevice::GetIceData(IDevice::ICE_INFO *iceInfo, IDevice::ICE_TAIL *iceT
m_tempData.instantaneous_winddirection = 0xff;
m_tempData.humidity = 0xff;
std::unique_lock<std::mutex> lock(m_collectDataLocker);
if (!m_collecting.load()) {
m_collecting.store(true);
m_CollectDatacv.notify_all();
lock.unlock();
Collect_sensor_data(); //15s
lock.lock();
m_collecting.store(false);
m_CollectDatacv.notify_all();
} else {
m_CollectDatacv.wait(lock, [this]{ return !m_collecting.load(); });
// m_collecting.store(false);
}
Data_DEF airt;
//++等值覆冰厚度, 综合悬挂载荷, 不均衡张力差 置0
iceInfo->equal_icethickness = 0xff;
@ -3629,7 +3643,19 @@ int CPhoneDevice::GetWData(IDevice::WEATHER_INFO *weatherInfo)
m_tempData.humidity = 0xff;
bool status = 1;
std::unique_lock<std::mutex> lock(m_collectDataLocker);
if (!m_collecting.load()) {
m_collecting.store(true);
m_CollectDatacv.notify_all();
lock.unlock();
Collect_sensor_data(); //15s
lock.lock();
m_collecting.store(false);
m_CollectDatacv.notify_all();
} else {
m_CollectDatacv.wait(lock, [this]{ return !m_collecting.load(); });
// m_collecting.store(false);
}
Data_DEF airt;
{

@ -402,6 +402,10 @@ protected:
IDevice::ICE_TAIL m_tempData;
mutable std::mutex m_dataLocker;
mutable std::mutex m_collectDataLocker;
std::condition_variable m_CollectDatacv;
std::atomic<bool> m_collecting;
};

Loading…
Cancel
Save