ADS1115: Housekeeping

This commit is contained in:
andrethomas2 2019-02-07 19:09:49 +02:00 committed by GitHub
parent da3f4bcab7
commit fd9f66ed6e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -161,64 +161,61 @@ int16_t Ads1115GetConversion(uint8_t channel)
void Ads1115Detect(void) void Ads1115Detect(void)
{ {
uint16_t buffer; uint16_t buffer;
uint16_t conf_buffer;
//if (ads1115_type) {
//return;
//}
for (uint8_t i = 0; i < sizeof(ads1115_addresses); i++) { for (uint8_t i = 0; i < sizeof(ads1115_addresses); i++) {
ads1115_address = ads1115_addresses[i]; if (!ads1115_found[i]) {
if (I2cValidRead16(&buffer, ads1115_address, ADS1115_REG_POINTER_CONVERT) && ads1115_address = ads1115_addresses[i];
I2cValidRead16(&conf_buffer, ads1115_address, ADS1115_REG_POINTER_CONFIG)) { if (I2cValidRead16(&buffer, ads1115_address, ADS1115_REG_POINTER_CONVERT) &&
I2cValidRead16(&buffer, ads1115_address, ADS1115_REG_POINTER_CONFIG)) {
Ads1115StartComparator(i, ADS1115_REG_CONFIG_MODE_CONTIN); Ads1115StartComparator(i, ADS1115_REG_CONFIG_MODE_CONTIN);
ads1115_type = 1; ads1115_type = 1;
ads1115_found[i] = 1; ads1115_found[i] = 1;
snprintf_P(log_data, sizeof(log_data), S_LOG_I2C_FOUND_AT, "ADS1115", ads1115_address); snprintf_P(log_data, sizeof(log_data), S_LOG_I2C_FOUND_AT, "ADS1115", ads1115_address);
AddLog(LOG_LEVEL_DEBUG); AddLog(LOG_LEVEL_DEBUG);
//break; }
} }
} }
} }
void Ads1115GetValues(uint8_t address) { void Ads1115GetValues(uint8_t address)
uint8_t old_address = ads1115_address; {
ads1115_address = address; uint8_t old_address = ads1115_address;
for (uint8_t i = 0; i < 4; i++) { ads1115_address = address;
ads1115_values[i] = Ads1115GetConversion(i); for (uint8_t i = 0; i < 4; i++) {
//snprintf_P(log_data, sizeof(log_data), "Logging ADS1115 %02x (%i) = %i", address, i, ads1115_values[i] ); ads1115_values[i] = Ads1115GetConversion(i);
//AddLog(LOG_LEVEL_INFO); //snprintf_P(log_data, sizeof(log_data), "Logging ADS1115 %02x (%i) = %i", address, i, ads1115_values[i] );
} //AddLog(LOG_LEVEL_INFO);
ads1115_address = old_address; }
ads1115_address = old_address;
} }
void Ads1115toJSON(char *comma_j) { void Ads1115toJSON(char *comma_j)
{
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s%s{"), mqtt_data,comma_j); snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s%s{"), mqtt_data,comma_j);
char *comma = (char*)""; char *comma = (char*)"";
for (uint8_t i = 0; i < 4; i++) { for (uint8_t i = 0; i < 4; i++) {
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s%s\"A%d\":%d"), mqtt_data, comma, i, ads1115_values[i]); snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s%s\"A%d\":%d"), mqtt_data, comma, i, ads1115_values[i]);
comma = (char*)","; comma = (char*)",";
} }
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s}"), mqtt_data); snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s}"), mqtt_data);
} }
void Ads1115toString(uint8_t address) { void Ads1115toString(uint8_t address)
{
char label[15]; char label[15];
snprintf_P(label, sizeof(label), "ADS1115(%02x)", address); snprintf_P(label, sizeof(label), "ADS1115(%02x)", address);
for (uint8_t i = 0; i < 4; i++) { for (uint8_t i = 0; i < 4; i++) {
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_ANALOG, mqtt_data, label, i, ads1115_values[i]); snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_ANALOG, mqtt_data, label, i, ads1115_values[i]);
} }
} }
void Ads1115Show(bool json) void Ads1115Show(bool json)
{ {
if (!ads1115_type) if (!ads1115_type) { return; }
return;
if (json) if (json) {
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"ADS1115\":["), mqtt_data); snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"ADS1115\":["), mqtt_data);
}
char *comma = (char*)""; char *comma = (char*)"";
@ -230,18 +227,18 @@ void Ads1115Show(bool json)
if (json) { if (json) {
Ads1115toJSON(comma); Ads1115toJSON(comma);
comma = (char*)","; comma = (char*)",";
} }
#ifdef USE_WEBSERVER #ifdef USE_WEBSERVER
else { else {
Ads1115toString(ads1115_addresses[t]); Ads1115toString(ads1115_addresses[t]);
} }
#endif // USE_WEBSERVER #endif // USE_WEBSERVER
}
} }
}
if (json) { if (json) {
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s]"), mqtt_data); snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s]"), mqtt_data);
} }
} }
/*********************************************************************************************\ /*********************************************************************************************\