Skip to content

Commit 74202ad

Browse files
committed
Add support for money and new electrical data types
1 parent b205837 commit 74202ad

File tree

7 files changed

+50
-5
lines changed

7 files changed

+50
-5
lines changed

scripts/py_matter_idl/matter_idl/data_model_xml/handlers/parsing.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,14 @@ def NormalizeDataType(t: str) -> str:
104104

105105
# Handle odd casing and naming
106106
_CASE_RENAMES_MAPPING = {
107+
"amperage_mA": "amperage_ma",
107108
"power_mW": "power_mw",
108-
"energy_mWh": "energy_mwh"
109+
"power_mVA": "power_mva",
110+
"power_mVAR": "power_mvar",
111+
"energy_mWh": "energy_mwh",
112+
"energy_mVAh": "energy_mvah",
113+
"energy_mVARh": "energy_mvarh",
114+
"voltage_mV": "voltage_mv",
109115
}
110116

111117

scripts/py_matter_idl/matter_idl/generators/type_definitions.py

+5
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,8 @@ def is_struct(self) -> bool:
198198
"elapsed_s": BasicInteger(idl_name="elapsed_s", byte_count=4, is_signed=False),
199199
"endpoint_no": BasicInteger(idl_name="endpoint_no", byte_count=2, is_signed=False),
200200
"energy_mwh": BasicInteger(idl_name="energy_mwh", byte_count=8, is_signed=True),
201+
"energy_mvah": BasicInteger(idl_name="energy_mvah", byte_count=8, is_signed=True),
202+
"energy_mvarh": BasicInteger(idl_name="energy_mvarh", byte_count=8, is_signed=True),
201203
"entry_idx": BasicInteger(idl_name="entry_idx", byte_count=2, is_signed=False),
202204
"epoch_s": BasicInteger(idl_name="epoch_s", byte_count=4, is_signed=False),
203205
"epoch_us": BasicInteger(idl_name="epoch_us", byte_count=8, is_signed=False),
@@ -207,12 +209,15 @@ def is_struct(self) -> bool:
207209
"fabric_idx": BasicInteger(idl_name="fabric_idx", byte_count=1, is_signed=False),
208210
"field_id": BasicInteger(idl_name="field_id", byte_count=4, is_signed=False),
209211
"group_id": BasicInteger(idl_name="group_id", byte_count=2, is_signed=False),
212+
"money": BasicInteger(idl_name="money", byte_count=8, is_signed=True),
210213
"namespace": BasicInteger(idl_name="namespace", byte_count=1, is_signed=False),
211214
"node_id": BasicInteger(idl_name="node_id", byte_count=8, is_signed=False),
212215
"percent": BasicInteger(idl_name="percent", byte_count=1, is_signed=False),
213216
"percent100ths": BasicInteger(idl_name="percent100ths", byte_count=2, is_signed=False),
214217
"posix_ms": BasicInteger(idl_name="posix_ms", byte_count=8, is_signed=False),
215218
"power_mw": BasicInteger(idl_name="power_mw", byte_count=8, is_signed=True),
219+
"power_mva": BasicInteger(idl_name="power_mva", byte_count=8, is_signed=True),
220+
"power_mvar": BasicInteger(idl_name="power_mvar", byte_count=8, is_signed=True),
216221
"priority": BasicInteger(idl_name="priority", byte_count=1, is_signed=False),
217222
"semtag": BasicInteger(idl_name="semtag", byte_count=4, is_signed=False),
218223
"status": BasicInteger(idl_name="status", byte_count=1, is_signed=False),

src/app/util/basic-types.h

+5
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,13 @@ namespace chip {
3333
typedef uint8_t Percent;
3434
typedef uint16_t Percent100ths;
3535
typedef int64_t Energy_mWh;
36+
typedef int64_t Energy_mVAh;
37+
typedef int64_t Energy_mVARh;
3638
typedef int64_t Amperage_mA;
3739
typedef int64_t Power_mW;
40+
typedef int64_t Power_mVA;
41+
typedef int64_t Power_mVAR;
3842
typedef int64_t Voltage_mV;
43+
typedef int64_t Money;
3944

4045
} // namespace chip

src/app/util/ember-io-storage.cpp

+9-4
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,15 @@ EmberAfAttributeType AttributeBaseType(EmberAfAttributeType type)
9090
"chip::DataVersion is expected to be uint32_t, change this when necessary");
9191
return ZCL_INT32U_ATTRIBUTE_TYPE;
9292

