calculated meas values

This commit is contained in:
leo 2023-06-26 13:54:56 +02:00
parent 2d2736315c
commit 8f81be8e71
Signed by: leo
GPG Key ID: 0DD993BFB2B307DB
4 changed files with 43 additions and 4 deletions

@ -1 +1 @@
Subproject commit 2ce2ec0e5a803896c8797eada748f2f98dc1f3fa Subproject commit cb5fe57c53034b9adcb4f89270373156b80153e5

View File

@ -122,7 +122,36 @@ void app_main(void){
.descrL = (NSP_DESC_MAIN>>8) & 0xff, .descrL = (NSP_DESC_MAIN>>8) & 0xff,
}; };
gatt_value_server_handle_t raw_mv_serve_handle = simple_gatt_value_server(raw_mv_meas, sizeof(uint32_t), ADC_IN_PIN_NUM, mv_char_pres_format, &gatt_svcs[RAW_VALUES_SVC_ID], RAW_VALUES_SVC_ID, BLE_UUID16_DECLARE(VOLTAGE_CHAR)); gatt_value_server_handle_t raw_mv_serve_handle = simple_gatt_identical_values_server(raw_mv_meas, sizeof(uint32_t), ADC_IN_PIN_NUM, &mv_char_pres_format, &gatt_svcs[RAW_VALUES_SVC_ID], RAW_VALUES_SVC_ID, BLE_UUID16_DECLARE(VOLTAGE_CHAR));
uint32_t calc_meas[ADC_IN_PIN_NUM];
struct char_pres_format mA_char_pres_format = {
.format = FORMAT_UINT32,
.unit = AMPERE_UNIT_UUID,
.exponent = -3,
.namespc = 1,
.descrH = NSP_DESC_MAIN & 0xff,
.descrL = (NSP_DESC_MAIN>>8) & 0xff,
};
struct char_pres_format* calc_meas_formats[ADC_IN_PIN_NUM];
ble_uuid_t* calc_meas_char_uuid[ADC_IN_PIN_NUM];
for(int i = 0; i < ADC_IN_PIN_NUM; i++){
switch(adc_pins[i]){
case CONFIG_OUT_VOLT_PIN:
calc_meas_formats[i] = &mv_char_pres_format;
calc_meas_char_uuid[i] = BLE_UUID16_DECLARE(VOLTAGE_CHAR);
break;
default:
calc_meas_formats[i] = &mA_char_pres_format;
calc_meas_char_uuid[i] = BLE_UUID16_DECLARE(ELECTRIC_CURRENT_CHAR);
}
}
gatt_value_server_handle_t calc_meas_serve_handle = simple_gatt_value_server(calc_meas, sizeof(uint32_t), ADC_IN_PIN_NUM, calc_meas_formats, &gatt_svcs[CALC_VALUES_SVC_ID], CALC_VALUES_SVC_ID, calc_meas_char_uuid);
set_gatt_services(gatt_svcs, SVCS_NUM); set_gatt_services(gatt_svcs, SVCS_NUM);
@ -153,23 +182,29 @@ void app_main(void){
switch(adc_pins[i]){ switch(adc_pins[i]){
case CONFIG_OUT_VOLT_PIN: case CONFIG_OUT_VOLT_PIN:
ESP_LOGI(TAG, "Output voltage %d mV", mv); ESP_LOGI(TAG, "Output voltage %d mV", mv);
calc_meas[i] = mv * 33;
break; break;
case CONFIG_OUT_CURR_PIN: case CONFIG_OUT_CURR_PIN:
ESP_LOGI(TAG, "Output current %d mV", mv); ESP_LOGI(TAG, "Output current %d mV", mv);
calc_meas[i] = mv * 10;
break; break;
case CONFIG_PHASE1_CURR_PIN: case CONFIG_PHASE1_CURR_PIN:
ESP_LOGI(TAG, "Phase 1 current %d mV", mv); ESP_LOGI(TAG, "Phase 1 current %d mV", mv);
calc_meas[i] = mv * 10;
break; break;
case CONFIG_PHASE2_CURR_PIN: case CONFIG_PHASE2_CURR_PIN:
ESP_LOGI(TAG, "Phase 2 current %d mV", mv); ESP_LOGI(TAG, "Phase 2 current %d mV", mv);
calc_meas[i] = mv * 10;
break; break;
case CONFIG_PHASE3_CURR_PIN: case CONFIG_PHASE3_CURR_PIN:
ESP_LOGI(TAG, "Phase 3 current %d mV", mv); ESP_LOGI(TAG, "Phase 3 current %d mV", mv);
calc_meas[i] = mv * 10;
break; break;
} }
} }
simple_gatt_value_server_notify(raw_mv_serve_handle, ADC_IN_PIN_NUM); simple_gatt_value_server_notify(raw_mv_serve_handle, ADC_IN_PIN_NUM);
simple_gatt_value_server_notify(calc_meas_serve_handle, ADC_IN_PIN_NUM);
vTaskDelay(pdMS_TO_TICKS(CONFIG_UPD_DELAY)); vTaskDelay(pdMS_TO_TICKS(CONFIG_UPD_DELAY));
} }

View File

@ -24,6 +24,10 @@ struct ble_gatt_svc_def gatt_svcs[] = {
.type = BLE_GATT_SVC_TYPE_PRIMARY, .type = BLE_GATT_SVC_TYPE_PRIMARY,
.uuid = BLE_UUID16_DECLARE(METROLOGY_SERVICE), .uuid = BLE_UUID16_DECLARE(METROLOGY_SERVICE),
}, },
[CALC_VALUES_SVC_ID] = {
.type = BLE_GATT_SVC_TYPE_PRIMARY,
.uuid = BLE_UUID16_DECLARE(METROLOGY_SERVICE),
},
[CONFIGURATION_SVC_ID] = { [CONFIGURATION_SVC_ID] = {
.type = BLE_GATT_SVC_TYPE_PRIMARY, .type = BLE_GATT_SVC_TYPE_PRIMARY,
.uuid = BLE_UUID16_DECLARE(CONFIGURATION_SERVICE), .uuid = BLE_UUID16_DECLARE(CONFIGURATION_SERVICE),

View File

@ -2,5 +2,5 @@
#include "host/ble_gatt.h" #include "host/ble_gatt.h"
enum {RAW_VALUES_SVC_ID, CONFIGURATION_SVC_ID, SVCS_NUM}; enum {RAW_VALUES_SVC_ID, CALC_VALUES_SVC_ID, CONFIGURATION_SVC_ID, SVCS_NUM};
extern struct ble_gatt_svc_def gatt_svcs[SVCS_NUM + 1]; extern struct ble_gatt_svc_def gatt_svcs[SVCS_NUM + 1];