Skip to content

Commit 44f8837

Browse files
jamesharrowrestyled-commitsandy31415
authored
EVSE - Update FakeReadings when a MaxChargeCurrent change occurs (project-chip#35346)
* Updated FakeReadings when a MaxChargeCurrent change is made so that the readings are more representative of a real EV. * Restyled by whitespace * Removed using namespace from header file and added chip:: back into the type defintion since build fails. * Apply suggestions from code review Co-authored-by: Andrei Litvin <andy314@gmail.com> * Apply suggestions from code review * Restyled by clang-format --------- Co-authored-by: Restyled.io <commits@restyled.io> Co-authored-by: Andrei Litvin <andy314@gmail.com>
1 parent ed3403d commit 44f8837

File tree

4 files changed

+51
-0
lines changed

4 files changed

+51
-0
lines changed

examples/energy-management-app/energy-management-common/energy-evse/include/EVSEManufacturerImpl.h

+7
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,13 @@ class EVSEManufacturer : public DEMManufacturerDelegate
213213
*/
214214
static void FakeReadingsTimerExpiry(System::Layer * systemLayer, void * manufacturer);
215215

216+
/*
217+
* @brief Updates the parameters used to generate fake power and energy readings
218+
*
219+
* @param maximumChargeCurrent Maximum Charge current in mA
220+
*/
221+
void UpdateEVFakeReadings(const Amperage_mA maximumChargeCurrent);
222+
216223
private:
217224
EnergyEvseManager * mEvseInstance;
218225
ElectricalPowerMeasurement::ElectricalPowerMeasurementInstance * mEPMInstance;

examples/energy-management-app/energy-management-common/energy-evse/src/EVSEManufacturerImpl.cpp

+9
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include <EnergyTimeUtils.h>
2525

2626
#include <EnergyTimeUtils.h>
27+
#include <FakeReadings.h>
2728
#include <app/clusters/device-energy-management-server/DeviceEnergyManagementTestEventTriggerHandler.h>
2829
#include <app/clusters/electrical-energy-measurement-server/EnergyReportingTestEventTriggerHandler.h>
2930
#include <app/clusters/electrical-energy-measurement-server/electrical-energy-measurement-server.h>
@@ -551,6 +552,13 @@ CHIP_ERROR EVSEManufacturer::SendPeriodicEnergyReading(EndpointId aEndpointId, i
551552
return CHIP_NO_ERROR;
552553
}
553554

555+
void EVSEManufacturer::UpdateEVFakeReadings(const Amperage_mA maximumChargeCurrent)
556+
{
557+
FakeReadings::GetInstance().SetCurrent(maximumChargeCurrent);
558+
// Note we have to divide by 1000 to make ma * mv = mW
559+
FakeReadings::GetInstance().SetPower((FakeReadings::GetInstance().GetVoltage() * maximumChargeCurrent) / 1000);
560+
}
561+
554562
/**
555563
* @brief Main Callback handler - to be implemented by Manufacturer
556564
*
@@ -573,6 +581,7 @@ void EVSEManufacturer::ApplicationCallbackHandler(const EVSECbInfo * cb, intptr_
573581
ChipLogProgress(AppServer, "EVSE callback - maxChargeCurrent changed to %ld",
574582
static_cast<long>(cb->ChargingCurrent.maximumChargeCurrent));
575583
pClass->ComputeChargingSchedule();
584+
pClass->UpdateEVFakeReadings(cb->ChargingCurrent.maximumChargeCurrent);
576585
break;
577586
case EVSECallbackType::EnergyMeterReadingRequested:
578587
ChipLogProgress(AppServer, "EVSE callback - EnergyMeterReadingRequested");

examples/energy-management-app/energy-management-common/energy-reporting/include/FakeReadings.h

+10
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
#pragma once
2020

21+
#include <app/util/basic-types.h>
2122
#include <lib/core/DataModelTypes.h>
2223
#include <system/SystemLayer.h>
2324

@@ -58,6 +59,15 @@ class FakeReadings
5859
*/
5960
void FakeReadingsUpdate();
6061

62+
void SetPower(chip::Power_mW power_mW);
63+
chip::Power_mW GetPower();
64+
65+
void SetVoltage(chip::Voltage_mV voltage_mV);
66+
chip::Voltage_mV GetVoltage();
67+
68+
void SetCurrent(chip::Amperage_mA current_mA);
69+
chip::Amperage_mA GetCurrent();
70+
6171
/**
6272
* @brief Timer expiry callback to handle fake load
6373
*/

examples/energy-management-app/energy-management-common/energy-reporting/src/FakeReadings.cpp

+25
Original file line numberDiff line numberDiff line change
@@ -180,3 +180,28 @@ void FakeReadings::FakeReadingsTimerExpiry(System::Layer * systemLayer, void * m
180180

181181
mn->FakeReadingsUpdate();
182182
}
183+
184+
void FakeReadings::SetPower(Power_mW aPower_mW)
185+
{
186+
mPower_mW = aPower_mW;
187+
}
188+
Power_mW FakeReadings::GetPower()
189+
{
190+
return mPower_mW;
191+
};
192+
void FakeReadings::SetVoltage(Voltage_mV aVoltage_mV)
193+
{
194+
mVoltage_mV = aVoltage_mV;
195+
}
196+
Voltage_mV FakeReadings::GetVoltage()
197+
{
198+
return mVoltage_mV;
199+
};
200+
void FakeReadings::SetCurrent(Amperage_mA aCurrent_mA)
201+
{
202+
mCurrent_mA = aCurrent_mA;
203+
}
204+
Amperage_mA FakeReadings::GetCurrent()
205+
{
206+
return mCurrent_mA;
207+
}

0 commit comments

Comments
 (0)