Untitled

mail@pastecode.io avatar
unknown
c_cpp
7 months ago
2.3 kB
1
Indexable
Never
    esp_sleep_enable_timer_wakeup(time_in_us);
    time_awoken = millis();
}


void loop() {
    if(pServer->getConnectedCount()) {
        //Everything related to power management
        NimBLEService* pBatriSvc = pServer->getServiceByUUID(BATTERY_PWR_SRVI_UUID);
        if(pBatriSvc) {
            NimBLECharacteristic* pChr = pBatriSvc->getCharacteristic(BATTERY_PWR_VLTG_CHAR_UUID);

            log_i("%s","We got the Batri service");

            int btriVoltage = 0;

            if(pChr) {

                //We don't want to communicate a negative value (?)
                if(btriVoltage == BATTERY_NOT_CONNECTED_CODE)
                {
                    pChr->setValue("0");
                }
                else
                {
                    pChr->setValue(std::to_string(0));
                }

                log_i("%s",CCIDDesc->getStringValue());
                if(pChr->getSubscribedCount()>0)
                {
                    pChr->notify(true);
                }
            }


            NimBLECharacteristic * pBtriWarnChar = pBatriSvc->getCharacteristic(BATTERY_PWR_WARN_CHAR_UUID);

            //We now check to see if we should warn the client of the low battery power
            if(pBtriWarnChar)
            {
                if(btriVoltage<BATTERY_THRESHOLD && btriVoltage != BATTERY_NOT_CONNECTED_CODE)
                {
                    pBtriWarnChar->setValue("1");
                    pBtriWarnChar->notify(true);
                }
                else if (pBtriWarnChar->getValue() == "1")
                {
                    pBtriWarnChar->setValue("0");
                    pBtriWarnChar->notify(true);
                }
            }

        }

        NimBLEService * pSWCSvc = pServer->getServiceByUUID(SWC_SRVI_UUID);
        if(pSWCSvc)
        {
            NimBLECharacteristic* pSWCReadChr = pSWCSvc->getCharacteristic(SWC_VWC_CHAR_UUID);
            if(pSWCReadChr->getSubscribedCount()>0)
            {
                pSWCReadChr->notify(0);
            }
        }


        Serial.println(millis() - time_awoken );
        if(millis() - time_awoken  > (60*1000))
        {
            esp_deep_sleep_start();
        }