diff --git a/src/sis8300llrfDevice.cpp b/src/sis8300llrfDevice.cpp index ce0dee8d42c5ad1ffc05c9f4015bf876ca5b4a7f..6e9d6732b70503109fdbfecdee0f5ff0dea0c1c2 100644 --- a/src/sis8300llrfDevice.cpp +++ b/src/sis8300llrfDevice.cpp @@ -1195,6 +1195,13 @@ ndsStatus sis8300llrfDevice::controlLoopTask(nds::TaskServiceBase &service) { * LOCKING THE DEVICE AND CG PORT!!! *****/ lock(); + //This avoids the loop task start when is at reset or init state + if (getCurrentState() != nds::DEVICE_STATE_ON) + { + unlock(); + continue; + } + NDS_INF("Before clear latched"); status = sis8300llrfdrv_clear_latched_statuses(_DeviceUser, SIS8300LLRFDRV_STATUS_CLR_GENERAL | SIS8300LLRFDRV_STATUS_CLR_SIGMON); SIS8300NDS_STATUS_ASSERT_UNLOCK("sis8300llrfdrv_clear_gop", status, this); @@ -1254,6 +1261,13 @@ ndsStatus sis8300llrfDevice::controlLoopTask(nds::TaskServiceBase &service) { *****/ lock(); + //This avoids the loop task run when is at reset or init state + if (getCurrentState() != nds::DEVICE_STATE_ON) + { + unlock(); + continue; + } + getFirmwareStatus(); getFirmwareInfo(); if (_FSMFirmware >= fsm_state_lps_daq){