mirror of
https://github.com/mysensors/MySensors.git
synced 2026-02-20 01:21:27 +01:00
Enable light sleep on ESP32. Fixed style (#1546)
This commit is contained in:
@@ -71,8 +71,8 @@ void hwWriteConfig(const int addr, uint8_t value)
|
|||||||
bool hwUniqueID(unique_id_t *uniqueID)
|
bool hwUniqueID(unique_id_t *uniqueID)
|
||||||
{
|
{
|
||||||
uint64_t val = ESP.getEfuseMac();
|
uint64_t val = ESP.getEfuseMac();
|
||||||
(void)memcpy((void *)uniqueID, (void *)&val, 8);
|
(void)memcpy(static_cast<void *>(uniqueID), (void *)&val, 8);
|
||||||
(void)memset((void *)(uniqueID + 8), MY_HWID_PADDING_BYTE, 8); // padding
|
(void)memset(static_cast<void *>(uniqueID + 8), MY_HWID_PADDING_BYTE, 8); // padding
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,7 +82,7 @@ ssize_t hwGetentropy(void *__buffer, size_t __length)
|
|||||||
if (__length > 256) {
|
if (__length > 256) {
|
||||||
__length = 256;
|
__length = 256;
|
||||||
}
|
}
|
||||||
uint8_t *dst = (uint8_t *)__buffer;
|
uint8_t *dst = static_cast<uint8_t *>(__buffer);
|
||||||
// get random numbers
|
// get random numbers
|
||||||
for (size_t i = 0; i < __length; i++) {
|
for (size_t i = 0; i < __length; i++) {
|
||||||
dst[i] = (uint8_t)esp_random();
|
dst[i] = (uint8_t)esp_random();
|
||||||
@@ -92,31 +92,51 @@ ssize_t hwGetentropy(void *__buffer, size_t __length)
|
|||||||
|
|
||||||
int8_t hwSleep(uint32_t ms)
|
int8_t hwSleep(uint32_t ms)
|
||||||
{
|
{
|
||||||
// TODO: Not supported!
|
esp_sleep_enable_timer_wakeup((uint64_t)ms * 1000);
|
||||||
(void)ms;
|
esp_light_sleep_start();
|
||||||
return MY_SLEEP_NOT_POSSIBLE;
|
return MY_WAKE_UP_BY_TIMER;
|
||||||
}
|
}
|
||||||
|
|
||||||
int8_t hwSleep(const uint8_t interrupt, const uint8_t mode, uint32_t ms)
|
int8_t hwSleep(const uint8_t interrupt, const uint8_t mode, uint32_t ms)
|
||||||
{
|
{
|
||||||
// TODO: Not supported!
|
if(mode == FALLING) {
|
||||||
(void)interrupt;
|
gpio_wakeup_enable((gpio_num_t)interrupt, GPIO_INTR_LOW_LEVEL);
|
||||||
(void)mode;
|
} else if (mode == RISING) {
|
||||||
(void)ms;
|
gpio_wakeup_enable((gpio_num_t)interrupt, GPIO_INTR_HIGH_LEVEL);
|
||||||
return MY_SLEEP_NOT_POSSIBLE;
|
} else {
|
||||||
|
return MY_SLEEP_NOT_POSSIBLE;
|
||||||
|
}
|
||||||
|
esp_sleep_enable_gpio_wakeup();
|
||||||
|
esp_sleep_enable_timer_wakeup((uint64_t)ms * 1000);
|
||||||
|
esp_light_sleep_start();
|
||||||
|
gpio_wakeup_disable((gpio_num_t)interrupt);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int8_t hwSleep(const uint8_t interrupt1, const uint8_t mode1, const uint8_t interrupt2,
|
int8_t hwSleep(const uint8_t interrupt1, const uint8_t mode1, const uint8_t interrupt2,
|
||||||
const uint8_t mode2,
|
const uint8_t mode2,
|
||||||
uint32_t ms)
|
uint32_t ms)
|
||||||
{
|
{
|
||||||
// TODO: Not supported!
|
if(mode1 == FALLING) {
|
||||||
(void)interrupt1;
|
gpio_wakeup_enable((gpio_num_t)interrupt1, GPIO_INTR_LOW_LEVEL);
|
||||||
(void)mode1;
|
} else if (mode1 == RISING) {
|
||||||
(void)interrupt2;
|
gpio_wakeup_enable((gpio_num_t)interrupt1, GPIO_INTR_HIGH_LEVEL);
|
||||||
(void)mode2;
|
} else {
|
||||||
(void)ms;
|
return MY_SLEEP_NOT_POSSIBLE;
|
||||||
return MY_SLEEP_NOT_POSSIBLE;
|
}
|
||||||
|
if(mode2 == FALLING) {
|
||||||
|
gpio_wakeup_enable((gpio_num_t)interrupt2, GPIO_INTR_LOW_LEVEL);
|
||||||
|
} else if (mode2 == RISING) {
|
||||||
|
gpio_wakeup_enable((gpio_num_t)interrupt2, GPIO_INTR_HIGH_LEVEL);
|
||||||
|
} else {
|
||||||
|
return MY_SLEEP_NOT_POSSIBLE;
|
||||||
|
}
|
||||||
|
esp_sleep_enable_gpio_wakeup();
|
||||||
|
esp_sleep_enable_timer_wakeup((uint64_t)ms * 1000);
|
||||||
|
esp_light_sleep_start();
|
||||||
|
gpio_wakeup_disable((gpio_num_t)interrupt1);
|
||||||
|
gpio_wakeup_disable((gpio_num_t)interrupt2);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t hwCPUVoltage(void)
|
uint16_t hwCPUVoltage(void)
|
||||||
|
|||||||
Reference in New Issue
Block a user