ENVIRONMENT

C++ in MFC using namespace Vieworks::vivix,
Instance : CVivixSDK vivixSDK; CDetector* detectorIns;
C# in Winform using Vieworks.vivix.net, using Vieworks.vivix.net.detector; using Vieworks.vivix.net.scu;
Instance: VivixNet netSDK; DETECTOR_INFO DetInfo;Detector detectorIns;

DISCRIPTION

Offsetcalibration process is needed too much API. but you can perform offset calibration simply by offsetrefresh API, but offsetrefresh can be performed after performing offset calibration or being loaded

C++
void CSDKCplusExampleApp::TestOffsetrefresh(int count)
{
    RESULT nResult;
    if (detectorIns != NULL)
    {
        detectorIns->SetNotifyCalibrationOffsetRefreshStep(NotifyCalibrationOffsetRefreshStep);
        detectorIns->SetNotifyCalibrationOffsetRefreshResult(NotifyCalibrationOffsetRefreshResult);
        nResult = detectorIns->OffsetRefresh(count);
        if (nResult == Vieworks::vivix::RESULT::RESULT_SUCCESS)
        {
            // Succeeded to start offset refresh.
        }
        else
        {
            // Failed to start offset refresh.
        }
    }

}

void CSDKCplusExampleApp::NotifyCalibrationOffsetRefreshStep(Vieworks::vivix::DETECTOR_ID id, unsigned int stage, float avgValue, Vieworks::vivix::IMAGE_INFO* image)
{

}

void CSDKCplusExampleApp::NotifyCalibrationOffsetRefreshResult(DETECTOR_ID id, OFFSET_REFRESH_STATUS status)
{
    switch (status)
    {
    case OFFSET_REFRESH_STATUS::OFFSET_REFRESH_DONE:
        // Succeeded to refresh offset.
        break;
    default:
        // Failed to refresh offset.
        break;
    }
}

 

C#
public void TestOffsetRefresh(int count)
{
    if (detector != null)
    {
        detector.SetDelegateCalibrationOffsetRefreshStep(OnDelegateCalibrationOffsetRefreshStep);
        detector.SetDelegateCalibrationOffsetRefreshResult(OnDelegateCalibrationOffsetRefreshResult);
        result = detector.OffsetRefresh(count);
        if (result == RESULT.RESULT_SUCCESS)
        {
            // Succeeded to start offset refresh.
        }
        else
        {
            // Failed to start offset refresh.
        }
    }

}

public void OnDelegateCalibrationOffsetRefreshStep(int id, uint stage, float avgValue, IMAGE_INFO image)
{

}

public void OnDelegateCalibrationOffsetRefreshResult(int id, OFFSET_REFRESH_STATUS status)
{
    switch (status)
    {
    case OFFSET_REFRESH_STATUS.OFFSET_REFRESH_DONE:
        // Succeeded to refresh offset.
        break;
    default:
        // Failed to refresh offset.
        break;
    }
}