“Node is not writable” exception after a camera crash

I solved this issue by connecting and disconnecting to the camera SW wise.

Starting capture by launching the following code in a separate thread:


void Cam::MainThread(){
    m_cameraHandler->BeginAcquisition();
    while(m_threadCtx.wait(ZERO_DURATION)){ //sleepwait
        try {

            ImagePtr pResultImage = m_cameraHandler->GetNextImage(1000);
            const size_t width = pResultImage->GetWidth();
            const size_t height = pResultImage->GetHeight();

            cv::Mat_<uint16_t> img(height,width);
            memcpy(img.data,pResultImage->GetData(),pResultImage->GetWidth()*pResultImage->GetHeight()*sizeof(uint16_t));
                        
            if (pResultImage->IsIncomplete())
                cout << "Error";
            else {
                pResultImage->Release();
            }
        }
        catch (Spinnaker::Exception& e)
        {
            CLerror << "Error: " << e.what();
        }
    }
}

Then stopping the camera

    m_threadCtx.stop();
    m_pMainThread->join();
    m_cameraHandler->EndAcquisition();
    m_cameraHandler->DeInit();
    m_cameraHandler = nullptr;
    m_spCameraList = nullptr;

    delete(m_pMainThread);

After that you can open the camera and upload the file again and it should work.

worked for me

CLICK HERE to find out more related problems solutions.

Leave a Comment

Your email address will not be published.

Scroll to Top