Skip to content

Commit c40f069

Browse files
committed
Merge branch 'master' into delete_dynamic_bridge
2 parents a024790 + cd898c4 commit c40f069

File tree

136 files changed

+52788
-12690
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

136 files changed

+52788
-12690
lines changed

.github/workflows/tests.yaml

+5
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ jobs:
140140
src/app/zap-templates/zcl/data-model/chip/content-launch-cluster.xml \
141141
src/app/zap-templates/zcl/data-model/chip/descriptor-cluster.xml \
142142
src/app/zap-templates/zcl/data-model/chip/diagnostic-logs-cluster.xml \
143+
src/app/zap-templates/zcl/data-model/chip/dishwasher-mode-select-cluster.xml \
143144
src/app/zap-templates/zcl/data-model/chip/door-lock-cluster.xml \
144145
src/app/zap-templates/zcl/data-model/chip/ethernet-network-diagnostics-cluster.xml \
145146
src/app/zap-templates/zcl/data-model/chip/fan-control-cluster.xml \
@@ -154,6 +155,7 @@ jobs:
154155
src/app/zap-templates/zcl/data-model/chip/identify-cluster.xml \
155156
src/app/zap-templates/zcl/data-model/chip/illuminance-measurement-cluster.xml \
156157
src/app/zap-templates/zcl/data-model/chip/keypad-input-cluster.xml \
158+
src/app/zap-templates/zcl/data-model/chip/laundry-washer-mode-select-cluster.xml \
157159
src/app/zap-templates/zcl/data-model/chip/level-control-cluster.xml \
158160
src/app/zap-templates/zcl/data-model/chip/localization-configuration-cluster.xml \
159161
src/app/zap-templates/zcl/data-model/chip/low-power-cluster.xml \
@@ -173,8 +175,11 @@ jobs:
173175
src/app/zap-templates/zcl/data-model/chip/proxy-valid-cluster.xml \
174176
src/app/zap-templates/zcl/data-model/chip/pump-configuration-and-control-cluster.xml \
175177
src/app/zap-templates/zcl/data-model/chip/pwm-cluster.xml \
178+
src/app/zap-templates/zcl/data-model/chip/refrigerator-and-temperature-controlled-cabinet-mode-select-cluster.xml \
176179
src/app/zap-templates/zcl/data-model/chip/refrigerator-alarm.xml \
177180
src/app/zap-templates/zcl/data-model/chip/relative-humidity-measurement-cluster.xml \
181+
src/app/zap-templates/zcl/data-model/chip/rvc-clean-mode-select-cluster.xml \
182+
src/app/zap-templates/zcl/data-model/chip/rvc-run-mode-select-cluster.xml \
178183
src/app/zap-templates/zcl/data-model/chip/scene.xml \
179184
src/app/zap-templates/zcl/data-model/chip/software-diagnostics-cluster.xml \
180185
src/app/zap-templates/zcl/data-model/chip/switch-cluster.xml \

BUILD.gn

+1-1
Original file line numberDiff line numberDiff line change
@@ -179,8 +179,8 @@ if (current_toolchain != "${dir_pw_toolchain}/default:default") {
179179
deps += [
180180
"${chip_root}/src/app/server/java",
181181
"${chip_root}/src/controller/java",
182+
"${chip_root}/src/controller/java:onboarding_payload",
182183
"${chip_root}/src/platform/android:java",
183-
"${chip_root}/src/setup_payload/java",
184184
]
185185
}
186186

examples/all-clusters-app/all-clusters-common/all-clusters-app.matter

+38-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,18 @@
11
// This IDL was generated automatically by ZAP.
22
// It is for view/code review purposes only.
33

