Important Cookie Information

This website uses absolutely necessary cookies. If you consent to the use of convenience cookies, please click “Yes, I agree.” By clicking on “Privacy Settings.” you can change this setting at any time and withdraw your given consent. Icon down see more You can find detailled information in our Privacy Policy Icon forward-right
Icon up see less

Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    BSEC lib on rtos

    New Poster

    BSEC lib on rtos

    I am trying to run the bsec library in combination with an http server, but the bsec library for the bme680 overrules the standard while(1) loop which I want to use to poll the request to the server. The problem when polling the server in the write output function is that it takes a while before the response.

    Can I use the bsec library for the bme680 in a mbed+rtos configuration or is it not thread save? If it is not thread save I there a possiblity?

    1 REPLY 1
    Highlighted
    Community Moderator

    Re: BSEC lib on rtos

    In bsec_integration.c sample code, the while(1) loop in bsec_iot_loop() provides an example of implementation of the library's workflow. The blocking period (sleep() in the example) could alternatively be used to complete other tasks.

    If we take a look at the implementation of the BSEC Arduino library, the run() function is non-blocking, and calling BSEC only if the expected period was elapsed since the previous call. Could such a method be implemented in your project to cover both http polling and BSEC in a single loop? The only requirement for BSEC to run properly would be that the next run() call should happen within the expected sampling period (i.e. the http polling should not be blocking either).

    If the above doesn't cover your use-case, feel free to share some code snippet if possible to have a deep look.

    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