93-
case ZCL_AMPERAGE_MA_ATTRIBUTE_TYPE: // Amperage milliamps
94-
case ZCL_ENERGY_MWH_ATTRIBUTE_TYPE: // Energy milliwatt-hours
95-
case ZCL_POWER_MW_ATTRIBUTE_TYPE: // Power milliwatts
96-
case ZCL_VOLTAGE_MV_ATTRIBUTE_TYPE: // Voltage millivolts
93+
case ZCL_AMPERAGE_MA_ATTRIBUTE_TYPE: // Amperage milliamps
94+
case ZCL_ENERGY_MWH_ATTRIBUTE_TYPE: // Energy milliwatt-hours
95+
case ZCL_ENERGY_MVAH_ATTRIBUTE_TYPE: // Energy millivolt-amp-hours
96+
case ZCL_ENERGY_MVARH_ATTRIBUTE_TYPE: // Energy millivolt-amp-hours reactive
97+
case ZCL_POWER_MW_ATTRIBUTE_TYPE: // Power milliwatts
98+
case ZCL_POWER_MVA_ATTRIBUTE_TYPE: // Power millivolt-amps
99+
case ZCL_POWER_MVAR_ATTRIBUTE_TYPE: // Power millivolt-amps reactive
100+
case ZCL_VOLTAGE_MV_ATTRIBUTE_TYPE: // Voltage millivolts
101+
case ZCL_MONEY_ATTRIBUTE_TYPE: // Money
97102
return ZCL_INT64S_ATTRIBUTE_TYPE;
98103

99104
case ZCL_EVENT_NO_ATTRIBUTE_TYPE: // Event Number

src/app/zap-templates/common/override.js

+5
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,14 @@ function atomicType(arg)
7575
case 'percent100ths':
7676
return 'chip::Percent100ths';
7777
case 'power_mw':
78+
case 'power_mva':
79+
case 'power_mvar':
7880
case 'amperage_ma':
7981
case 'voltage_mv':
8082
case 'energy_mwh':
83+
case 'energy_mvah':
84+
case 'energy_mvarh':
85+
case 'money':
8186
return 'int64_t';
8287
case 'epoch_us':
8388
case 'systime_us':

src/data-model-providers/codegen/tests/TestCodegenModelViaMocks.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -539,9 +539,13 @@ const MockNodeConfig gTestNodeConfig({
539539
MOCK_ATTRIBUTE_CONFIG_NULLABLE(ZCL_ELAPSED_S_ATTRIBUTE_TYPE),
540540
MOCK_ATTRIBUTE_CONFIG_NULLABLE(ZCL_TEMPERATURE_ATTRIBUTE_TYPE),
541541
MOCK_ATTRIBUTE_CONFIG_NULLABLE(ZCL_POWER_MW_ATTRIBUTE_TYPE),
542+
MOCK_ATTRIBUTE_CONFIG_NULLABLE(ZCL_POWER_MVA_ATTRIBUTE_TYPE),
543+
MOCK_ATTRIBUTE_CONFIG_NULLABLE(ZCL_POWER_MVAR_ATTRIBUTE_TYPE),
542544
MOCK_ATTRIBUTE_CONFIG_NULLABLE(ZCL_AMPERAGE_MA_ATTRIBUTE_TYPE),
543545
MOCK_ATTRIBUTE_CONFIG_NULLABLE(ZCL_VOLTAGE_MV_ATTRIBUTE_TYPE),
544546
MOCK_ATTRIBUTE_CONFIG_NULLABLE(ZCL_ENERGY_MWH_ATTRIBUTE_TYPE),
547+
MOCK_ATTRIBUTE_CONFIG_NULLABLE(ZCL_ENERGY_MVAH_ATTRIBUTE_TYPE),
548+
MOCK_ATTRIBUTE_CONFIG_NULLABLE(ZCL_ENERGY_MVARH_ATTRIBUTE_TYPE),
545549
MOCK_ATTRIBUTE_CONFIG_NULLABLE(ZCL_TOD_ATTRIBUTE_TYPE),
546550
MOCK_ATTRIBUTE_CONFIG_NULLABLE(ZCL_DATE_ATTRIBUTE_TYPE),
547551
MOCK_ATTRIBUTE_CONFIG_NULLABLE(ZCL_EPOCH_US_ATTRIBUTE_TYPE),

zzz_generated/app-common/app-common/zap-generated/attribute-type.h

+15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)