update icons and battery controls

This commit is contained in:
sharandac
2020-08-20 17:07:50 +02:00
parent 1de5d8988b
commit 4a634bfc7e
16 changed files with 3653 additions and 8 deletions

View File

@@ -48,6 +48,7 @@ void blectl_send_event_cb( EventBits_t event, char *msg );
BLEServer *pServer = NULL;
BLECharacteristic *pTxCharacteristic;
BLECharacteristic *pRxCharacteristic;
uint8_t txValue = 0;
char *gadgetbridge_msg = NULL;
@@ -251,7 +252,7 @@ void blectl_setup( void ) {
pTxCharacteristic->setAccessPermissions(ESP_GATT_PERM_READ_ENCRYPTED | ESP_GATT_PERM_WRITE_ENCRYPTED);
pTxCharacteristic->addDescriptor( new BLE2902() );
BLECharacteristic *pRxCharacteristic = pService->createCharacteristic( CHARACTERISTIC_UUID_RX, BLECharacteristic::PROPERTY_WRITE );
pRxCharacteristic = pService->createCharacteristic( CHARACTERISTIC_UUID_RX, BLECharacteristic::PROPERTY_WRITE );
pRxCharacteristic->setAccessPermissions(ESP_GATT_PERM_READ_ENCRYPTED | ESP_GATT_PERM_WRITE_ENCRYPTED);
pRxCharacteristic->setCallbacks( new BleCtlCallbacks() );

View File

@@ -32,8 +32,14 @@ void pmu_setup( TTGOClass *ttgo ) {
// enable coulumb counter
if ( ttgo->power->EnableCoulombcounter() )
log_e("enable coulumb counter failed!");
if ( ttgo->power->setChargingTargetVoltage( AXP202_TARGET_VOL_4_2V ) )
log_e("target voltage set failed!");
if ( pmu_config.charging_target_voltage <= 4200 ) {
if ( ttgo->power->setChargingTargetVoltage( AXP202_TARGET_VOL_4_2V ) )
log_e("target voltage 4.2V set failed!");
}
else {
if ( ttgo->power->setChargingTargetVoltage( AXP202_TARGET_VOL_4_36V ) )
log_e("target voltage 4.36V set failed!");
}
if ( ttgo->power->setChargeControlCur( 300 ) )
log_e("charge current set failed!");
if ( ttgo->power->setAdcSamplingRate( AXP_ADC_SAMPLING_RATE_200HZ ) )
@@ -131,6 +137,8 @@ void pmu_save_config( void ) {
doc["silence_wakeup_time_vbplug"] = pmu_config.silence_wakeup_time_vbplug;
doc["experimental_power_save"] = pmu_config.experimental_power_save;
doc["compute_percent"] = pmu_config.compute_percent;
doc["charging_target_voltage"] = pmu_config.charging_target_voltage;
doc["designed_battery_cap"] = pmu_config.designed_battery_cap;
if ( serializeJsonPretty( doc, file ) == 0) {
log_e("Failed to write config file");
@@ -163,6 +171,8 @@ void pmu_read_config( void ) {
pmu_config.silence_wakeup_time_vbplug = doc["compute_percent"].as<int8_t>() | 3;
pmu_config.experimental_power_save = doc["experimental_power_save"].as<bool>() | false;
pmu_config.compute_percent = doc["compute_percent"].as<bool>() | false;
pmu_config.charging_target_voltage = doc["charging_target_voltage"].as<int32_t>() | 4200;
pmu_config.designed_battery_cap = doc["designed_battery_cap"].as<int32_t>() | 300;
}
doc.clear();
}
@@ -195,6 +205,10 @@ bool pmu_get_silence_wakeup( void ) {
return( pmu_config.silence_wakeup );
}
int32_t pmu_get_designed_battery_cap( void ) {
return( pmu_config.designed_battery_cap );
}
void pmu_set_silence_wakeup( bool value ) {
pmu_config.silence_wakeup = value;
pmu_save_config();
@@ -277,7 +291,7 @@ int32_t pmu_get_battery_percent( TTGOClass *ttgo ) {
}
if ( pmu_get_calculated_percent() ) {
return( ( ttgo->power->getCoulombData() / PMU_BATTERY_CAP ) * 100 );
return( ( ttgo->power->getCoulombData() / pmu_config.designed_battery_cap ) * 100 );
}
else {
return( ttgo->power->getBattPercentage() );

View File

@@ -26,8 +26,6 @@
#define PMU_EVENT_AXP_INT _BV(0)
#define PMU_BATTERY_CAP 300
#define PMU_CONFIG_FILE "/pmu.cfg"
#define PMU_JSON_CONFIG_FILE "/pmu.json"
@@ -37,6 +35,8 @@
bool silence_wakeup = true;
uint8_t silence_wakeup_time = 60;
uint8_t silence_wakeup_time_vbplug = 3;
int32_t charging_target_voltage = 3200;
int32_t designed_battery_cap = 300;
} pmu_config_t;
/*
@@ -92,6 +92,7 @@
* @brief set experimental power save
*/
void pmu_set_experimental_power_save( bool value );
int32_t pmu_get_designed_battery_cap( void );
bool pmu_get_silence_wakeup( void );
void pmu_set_silence_wakeup( bool value );