@@ -1058,6 +1058,11 @@ static esp_matter_val_type_t get_val_type_from_attribute_type(int attribute_type
1058
1058
break ;
1059
1059
1060
1060
case ZCL_OCTET_STRING_ATTRIBUTE_TYPE:
1061
+ case ZCL_IPADR_ATTRIBUTE_TYPE:
1062
+ case ZCL_IPV4ADR_ATTRIBUTE_TYPE:
1063
+ case ZCL_IPV6ADR_ATTRIBUTE_TYPE:
1064
+ case ZCL_IPV6PRE_ATTRIBUTE_TYPE:
1065
+ case ZCL_HWADR_ATTRIBUTE_TYPE:
1061
1066
return ESP_MATTER_VAL_TYPE_OCTET_STRING;
1062
1067
break ;
1063
1068
@@ -1070,34 +1075,75 @@ static esp_matter_val_type_t get_val_type_from_attribute_type(int attribute_type
1070
1075
break ;
1071
1076
1072
1077
case ZCL_INT8U_ATTRIBUTE_TYPE:
1078
+ case ZCL_ACTION_ID_ATTRIBUTE_TYPE:
1079
+ case ZCL_TAG_ATTRIBUTE_TYPE:
1080
+ case ZCL_NAMESPACE_ATTRIBUTE_TYPE:
1081
+ case ZCL_FABRIC_IDX_ATTRIBUTE_TYPE:
1082
+ case ZCL_PERCENT_ATTRIBUTE_TYPE:
1073
1083
return ESP_MATTER_VAL_TYPE_UINT8;
1074
1084
break ;
1075
1085
1076
1086
case ZCL_INT16S_ATTRIBUTE_TYPE:
1087
+ case ZCL_TEMPERATURE_ATTRIBUTE_TYPE:
1077
1088
return ESP_MATTER_VAL_TYPE_INT16;
1078
1089
break ;
1079
1090
1080
1091
case ZCL_INT16U_ATTRIBUTE_TYPE:
1092
+ case ZCL_ENTRY_IDX_ATTRIBUTE_TYPE:
1093
+ case ZCL_GROUP_ID_ATTRIBUTE_TYPE:
1094
+ case ZCL_ENDPOINT_NO_ATTRIBUTE_TYPE:
1095
+ case ZCL_VENDOR_ID_ATTRIBUTE_TYPE:
1096
+ case ZCL_PERCENT100THS_ATTRIBUTE_TYPE:
1081
1097
return ESP_MATTER_VAL_TYPE_UINT16;
1082
1098
break ;
1083
1099
1084
1100
case ZCL_INT32S_ATTRIBUTE_TYPE:
1101
+ case ZCL_INT24S_ATTRIBUTE_TYPE:
1085
1102
return ESP_MATTER_VAL_TYPE_INT32;
1086
1103
break ;
1087
1104
1088
1105
case ZCL_INT32U_ATTRIBUTE_TYPE:
1106
+ case ZCL_TRANS_ID_ATTRIBUTE_TYPE:
1107
+ case ZCL_CLUSTER_ID_ATTRIBUTE_TYPE:
1108
+ case ZCL_ATTRIB_ID_ATTRIBUTE_TYPE:
1109
+ case ZCL_FIELD_ID_ATTRIBUTE_TYPE:
1110
+ case ZCL_EVENT_ID_ATTRIBUTE_TYPE:
1111
+ case ZCL_COMMAND_ID_ATTRIBUTE_TYPE:
1112
+ case ZCL_EPOCH_S_ATTRIBUTE_TYPE:
1113
+ case ZCL_ELAPSED_S_ATTRIBUTE_TYPE:
1114
+ case ZCL_DATA_VER_ATTRIBUTE_TYPE:
1115
+ case ZCL_DEVTYPE_ID_ATTRIBUTE_TYPE:
1116
+ case ZCL_INT24U_ATTRIBUTE_TYPE:
1089
1117
return ESP_MATTER_VAL_TYPE_UINT32;
1090
1118
break ;
1091
1119
1092
1120
case ZCL_INT64S_ATTRIBUTE_TYPE:
1121
+ case ZCL_ENERGY_MWH_ATTRIBUTE_TYPE:
1122
+ case ZCL_AMPERAGE_MA_ATTRIBUTE_TYPE:
1123
+ case ZCL_POWER_MW_ATTRIBUTE_TYPE:
1124
+ case ZCL_INT56S_ATTRIBUTE_TYPE:
1125
+ case ZCL_INT48S_ATTRIBUTE_TYPE:
1126
+ case ZCL_INT40S_ATTRIBUTE_TYPE:
1093
1127
return ESP_MATTER_VAL_TYPE_INT64;
1094
1128
break ;
1095
1129
1096
1130
case ZCL_INT64U_ATTRIBUTE_TYPE:
1131
+ case ZCL_FABRIC_ID_ATTRIBUTE_TYPE:
1132
+ case ZCL_NODE_ID_ATTRIBUTE_TYPE:
1133
+ case ZCL_POSIX_MS_ATTRIBUTE_TYPE:
1134
+ case ZCL_EPOCH_US_ATTRIBUTE_TYPE:
1135
+ case ZCL_SYSTIME_US_ATTRIBUTE_TYPE:
1136
+ case ZCL_SYSTIME_MS_ATTRIBUTE_TYPE:
1137
+ case ZCL_EVENT_NO_ATTRIBUTE_TYPE:
1138
+ case ZCL_INT56U_ATTRIBUTE_TYPE:
1139
+ case ZCL_INT48U_ATTRIBUTE_TYPE:
1140
+ case ZCL_INT40U_ATTRIBUTE_TYPE:
1097
1141
return ESP_MATTER_VAL_TYPE_UINT64;
1098
1142
break ;
1099
1143
1100
1144
case ZCL_ENUM8_ATTRIBUTE_TYPE:
1145
+ case ZCL_STATUS_ATTRIBUTE_TYPE:
1146
+ case ZCL_PRIORITY_ATTRIBUTE_TYPE:
1101
1147
return ESP_MATTER_VAL_TYPE_ENUM8;
1102
1148
break ;
1103
1149
@@ -1632,7 +1678,12 @@ esp_err_t get_attr_val_from_data(esp_matter_attr_val_t *val, EmberAfAttributeTyp
1632
1678
break ;
1633
1679
}
1634
1680
1635
- case ZCL_OCTET_STRING_ATTRIBUTE_TYPE: {
1681
+ case ZCL_OCTET_STRING_ATTRIBUTE_TYPE:
1682
+ case ZCL_IPADR_ATTRIBUTE_TYPE:
1683
+ case ZCL_IPV4ADR_ATTRIBUTE_TYPE:
1684
+ case ZCL_IPV6ADR_ATTRIBUTE_TYPE:
1685
+ case ZCL_IPV6PRE_ATTRIBUTE_TYPE:
1686
+ case ZCL_HWADR_ATTRIBUTE_TYPE: {
1636
1687
*val = esp_matter_octet_str (NULL , 0 );
1637
1688
int data_size_len = val->val .a .t - val->val .a .s ;
1638
1689
int data_count = 0 ;
@@ -1667,6 +1718,10 @@ esp_err_t get_attr_val_from_data(esp_matter_attr_val_t *val, EmberAfAttributeTyp
1667
1718
}
1668
1719
1669
1720
case ZCL_INT8U_ATTRIBUTE_TYPE:
1721
+ case ZCL_ACTION_ID_ATTRIBUTE_TYPE:
1722
+ case ZCL_TAG_ATTRIBUTE_TYPE:
1723
+ case ZCL_NAMESPACE_ATTRIBUTE_TYPE:
1724
+ case ZCL_FABRIC_IDX_ATTRIBUTE_TYPE:
1670
1725
case ZCL_PERCENT_ATTRIBUTE_TYPE: {
1671
1726
using Traits = chip::app::NumericAttributeTraits<uint8_t >;
1672
1727
Traits::StorageType attribute_value;
@@ -1683,7 +1738,8 @@ esp_err_t get_attr_val_from_data(esp_matter_attr_val_t *val, EmberAfAttributeTyp
1683
1738
break ;
1684
1739
}
1685
1740
1686
- case ZCL_INT16S_ATTRIBUTE_TYPE: {
1741
+ case ZCL_INT16S_ATTRIBUTE_TYPE:
1742
+ case ZCL_TEMPERATURE_ATTRIBUTE_TYPE: {
1687
1743
using Traits = chip::app::NumericAttributeTraits<int16_t >;
1688
1744
Traits::StorageType attribute_value;
1689
1745
memcpy ((uint8_t *)&attribute_value, value, sizeof (Traits::StorageType));
@@ -1700,6 +1756,10 @@ esp_err_t get_attr_val_from_data(esp_matter_attr_val_t *val, EmberAfAttributeTyp
1700
1756
}
1701
1757
1702
1758
case ZCL_INT16U_ATTRIBUTE_TYPE:
1759
+ case ZCL_ENTRY_IDX_ATTRIBUTE_TYPE:
1760
+ case ZCL_GROUP_ID_ATTRIBUTE_TYPE:
1761
+ case ZCL_ENDPOINT_NO_ATTRIBUTE_TYPE:
1762
+ case ZCL_VENDOR_ID_ATTRIBUTE_TYPE:
1703
1763
case ZCL_PERCENT100THS_ATTRIBUTE_TYPE: {
1704
1764
using Traits = chip::app::NumericAttributeTraits<uint16_t >;
1705
1765
Traits::StorageType attribute_value;
@@ -1716,7 +1776,8 @@ esp_err_t get_attr_val_from_data(esp_matter_attr_val_t *val, EmberAfAttributeTyp
1716
1776
break ;
1717
1777
}
1718
1778
1719
- case ZCL_INT32S_ATTRIBUTE_TYPE: {
1779
+ case ZCL_INT32S_ATTRIBUTE_TYPE:
1780
+ case ZCL_INT24S_ATTRIBUTE_TYPE: {
1720
1781
using Traits = chip::app::NumericAttributeTraits<int32_t >;
1721
1782
Traits::StorageType attribute_value;
1722
1783
memcpy ((uint8_t *)&attribute_value, value, sizeof (Traits::StorageType));
@@ -1732,7 +1793,18 @@ esp_err_t get_attr_val_from_data(esp_matter_attr_val_t *val, EmberAfAttributeTyp
1732
1793
break ;
1733
1794
}
1734
1795
1735
- case ZCL_INT32U_ATTRIBUTE_TYPE: {
1796
+ case ZCL_INT32U_ATTRIBUTE_TYPE:
1797
+ case ZCL_TRANS_ID_ATTRIBUTE_TYPE:
1798
+ case ZCL_CLUSTER_ID_ATTRIBUTE_TYPE:
1799
+ case ZCL_ATTRIB_ID_ATTRIBUTE_TYPE:
1800
+ case ZCL_FIELD_ID_ATTRIBUTE_TYPE:
1801
+ case ZCL_EVENT_ID_ATTRIBUTE_TYPE:
1802
+ case ZCL_COMMAND_ID_ATTRIBUTE_TYPE:
1803
+ case ZCL_EPOCH_S_ATTRIBUTE_TYPE:
1804
+ case ZCL_ELAPSED_S_ATTRIBUTE_TYPE:
1805
+ case ZCL_DATA_VER_ATTRIBUTE_TYPE:
1806
+ case ZCL_DEVTYPE_ID_ATTRIBUTE_TYPE:
1807
+ case ZCL_INT24U_ATTRIBUTE_TYPE: {
1736
1808
using Traits = chip::app::NumericAttributeTraits<uint32_t >;
1737
1809
Traits::StorageType attribute_value;
1738
1810
memcpy ((uint8_t *)&attribute_value, value, sizeof (Traits::StorageType));
@@ -1748,7 +1820,13 @@ esp_err_t get_attr_val_from_data(esp_matter_attr_val_t *val, EmberAfAttributeTyp
1748
1820
break ;
1749
1821
}
1750
1822
1751
- case ZCL_INT64S_ATTRIBUTE_TYPE: {
1823
+ case ZCL_INT64S_ATTRIBUTE_TYPE:
1824
+ case ZCL_ENERGY_MWH_ATTRIBUTE_TYPE:
1825
+ case ZCL_AMPERAGE_MA_ATTRIBUTE_TYPE:
1826
+ case ZCL_POWER_MW_ATTRIBUTE_TYPE:
1827
+ case ZCL_INT56S_ATTRIBUTE_TYPE:
1828
+ case ZCL_INT48S_ATTRIBUTE_TYPE:
1829
+ case ZCL_INT40S_ATTRIBUTE_TYPE: {
1752
1830
using Traits = chip::app::NumericAttributeTraits<int64_t >;
1753
1831
Traits::StorageType attribute_value;
1754
1832
memcpy ((uint8_t *)&attribute_value, value, sizeof (Traits::StorageType));
@@ -1764,7 +1842,17 @@ esp_err_t get_attr_val_from_data(esp_matter_attr_val_t *val, EmberAfAttributeTyp
1764
1842
break ;
1765
1843
}
1766
1844
1767
- case ZCL_INT64U_ATTRIBUTE_TYPE: {
1845
+ case ZCL_INT64U_ATTRIBUTE_TYPE:
1846
+ case ZCL_FABRIC_ID_ATTRIBUTE_TYPE:
1847
+ case ZCL_NODE_ID_ATTRIBUTE_TYPE:
1848
+ case ZCL_POSIX_MS_ATTRIBUTE_TYPE:
1849
+ case ZCL_EPOCH_US_ATTRIBUTE_TYPE:
1850
+ case ZCL_SYSTIME_US_ATTRIBUTE_TYPE:
1851
+ case ZCL_SYSTIME_MS_ATTRIBUTE_TYPE:
1852
+ case ZCL_EVENT_NO_ATTRIBUTE_TYPE:
1853
+ case ZCL_INT56U_ATTRIBUTE_TYPE:
1854
+ case ZCL_INT48U_ATTRIBUTE_TYPE:
1855
+ case ZCL_INT40U_ATTRIBUTE_TYPE: {
1768
1856
using Traits = chip::app::NumericAttributeTraits<uint64_t >;
1769
1857
Traits::StorageType attribute_value;
1770
1858
memcpy ((uint8_t *)&attribute_value, value, sizeof (Traits::StorageType));
@@ -1780,7 +1868,9 @@ esp_err_t get_attr_val_from_data(esp_matter_attr_val_t *val, EmberAfAttributeTyp
1780
1868
break ;
1781
1869
}
1782
1870
1783
- case ZCL_ENUM8_ATTRIBUTE_TYPE: {
1871
+ case ZCL_ENUM8_ATTRIBUTE_TYPE:
1872
+ case ZCL_STATUS_ATTRIBUTE_TYPE:
1873
+ case ZCL_PRIORITY_ATTRIBUTE_TYPE: {
1784
1874
using Traits = chip::app::NumericAttributeTraits<uint8_t >;
1785
1875
Traits::StorageType attribute_value;
1786
1876
memcpy ((uint8_t *)&attribute_value, value, sizeof (Traits::StorageType));
@@ -1844,6 +1934,22 @@ esp_err_t get_attr_val_from_data(esp_matter_attr_val_t *val, EmberAfAttributeTyp
1844
1934
break ;
1845
1935
}
1846
1936
1937
+ case ZCL_BITMAP32_ATTRIBUTE_TYPE: {
1938
+ using Traits = chip::app::NumericAttributeTraits<uint32_t >;
1939
+ Traits::StorageType attribute_value;
1940
+ memcpy ((uint8_t *)&attribute_value, value, sizeof (Traits::StorageType));
1941
+ if (attribute_metadata->IsNullable ()) {
1942
+ if (Traits::IsNullValue (attribute_value)) {
1943
+ *val = esp_matter_nullable_bitmap32 (nullable<uint32_t >());
1944
+ } else {
1945
+ *val = esp_matter_nullable_bitmap32 (attribute_value);
1946
+ }
1947
+ } else {
1948
+ *val = esp_matter_bitmap32 (attribute_value);
1949
+ }
1950
+ break ;
1951
+ }
1952
+
1847
1953
case ZCL_SINGLE_ATTRIBUTE_TYPE: {
1848
1954
using Traits = chip::app::NumericAttributeTraits<float >;
1849
1955
Traits::StorageType attribute_value;
0 commit comments