4+
struct ModeTagStruct {
5+
optional vendor_id mfgCode = 0;
6+
enum16 value = 1;
7+
optional char_string<64> tagName = 2;
8+
}
9+
10+
struct ModeOptionStruct {
11+
char_string<64> label = 0;
12+
int8u mode = 1;
13+
ModeTagStruct modeTags[] = 2;
14+
}
15+
416
struct ApplicationStruct {
517
int16u catalogVendorID = 0;
618
char_string applicationID = 1;
@@ -2296,22 +2308,43 @@ server cluster IcdManagement = 70 {
22962308

22972309
/** Attributes and commands for selecting a mode from a list of supported options. */
22982310
server cluster ModeSelect = 80 {
2311+
enum ModeTag : ENUM16 {
2312+
kAuto = 0;
2313+
kQuick = 1;
2314+
kQuiet = 2;
2315+
kLowNoise = 3;
2316+
kLowEnergy = 4;
2317+
kVacation = 5;
2318+
kMin = 6;
2319+
kMax = 7;
2320+
kNight = 8;
2321+
kDay = 9;
2322+
}
2323+
2324+
enum StatusCode : ENUM8 {
2325+
kSuccess = 0;
2326+
kUnsupportedMode = 1;
2327+
kGenericFailure = 2;
2328+
}
2329+
22992330
bitmap Feature : BITMAP32 {
2300-
kDeponoff = 0x1;
2331+
kOnOff = 0x1;
2332+
kExtendedStatus = 0x2;
23012333
}
23022334

2303-
struct SemanticTagStruct {
2304-
vendor_id mfgCode = 0;
2335+
struct ModeTagStruct {
2336+
optional vendor_id mfgCode = 0;
23052337
enum16 value = 1;
2338+
optional char_string<64> tagName = 2;
23062339
}
23072340

23082341
struct ModeOptionStruct {
23092342
char_string<64> label = 0;
23102343
int8u mode = 1;
2311-
SemanticTagStruct semanticTags[] = 2;
2344+
ModeTagStruct modeTags[] = 2;
23122345
}
23132346

2314-
readonly attribute char_string<32> description = 0;
2347+
readonly attribute char_string<64> description = 0;
23152348
readonly attribute nullable enum16 standardNamespace = 1;
23162349
readonly attribute ModeOptionStruct supportedModes[] = 2;
23172350
readonly attribute int8u currentMode = 3;

examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp

+11-12
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,30 @@ using namespace chip::app::Clusters::ModeSelect;
88
using chip::Protocols::InteractionModel::Status;
99

1010
using ModeOptionStructType = Structs::ModeOptionStruct::Type;
11-
using SemanticTag = Structs::SemanticTagStruct::Type;
11+
using ModeTagType = Structs::ModeTagStruct::Type;
1212
template <typename T>
1313
using List = app::DataModel::List<T>;
1414
using storage_value_type = const ModeOptionStructType;
1515
namespace {
16-
Structs::ModeOptionStruct::Type buildModeOptionStruct(const char * label, uint8_t mode,
17-
const List<const SemanticTag> & semanticTags)
16+
Structs::ModeOptionStruct::Type buildModeOptionStruct(const char * label, uint8_t mode, const List<const ModeTagType> & modeTags)
1817
{
1918
Structs::ModeOptionStruct::Type option;
20-
option.label = CharSpan::fromCharString(label);
21-
option.mode = mode;
22-
option.semanticTags = semanticTags;
19+
option.label = CharSpan::fromCharString(label);
20+
option.mode = mode;
21+
option.modeTags = modeTags;
2322
return option;
2423
}
2524
} // namespace
2625

27-
constexpr SemanticTag semanticTagsBlack[] = { { .value = 0 } };
28-
constexpr SemanticTag semanticTagsCappucino[] = { { .value = 0 } };
29-
constexpr SemanticTag semanticTagsEspresso[] = { { .value = 0 } };
26+
ModeTagType modeTagsBlack[] = { detail::Structs::ModeTagStruct::Type{ .value = 0 } };
27+
ModeTagType modeTagsCappucino[] = { detail::Structs::ModeTagStruct::Type{ .value = 0 } };
28+
ModeTagType modeTagsEspresso[] = { detail::Structs::ModeTagStruct::Type{ .value = 0 } };
3029

3130
// TODO: Configure your options for each endpoint
3231
storage_value_type StaticSupportedModesManager::coffeeOptions[] = {
33-
buildModeOptionStruct("Black", 0, List<const SemanticTag>(semanticTagsBlack)),
34-
buildModeOptionStruct("Cappuccino", 4, List<const SemanticTag>(semanticTagsCappucino)),
35-
buildModeOptionStruct("Espresso", 7, List<const SemanticTag>(semanticTagsEspresso))
32+
buildModeOptionStruct("Black", 0, List<const ModeTagType>(modeTagsBlack)),
33+
buildModeOptionStruct("Cappuccino", 4, List<const ModeTagType>(modeTagsCappucino)),
34+
buildModeOptionStruct("Espresso", 7, List<const ModeTagType>(modeTagsEspresso))
3635
};
3736
const StaticSupportedModesManager::EndpointSpanPair
3837
StaticSupportedModesManager::supportedOptionsByEndpoints[EMBER_AF_MODE_SELECT_CLUSTER_SERVER_ENDPOINT_COUNT] = {

examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter

+38-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,18 @@
11
// This IDL was generated automatically by ZAP.
22
// It is for view/code review purposes only.
33

4+
struct ModeTagStruct {
5+
optional vendor_id mfgCode = 0;
6+
enum16 value = 1;
7+
optional char_string<64> tagName = 2;
8+
}
9+
10+
struct ModeOptionStruct {
11+
char_string<64> label = 0;
12+
int8u mode = 1;
13+
ModeTagStruct modeTags[] = 2;
14+
}
15+
416
struct ApplicationStruct {
517
int16u catalogVendorID = 0;
618
char_string applicationID = 1;
@@ -2029,22 +2041,43 @@ server cluster BooleanState = 69 {
20292041

20302042
/** Attributes and commands for selecting a mode from a list of supported options. */
20312043
server cluster ModeSelect = 80 {
2044+
enum ModeTag : ENUM16 {
2045+
kAuto = 0;
2046+
kQuick = 1;
2047+
kQuiet = 2;
2048+
kLowNoise = 3;
2049+
kLowEnergy = 4;
2050+
kVacation = 5;
2051+
kMin = 6;
2052+
kMax = 7;
2053+
kNight = 8;
2054+
kDay = 9;
2055+
}
2056+
2057+
enum StatusCode : ENUM8 {
2058+
kSuccess = 0;
2059+
kUnsupportedMode = 1;
2060+
kGenericFailure = 2;
2061+
}
2062+
20322063
bitmap Feature : BITMAP32 {
2033-
kDeponoff = 0x1;
2064+
kOnOff = 0x1;
2065+
kExtendedStatus = 0x2;
20342066
}
20352067

2036-
struct SemanticTagStruct {
2037-
vendor_id mfgCode = 0;
2068+
struct ModeTagStruct {
2069+
optional vendor_id mfgCode = 0;
20382070
enum16 value = 1;
2071+
optional char_string<64> tagName = 2;
20392072
}
20402073

20412074
struct ModeOptionStruct {
20422075
char_string<64> label = 0;
20432076
int8u mode = 1;
2044-
SemanticTagStruct semanticTags[] = 2;
2077+
ModeTagStruct modeTags[] = 2;
20452078
}
20462079

2047-
readonly attribute char_string<32> description = 0;
2080+
readonly attribute char_string<64> description = 0;
20482081
readonly attribute nullable enum16 standardNamespace = 1;
20492082
readonly attribute ModeOptionStruct supportedModes[] = 2;
20502083
readonly attribute int8u currentMode = 3;

examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/CHIPToolActivity.kt

+7-7
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ import android.widget.Toast
2828
import androidx.appcompat.app.AlertDialog
2929
import androidx.appcompat.app.AppCompatActivity
3030
import androidx.fragment.app.Fragment
31-
import chip.setuppayload.SetupPayload
32-
import chip.setuppayload.SetupPayloadParser
33-
import chip.setuppayload.SetupPayloadParser.UnrecognizedQrCodeException
31+
import chip.onboardingpayload.OnboardingPayload
32+
import chip.onboardingpayload.OnboardingPayloadParser
33+
import chip.onboardingpayload.UnrecognizedQrCodeException
3434
import com.google.chip.chiptool.provisioning.AddressCommissioningFragment
3535
import com.google.chip.chiptool.provisioning.DeviceProvisioningFragment
3636
import com.google.chip.chiptool.provisioning.EnterNetworkFragment
@@ -151,10 +151,10 @@ class CHIPToolActivity :
151151
val uri = records[0].toUri()
152152
if (!uri?.scheme.equals("mt", true)) return
153153

154-
lateinit var setupPayload: SetupPayload
154+
lateinit var setupPayload: OnboardingPayload
155155
try {
156156
setupPayload =
157-
SetupPayloadParser().parseQrCode(uri.toString().toUpperCase())
157+
OnboardingPayloadParser().parseQrCode(uri.toString().toUpperCase())
158158
} catch (ex: UnrecognizedQrCodeException) {
159159
Log.e(TAG, "Unrecognized QR Code", ex)
160160
Toast.makeText(this, "Unrecognized QR Code", Toast.LENGTH_SHORT).show()
@@ -208,10 +208,10 @@ class CHIPToolActivity :
208208
val payload = JSONObject(payloadString)
209209

210210
// parse payload from JSON
211-
val setupPayload = SetupPayload()
211+
val setupPayload = OnboardingPayload()
212212
// set defaults
213213
setupPayload.discoveryCapabilities = setOf()
214-
setupPayload.optionalQRCodeInfo = mapOf()
214+
setupPayload.optionalQRCodeInfo = HashMap()
215215

216216
// read from payload
217217
setupPayload.version = payload.getInt("version")

examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/setuppayloadscanner/BarcodeFragment.kt

+11-14
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,10 @@ import androidx.camera.lifecycle.ProcessCameraProvider
3636
import androidx.core.content.ContextCompat
3737
import androidx.core.content.ContextCompat.checkSelfPermission
3838
import androidx.fragment.app.Fragment
39-
import chip.setuppayload.SetupPayload
40-
import chip.setuppayload.SetupPayloadParser
41-
import chip.setuppayload.SetupPayloadParser.SetupPayloadException
42-
import chip.setuppayload.SetupPayloadParser.InvalidEntryCodeFormatException
43-
import chip.setuppayload.SetupPayloadParser.UnrecognizedQrCodeException
39+
import chip.onboardingpayload.OnboardingPayload
40+
import chip.onboardingpayload.OnboardingPayloadException
41+
import chip.onboardingpayload.OnboardingPayloadParser
42+
import chip.onboardingpayload.UnrecognizedQrCodeException
4443
import com.google.chip.chiptool.R
4544
import com.google.chip.chiptool.SelectActionFragment
4645
import com.google.chip.chiptool.databinding.BarcodeFragmentBinding
@@ -182,14 +181,12 @@ class BarcodeFragment : Fragment() {
182181
}
183182

184183
private fun handleInputQrCode(qrCode: String) {
185-
lateinit var payload: SetupPayload
186-
var isShortDiscriminator = false
184+
lateinit var payload: OnboardingPayload
187185
try {
188-
payload = SetupPayloadParser().parseQrCode(qrCode)
189-
} catch (ex: SetupPayloadException) {
186+
payload = OnboardingPayloadParser().parseQrCode(qrCode)
187+
} catch (ex: OnboardingPayloadException) {
190188
try {
191-
payload = SetupPayloadParser().parseManualEntryCode(qrCode)
192-
isShortDiscriminator = true
189+
payload = OnboardingPayloadParser().parseManualPairingCode(qrCode)
193190
} catch (ex: Exception) {
194191
Log.e(TAG, "Unrecognized Manual Pairing Code", ex)
195192
Toast.makeText(requireContext(), "Unrecognized Manual Pairing Code", Toast.LENGTH_SHORT).show()
@@ -199,14 +196,14 @@ class BarcodeFragment : Fragment() {
199196
Toast.makeText(requireContext(), "Unrecognized QR Code", Toast.LENGTH_SHORT).show()
200197
}
201198
FragmentUtil.getHost(this@BarcodeFragment, Callback::class.java)
202-
?.onCHIPDeviceInfoReceived(CHIPDeviceInfo.fromSetupPayload(payload, isShortDiscriminator))
199+
?.onCHIPDeviceInfoReceived(CHIPDeviceInfo.fromSetupPayload(payload))
203200
}
204201

205202
private fun handleScannedQrCode(barcode: Barcode) {
206203
Handler(Looper.getMainLooper()).post {
207-
lateinit var payload: SetupPayload
204+
lateinit var payload: OnboardingPayload
208205
try {
209-
payload = SetupPayloadParser().parseQrCode(barcode.displayValue)
206+
payload = barcode.displayValue?.let { OnboardingPayloadParser().parseQrCode(it) } ?: return@post
210207
} catch (ex: UnrecognizedQrCodeException) {
211208
Log.e(TAG, "Unrecognized QR Code", ex)
212209
Toast.makeText(requireContext(), "Unrecognized QR Code", Toast.LENGTH_SHORT).show()

examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/setuppayloadscanner/CHIPDeviceInfo.kt

+5-6
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
package com.google.chip.chiptool.setuppayloadscanner
2020

2121
import android.os.Parcelable
22-
import chip.setuppayload.DiscoveryCapability
23-
import chip.setuppayload.SetupPayload
22+
import chip.onboardingpayload.DiscoveryCapability
23+
import chip.onboardingpayload.OnboardingPayload
2424
import kotlinx.parcelize.Parcelize
2525

2626
/** Class to hold the CHIP device information. */
@@ -36,16 +36,15 @@ data class CHIPDeviceInfo(
3636
val discoveryCapabilities: Set<DiscoveryCapability> = setOf(),
3737
val isShortDiscriminator: Boolean = false,
3838
val ipAddress: String? = null,
39-
4039
) : Parcelable {
4140

4241
companion object {
43-
fun fromSetupPayload(setupPayload: SetupPayload, isShortDiscriminator: Boolean = false): CHIPDeviceInfo {
42+
fun fromSetupPayload(setupPayload: OnboardingPayload): CHIPDeviceInfo {
4443
return CHIPDeviceInfo(
4544
setupPayload.version,
4645
setupPayload.vendorId,
4746
setupPayload.productId,
48-
setupPayload.discriminator,
47+
setupPayload.getLongDiscriminatorValue(),
4948
setupPayload.setupPinCode,
5049
setupPayload.commissioningFlow,
5150
setupPayload.optionalQRCodeInfo.mapValues { (_, info) ->
@@ -57,7 +56,7 @@ data class CHIPDeviceInfo(
5756
)
5857
},
5958
setupPayload.discoveryCapabilities,
60-
isShortDiscriminator
59+
setupPayload.hasShortDiscriminator
6160
)
6261
}
6362
}
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package com.google.chip.chiptool.setuppayloadscanner
22

33
import android.os.Parcelable
4-
import chip.setuppayload.OptionalQRCodeInfo.OptionalQRCodeInfoType
4+
import chip.onboardingpayload.OptionalQRCodeInfo.OptionalQRCodeInfoType
55
import kotlinx.parcelize.Parcelize
66

77
@Parcelize
88
data class QrCodeInfo(
99
val tag: Int,
1010
val type: OptionalQRCodeInfoType,
11-
val data: String,
11+
val data: String?,
1212
val intDataValue: Int
1313
) : Parcelable

examples/bridge-app/bridge-common/bridge-app.matter

+12
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,18 @@
11
// This IDL was generated automatically by ZAP.
22
// It is for view/code review purposes only.
33

4+
struct ModeTagStruct {
5+
optional vendor_id mfgCode = 0;
6+
enum16 value = 1;
7+
optional char_string<64> tagName = 2;
8+
}
9+
10+
struct ModeOptionStruct {
11+
char_string<64> label = 0;
12+
int8u mode = 1;
13+
ModeTagStruct modeTags[] = 2;
14+
}
15+
416
struct ApplicationStruct {
517
int16u catalogVendorID = 0;
618
char_string applicationID = 1;

0 commit comments

Comments
 (0)