283 Add support of INA3221 to Promicro telemetry

This commit is contained in:
Normunds Gavars
2025-05-13 23:52:49 +03:00
parent d072e7b575
commit b035487101
6 changed files with 214 additions and 3 deletions

View File

@@ -8,14 +8,40 @@
#include <helpers/CustomLLCC68Wrapper.h>
#include <helpers/AutoDiscoverRTCClock.h>
#include <helpers/SensorManager.h>
#include <helpers/sensors/SensorSettingsManager.h>
#include <INA3221.h>
extern PromicroBoard board;
extern WRAPPER_CLASS radio_driver;
extern AutoDiscoverRTCClock rtc_clock;
extern SensorManager sensors;
bool radio_init();
uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(uint8_t dbm);
mesh::LocalIdentity radio_new_identity();
class PromicroSensorManager: public SensorManager {
INA3221 * INA_3221;
bool INA3221initialized = false;
SensorSettingsManager settingsManager;
// INA3221 channels in telemetry
int INA3221_CHANNELS[3] = {TELEM_CHANNEL_SELF + 1, TELEM_CHANNEL_SELF + 2, TELEM_CHANNEL_SELF+ 3};
char * INA3221_CHANNEL_NAMES[3] = { TELEM_INA3221_SETTING_CH1, TELEM_INA3221_SETTING_CH2, TELEM_INA3221_SETTING_CH3};
void onSettingsChanged();
public:
PromicroSensorManager();
~PromicroSensorManager();
bool begin() override;
bool querySensors(uint8_t requester_permissions, CayenneLPP& telemetry) override;
int getNumSettings() const override;
const char* getSettingName(int i) const override;
const char* getSettingValue(int i) const override;
bool setSettingValue(const char* name, const char* value) override;
};
extern PromicroSensorManager sensors;