Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    handling bsec library errors like BSEC_W_SC_CALL_TIMING_VIOLATION

    jonathan_c
    New Poster

    handling bsec library errors like BSEC_W_SC_CALL_TIMING_VIOLATION

    I'm using the bme680 with the bsec library and the bsec iot example code as my starting point.  I notice that the sample code does not check the status for the call to bsec_sensor_control().  Under normal circumstances this always returns 0 but what if it doesn't?  If I force an error with an invalid timestamp I notice it never recovers.  What about bsec_do_steps()?  The status code from this call is just passed to a user provided function.

    Thanks,

    Jonathan

    3 REPLIES 3
    BSTRobin
    Community Moderator

    Re: handling bsec library errors like BSEC_W_SC_CALL_TIMING_VIOLATION

    Hello jonathan_c,

    There was BSEC iot example code in another ticket, could you refer it?
    https://community.bosch-sensortec.com/t5/MEMS-sensors-forum/BME680-with-BSEC-produces-on-0-0s-even-a...

    jonathan_c
    New Poster

    Re: handling bsec library errors like BSEC_W_SC_CALL_TIMING_VIOLATION

    Not really relevant at all.  The link was a case of someone setting things up incorrectly.  My point was that the libraries return error codes but none of the example code actually handles the error codes.  Are the codes only for cases where someone has made a coding mistake?  What if someone has a higher level process that starves the bme680 process for long enough that it gets a BSEC_W_SC_CALL_TIMING_VIOLATION when it finally runs?  How do I recover?  My goal is to have this run for years and I don't want to reset everything when their is an error.

    BSTRobin
    Community Moderator

    Re: handling bsec library errors like BSEC_W_SC_CALL_TIMING_VIOLATION

    Hello jonathan_c,
    On my side, it worked well after I migrating BSEC to MCU. bsec_sensor_control() always returned 0.
    You forced an error with an invalid timestamp, this is unreasonable in itself. The algorithm needs to be got correct input parameters, and it must ensure the parameters are correct.

    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist