refactoring

This commit is contained in:
dashevchenko 2024-09-30 18:00:04 +03:00
parent 6a9f8e31fd
commit a44cf6a686

View File

@ -334,8 +334,7 @@ public class CoapEfentoTransportResource extends AbstractCoapTransportResource {
values.addProperty("pulse_cnt_" + channelNumber, (double) (startPoint + sampleOffset)); values.addProperty("pulse_cnt_" + channelNumber, (double) (startPoint + sampleOffset));
break; break;
case MEASUREMENT_TYPE_IAQ: case MEASUREMENT_TYPE_IAQ:
values.addProperty("iaq_" + channelNumber, (startPoint + sampleOffset) / IAQ_METADATA_FACTOR); addPulseCounterProperties(values, "iaq_", channelNumber, startPoint + sampleOffset, IAQ_METADATA_FACTOR);
values.addProperty("iaq_metadata_" + channelNumber, (startPoint + sampleOffset) % IAQ_METADATA_FACTOR);
break; break;
case MEASUREMENT_TYPE_ELECTRICITY_METER: case MEASUREMENT_TYPE_ELECTRICITY_METER:
values.addProperty("watt_hour_" + channelNumber, (double) (startPoint + sampleOffset)); values.addProperty("watt_hour_" + channelNumber, (double) (startPoint + sampleOffset));
@ -353,31 +352,25 @@ public class CoapEfentoTransportResource extends AbstractCoapTransportResource {
values.addProperty("distance_mm_" + channelNumber, (double) (startPoint + sampleOffset)); values.addProperty("distance_mm_" + channelNumber, (double) (startPoint + sampleOffset));
break; break;
case MEASUREMENT_TYPE_WATER_METER_ACC_MINOR: case MEASUREMENT_TYPE_WATER_METER_ACC_MINOR:
values.addProperty("water_cnt_acc_minor_" + channelNumber, (startPoint + sampleOffset) / WATER_METER_ACC_MINOR_METADATA_FACTOR); addPulseCounterProperties(values, "water_cnt_acc_minor_", channelNumber, startPoint + sampleOffset, WATER_METER_ACC_MINOR_METADATA_FACTOR);
values.addProperty("water_cnt_acc_minor_metadata_" + channelNumber, (startPoint + sampleOffset) % WATER_METER_ACC_MINOR_METADATA_FACTOR);
break; break;
case MEASUREMENT_TYPE_WATER_METER_ACC_MAJOR: case MEASUREMENT_TYPE_WATER_METER_ACC_MAJOR:
values.addProperty("water_cnt_acc_major_" + channelNumber, (startPoint + sampleOffset) / WATER_METER_ACC_MAJOR_METADATA_FACTOR); addPulseCounterProperties(values, "water_cnt_acc_major_", channelNumber, startPoint + sampleOffset, WATER_METER_ACC_MAJOR_METADATA_FACTOR);
values.addProperty("water_cnt_acc_major_metadata_" + channelNumber, (startPoint + sampleOffset) % WATER_METER_ACC_MAJOR_METADATA_FACTOR);
break; break;
case MEASUREMENT_TYPE_HUMIDITY_ACCURATE: case MEASUREMENT_TYPE_HUMIDITY_ACCURATE:
values.addProperty("humidity_relative_" + channelNumber, (double) (startPoint + sampleOffset) / 10f); values.addProperty("humidity_relative_" + channelNumber, (double) (startPoint + sampleOffset) / 10f);
break; break;
case MEASUREMENT_TYPE_STATIC_IAQ: case MEASUREMENT_TYPE_STATIC_IAQ:
values.addProperty("static_iaq_" + channelNumber, (startPoint + sampleOffset) / STATIC_IAQ_METADATA_FACTOR); addPulseCounterProperties(values, "static_iaq_", channelNumber, startPoint + sampleOffset, STATIC_IAQ_METADATA_FACTOR);
values.addProperty("static_iaq_metadata_" + channelNumber, (startPoint + sampleOffset) % STATIC_IAQ_METADATA_FACTOR);
break; break;
case MEASUREMENT_TYPE_CO2_GAS: case MEASUREMENT_TYPE_CO2_GAS:
values.addProperty("co2_gas_" + channelNumber, (startPoint + sampleOffset) / CO2_GAS_METADATA_FACTOR); addPulseCounterProperties(values, "co2_gas_", channelNumber, startPoint + sampleOffset, CO2_GAS_METADATA_FACTOR);
values.addProperty("co2_gas_metadata_" + channelNumber, (startPoint + sampleOffset) % CO2_GAS_METADATA_FACTOR);
break; break;
case MEASUREMENT_TYPE_CO2_EQUIVALENT: case MEASUREMENT_TYPE_CO2_EQUIVALENT:
values.addProperty("co2_ppm_" + channelNumber, (startPoint + sampleOffset) / CO2_EQUIVALENT_METADATA_FACTOR); addPulseCounterProperties(values, "co2_ppm_", channelNumber, startPoint + sampleOffset, CO2_EQUIVALENT_METADATA_FACTOR);
values.addProperty("co2_ppm_metadata_" + channelNumber, (startPoint + sampleOffset) % CO2_EQUIVALENT_METADATA_FACTOR);
break; break;
case MEASUREMENT_TYPE_BREATH_VOC: case MEASUREMENT_TYPE_BREATH_VOC:
values.addProperty("breath_voc_ppm_" + channelNumber, (startPoint + sampleOffset) / BREATH_VOC_METADATA_FACTOR); addPulseCounterProperties(values, "breath_voc_", channelNumber, startPoint + sampleOffset, BREATH_VOC_METADATA_FACTOR);
values.addProperty("breath_voc_ppm_metadata_" + channelNumber, (startPoint + sampleOffset) % BREATH_VOC_METADATA_FACTOR);
break; break;
case MEASUREMENT_TYPE_PERCENTAGE: case MEASUREMENT_TYPE_PERCENTAGE:
values.addProperty("percentage_" + channelNumber, (double) (startPoint + sampleOffset) / 100f); values.addProperty("percentage_" + channelNumber, (double) (startPoint + sampleOffset) / 100f);
@ -389,28 +382,22 @@ public class CoapEfentoTransportResource extends AbstractCoapTransportResource {
values.addProperty("current_" + channelNumber, (double) (startPoint + sampleOffset)); values.addProperty("current_" + channelNumber, (double) (startPoint + sampleOffset));
break; break;
case MEASUREMENT_TYPE_PULSE_CNT_ACC_MINOR: case MEASUREMENT_TYPE_PULSE_CNT_ACC_MINOR:
values.addProperty("pulse_cnt_acc_minor_" + channelNumber, (startPoint + sampleOffset) / PULSE_CNT_ACC_MINOR_METADATA_FACTOR); addPulseCounterProperties(values, "pulse_cnt_acc_minor_", channelNumber, startPoint + sampleOffset, PULSE_CNT_ACC_MINOR_METADATA_FACTOR);
values.addProperty("pulse_cnt_acc_minor_metadata_" + channelNumber, (startPoint + sampleOffset) % PULSE_CNT_ACC_MINOR_METADATA_FACTOR);
break; break;
case MEASUREMENT_TYPE_PULSE_CNT_ACC_MAJOR: case MEASUREMENT_TYPE_PULSE_CNT_ACC_MAJOR:
values.addProperty("pulse_cnt_acc_major_" + channelNumber, (startPoint + sampleOffset) / PULSE_CNT_ACC_MAJOR_METADATA_FACTOR); addPulseCounterProperties(values, "pulse_cnt_acc_major_", channelNumber, startPoint + sampleOffset, PULSE_CNT_ACC_MAJOR_METADATA_FACTOR);
values.addProperty("pulse_cnt_acc_major_metadata_" + channelNumber, (startPoint + sampleOffset) % PULSE_CNT_ACC_MAJOR_METADATA_FACTOR);
break; break;
case MEASUREMENT_TYPE_ELEC_METER_ACC_MINOR: case MEASUREMENT_TYPE_ELEC_METER_ACC_MINOR:
values.addProperty("elec_meter_acc_minor_" + channelNumber, (startPoint + sampleOffset) / ELEC_METER_ACC_MINOR_METADATA_FACTOR); addPulseCounterProperties(values, "elec_meter_acc_minor_", channelNumber, startPoint + sampleOffset, ELEC_METER_ACC_MINOR_METADATA_FACTOR);
values.addProperty("elec_meter_acc_minor_metadata_" + channelNumber, (startPoint + sampleOffset) % ELEC_METER_ACC_MINOR_METADATA_FACTOR);
break; break;
case MEASUREMENT_TYPE_ELEC_METER_ACC_MAJOR: case MEASUREMENT_TYPE_ELEC_METER_ACC_MAJOR:
values.addProperty("elec_meter_acc_major_" + channelNumber, (startPoint + sampleOffset) / ELEC_METER_ACC_MAJOR_METADATA_FACTOR); addPulseCounterProperties(values, "elec_meter_acc_major_", channelNumber, startPoint + sampleOffset, ELEC_METER_ACC_MAJOR_METADATA_FACTOR);
values.addProperty("elec_meter_acc_major_metadata_" + channelNumber, (startPoint + sampleOffset) % ELEC_METER_ACC_MAJOR_METADATA_FACTOR);
break; break;
case MEASUREMENT_TYPE_PULSE_CNT_ACC_WIDE_MINOR: case MEASUREMENT_TYPE_PULSE_CNT_ACC_WIDE_MINOR:
values.addProperty("pulse_cnt_acc_wide_minor_" + channelNumber, (startPoint + sampleOffset) / PULSE_CNT_ACC_WIDE_MINOR_METADATA_FACTOR); addPulseCounterProperties(values, "pulse_cnt_acc_wide_minor_", channelNumber, startPoint + sampleOffset, PULSE_CNT_ACC_WIDE_MINOR_METADATA_FACTOR);
values.addProperty("pulse_cnt_acc_wide_minor_metadata_" + channelNumber, (startPoint + sampleOffset) % PULSE_CNT_ACC_WIDE_MINOR_METADATA_FACTOR);
break; break;
case MEASUREMENT_TYPE_PULSE_CNT_ACC_WIDE_MAJOR: case MEASUREMENT_TYPE_PULSE_CNT_ACC_WIDE_MAJOR:
values.addProperty("pulse_cnt_acc_wide_major_" + channelNumber, (startPoint + sampleOffset) / PULSE_CNT_ACC_WIDE_MAJOR_METADATA_FACTOR); addPulseCounterProperties(values, "pulse_cnt_acc_wide_major_", channelNumber, startPoint + sampleOffset, PULSE_CNT_ACC_WIDE_MAJOR_METADATA_FACTOR);
values.addProperty("pulse_cnt_acc_wide_major_metadata_" + channelNumber, (startPoint + sampleOffset) % PULSE_CNT_ACC_WIDE_MAJOR_METADATA_FACTOR);
break; break;
case MEASUREMENT_TYPE_CURRENT_PRECISE: case MEASUREMENT_TYPE_CURRENT_PRECISE:
values.addProperty("current_precise_" + channelNumber, (double) (startPoint + sampleOffset)); values.addProperty("current_precise_" + channelNumber, (double) (startPoint + sampleOffset));
@ -425,6 +412,11 @@ public class CoapEfentoTransportResource extends AbstractCoapTransportResource {
} }
} }
private void addPulseCounterProperties(JsonObject values, String prefix, int channelNumber, int value, int metadataFactor) {
values.addProperty(prefix + "_" + channelNumber, value / metadataFactor);
values.addProperty(prefix + "_metadata_" + channelNumber, value % metadataFactor);
}
private void calculatePulseCounterTotalValue(JsonObject value, PulseCounterType pulseCounterType) { private void calculatePulseCounterTotalValue(JsonObject value, PulseCounterType pulseCounterType) {
Set<String> keys = value.keySet(); Set<String> keys = value.keySet();
Optional<String> major = keys.stream().filter(s -> s.startsWith(pulseCounterType.getPrefix() + "major_")).findAny(); Optional<String> major = keys.stream().filter(s -> s.startsWith(pulseCounterType.getPrefix() + "major_")).findAny();