| 53 | } |
| 54 | |
| 55 | AmsData* KmpCommunicator::getData(AmsData& meterState) { |
| 56 | if(talker == NULL) return NULL; |
| 57 | KmpDataHolder kmpData; |
| 58 | talker->getData(kmpData); |
| 59 | uint64_t now = millis64(); |
| 60 | AmsData* data = new AmsData(); |
| 61 | data->apply(OBIS_ACTIVE_IMPORT_COUNT, kmpData.activeImportCounter, now); |
| 62 | data->apply(OBIS_ACTIVE_EXPORT_COUNT, kmpData.activeExportCounter, now); |
| 63 | data->apply(OBIS_REACTIVE_IMPORT_COUNT, kmpData.reactiveImportCounter, now); |
| 64 | data->apply(OBIS_REACTIVE_EXPORT_COUNT, kmpData.reactiveExportCounter, now); |
| 65 | data->apply(OBIS_ACTIVE_IMPORT, kmpData.activeImportPower, now); |
| 66 | data->apply(OBIS_ACTIVE_EXPORT, kmpData.activeExportPower, now); |
| 67 | data->apply(OBIS_REACTIVE_IMPORT, kmpData.reactiveImportPower, now); |
| 68 | data->apply(OBIS_REACTIVE_EXPORT, kmpData.reactiveExportPower, now); |
| 69 | data->apply(OBIS_VOLTAGE_L1, kmpData.l1voltage, now); |
| 70 | data->apply(OBIS_VOLTAGE_L2, kmpData.l2voltage, now); |
| 71 | data->apply(OBIS_VOLTAGE_L3, kmpData.l3voltage, now); |
| 72 | data->apply(OBIS_CURRENT_L1, kmpData.l1current, now); |
| 73 | data->apply(OBIS_CURRENT_L2, kmpData.l2current, now); |
| 74 | data->apply(OBIS_CURRENT_L3, kmpData.l3current, now); |
| 75 | data->apply(OBIS_POWER_FACTOR_L1, kmpData.l1PowerFactor, now); |
| 76 | data->apply(OBIS_POWER_FACTOR_L2, kmpData.l2PowerFactor, now); |
| 77 | data->apply(OBIS_POWER_FACTOR_L3, kmpData.l3PowerFactor, now); |
| 78 | data->apply(OBIS_POWER_FACTOR, kmpData.powerFactor, now); |
| 79 | data->apply(OBIS_ACTIVE_IMPORT_L1, kmpData.l1activeImportPower, now); |
| 80 | data->apply(OBIS_ACTIVE_IMPORT_L2, kmpData.l2activeImportPower, now); |
| 81 | data->apply(OBIS_ACTIVE_IMPORT_L3, kmpData.l3activeImportPower, now); |
| 82 | data->apply(OBIS_ACTIVE_EXPORT_L1, kmpData.l1activeExportPower, now); |
| 83 | data->apply(OBIS_ACTIVE_EXPORT_L2, kmpData.l2activeExportPower, now); |
| 84 | data->apply(OBIS_ACTIVE_EXPORT_L3, kmpData.l3activeExportPower, now); |
| 85 | data->apply(OBIS_ACTIVE_IMPORT_COUNT_L1, kmpData.l1activeImportCounter, now); |
| 86 | data->apply(OBIS_ACTIVE_IMPORT_COUNT_L2, kmpData.l2activeImportCounter, now); |
| 87 | data->apply(OBIS_ACTIVE_IMPORT_COUNT_L3, kmpData.l3activeImportCounter, now); |
| 88 | data->apply(OBIS_METER_ID, kmpData.meterId, now); |
| 89 | data->apply(OBIS_NULL, AmsTypeKamstrup, now); |
| 90 | return data; |
| 91 | } |