-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Chef] Create a ContactSensor to support LIT ICD (Linux Only) #37123
base: master
Are you sure you want to change the base?
Conversation
Changed Files
|
PR #37123: Size comparison from b02badf to 91317d1 Full report (20 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, nrfconnect, qpg, stm32, tizen)
|
PR #37123: Size comparison from b02badf to ef66372 Full report (71 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
|
PR #37123: Size comparison from 577b3f2 to 0cc62c4 Full report (72 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
|
PR #37123: Size comparison from 94a47ad to 387f7f2 Full report (14 builds for cc13x4_26x4, cc32xx, nrfconnect, qpg, stm32, tizen)
|
PR #37123: Size comparison from 652f786 to 4ccb849 Full report (58 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
|
PR #37123: Size comparison from b56134c to aa2cae7 Full report (3 builds for cc32xx, stm32)
|
PR #37123: Size comparison from c0e580c to 02b04ca Full report (20 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, nrfconnect, qpg, stm32, tizen)
|
compilation arguments
@@ -32,3 +32,6 @@ | |||
|
|||
// Allows app options (ports) to be configured on launch of app | |||
#define CHIP_DEVICE_ENABLE_PORT_PARAMS 1 | |||
|
|||
// Enable subscriptions synchronization | |||
#define CHIP_CONFIG_SYNCHRONOUS_REPORTS_ENABLED 1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SHould this only be enabled for LIT ICD?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is only used in examples/platform/silabs/MatterConfig.cpp . I'll remove this .
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a seperate feature on when we send out subscription report - it could be valuable to use the Synchronised report scheduler since it is in theory a better logic for ICDs
PR #37123: Size comparison from c0e580c to 0c37543 Full report (3 builds for cc32xx, stm32)
|
PR #37123: Size comparison from c0e580c to 359366a Full report (75 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
|
PR #37123: Size comparison from 5adee57 to 6c19c49 Full report (75 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
|
PR #37123: Size comparison from 5adee57 to 07a6174 Full report (75 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
|
@@ -894,6 +897,13 @@ def main() -> int: | |||
else: | |||
linux_args.append("chip_inet_config_enable_ipv4=false") | |||
|
|||
if options.enable_lit_icd: | |||
linux_args.append("chip_enable_icd_server = true") | |||
linux_args.append("chip_subscription_timeout_resumption = true") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the persistent subscription feature enabled? It is a requirement for this feature.
As a side comment, this changes the behavior on when check-in messages are sent out based on wether we are retrying to re-subscribe or not.
linux_args.append("chip_subscription_timeout_resumption = true") | ||
linux_args.append("chip_icd_report_on_active_mode = true") | ||
linux_args.append("chip_enable_icd_lit = true") | ||
linux_args.append("chip_enable_icd_dsls = true") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does the contact sensor implement this feature?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The contact sensor is this current code under chef.
" A json file with data used by the example dac provider to validate device attestation procedure.\n" | ||
#if CHIP_CONFIG_ENABLE_ICD_SERVER | ||
" --icdActiveModeDurationMs <icdActiveModeDurationMs>\n" | ||
" Sets the ICD active mode threshold (in milliseconds). (Default: 300) \n" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
" Sets the ICD active mode threshold (in milliseconds). (Default: 300) \n" | |
" Sets the ICD active mode duration (in milliseconds). (Default: 300) \n" |
@@ -774,6 +792,35 @@ bool HandleOption(const char * aProgram, OptionSet * aOptions, int aIdentifier, | |||
LinuxDeviceOptions::GetInstance().tcRequired.SetValue(static_cast<uint16_t>(atoi(aValue))); | |||
break; | |||
} | |||
#endif | |||
#if CHIP_CONFIG_ENABLE_ICD_SERVER | |||
case kDeviceOption_icdActiveModeDurationMs: { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
switch case doesn't validate that the ActiveModeDuration <= to IdleModeDuration; IIRC there is a req in the spec for this.
It is possible for the ICDManager to refuse a configuration even if the inupts are accepted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggest adding a check
As a general comment, the ICDServerConfig header isn't included in any files that use the ICD_SERVER define. It might be a good approach to include the config header in case there is include path change we renders the define undefined for the app. |
Description
Create a Chef ContactSensor to support LIT ICD .
Testing
For example: the following command to build and run ICD