Skip to content

Commit 7e01dc0

Browse files
test dummy function ins tatic analysis
1 parent 75c892a commit 7e01dc0

File tree

2 files changed

+136
-3
lines changed

2 files changed

+136
-3
lines changed

examples/closure-app/closure-common/src/ClosureControlEndpoint.cpp

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,139 @@ enum class ClosureControlTestEventTrigger : uint64_t
5454

5555
} // namespace
5656

57+
namespace {
58+
59+
/**
60+
* @brief Logs state transition information for debugging purposes
61+
* @param fromState The previous state
62+
* @param toState The new state
63+
* @param reason Optional reason for the state change
64+
*/
65+
void LogStateTransition(MainStateEnum fromState, MainStateEnum toState, const char * reason = nullptr)
66+
{
67+
const char * fromStateStr = "Unknown";
68+
const char * toStateStr = "Unknown";
69+
70+
// Convert from state enum to string
71+
switch (fromState)
72+
{
73+
case MainStateEnum::kStopped:
74+
fromStateStr = "Stopped";
75+
break;
76+
case MainStateEnum::kCalibrating:
77+
fromStateStr = "Calibrating";
78+
break;
79+
case MainStateEnum::kMoving:
80+
fromStateStr = "Moving";
81+
break;
82+
case MainStateEnum::kWaitingForMotion:
83+
fromStateStr = "WaitingForMotion";
84+
break;
85+
case MainStateEnum::kError:
86+
fromStateStr = "Error";
87+
break;
88+
case MainStateEnum::kProtected:
89+
fromStateStr = "Protected";
90+
break;
91+
case MainStateEnum::kDisengaged:
92+
fromStateStr = "Disengaged";
93+
break;
94+
case MainStateEnum::kSetupRequired:
95+
fromStateStr = "SetupRequired";
96+
break;
97+
default:
98+
fromStateStr = "UnknownState";
99+
break;
100+
}
101+
102+
// Convert to state enum to string
103+
switch (toState)
104+
{
105+
case MainStateEnum::kStopped:
106+
toStateStr = "Stopped";
107+
break;
108+
case MainStateEnum::kCalibrating:
109+
toStateStr = "Calibrating";
110+
break;
111+
case MainStateEnum::kMoving:
112+
toStateStr = "Moving";
113+
break;
114+
case MainStateEnum::kWaitingForMotion:
115+
toStateStr = "WaitingForMotion";
116+
break;
117+
case MainStateEnum::kError:
118+
toStateStr = "Error";
119+
break;
120+
case MainStateEnum::kProtected:
121+
toStateStr = "Protected";
122+
break;
123+
case MainStateEnum::kDisengaged:
124+
toStateStr = "Disengaged";
125+
break;
126+
case MainStateEnum::kSetupRequired:
127+
toStateStr = "SetupRequired";
128+
break;
129+
default:
130+
toStateStr = "UnknownState";
131+
break;
132+
}
133+
134+
if (reason != nullptr)
135+
{
136+
ChipLogProgress(AppServer, "Closure state transition: %s -> %s (Reason: %s)", fromStateStr, toStateStr, reason);
137+
}
138+
else
139+
{
140+
ChipLogProgress(AppServer, "Closure state transition: %s -> %s", fromStateStr, toStateStr);
141+
}
142+
}
143+
144+
/**
145+
* @brief Validates if a state transition is allowed
146+
* @param fromState The current state
147+
* @param toState The desired new state
148+
* @return true if transition is valid, false otherwise
149+
*/
150+
bool IsValidStateTransition(MainStateEnum fromState, MainStateEnum toState)
151+
{
152+
// Allow transitions to Error state from any state
153+
if (toState == MainStateEnum::kError)
154+
{
155+
return true;
156+
}
157+
158+
// Allow transitions from Error state to Stopped state
159+
if (fromState == MainStateEnum::kError && toState == MainStateEnum::kStopped)
160+
{
161+
return true;
162+
}
163+
164+
// Allow transitions from Protected/Disengaged/SetupRequired to Stopped
165+
if ((fromState == MainStateEnum::kProtected || fromState == MainStateEnum::kDisengaged ||
166+
fromState == MainStateEnum::kSetupRequired) && toState == MainStateEnum::kStopped)
167+
{
168+
return true;
169+
}
170+
171+
// Normal operational transitions
172+
switch (fromState)
173+
{
174+
case MainStateEnum::kStopped:
175+
return (toState == MainStateEnum::kCalibrating || toState == MainStateEnum::kMoving ||
176+
toState == MainStateEnum::kWaitingForMotion);
177+
case MainStateEnum::kCalibrating:
178+
return (toState == MainStateEnum::kStopped);
179+
case MainStateEnum::kMoving:
180+
return (toState == MainStateEnum::kStopped);
181+
case MainStateEnum::kWaitingForMotion:
182+
return (toState == MainStateEnum::kStopped || toState == MainStateEnum::kMoving);
183+
default:
184+
return false;
185+
}
186+
}
187+
188+
} // anonymous namespace
189+
57190
Status ClosureControlDelegate::HandleCalibrateCommand()
58191
{
59192
return ClosureManager::GetInstance().OnCalibrateCommand();

jenkins_integration/jenkinsFunctions.groovy

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def publishSonarAnalysis() {
4949

5050
// Prepare global SonarQube parameters
5151
def sonarqubeParams = [
52-
"-Dsonar.projectKey=matter_sdk",
52+
"-Dsonar.projectKey=github_matter_sdk",
5353
"-Dsonar.projectBaseDir=${env.WORKSPACE}",
5454
"-Dsonar.working.directory=${env.WORKSPACE}/sonar",
5555
"-Dsonar.token=${SONAR_SECRET}",
@@ -60,8 +60,8 @@ def publishSonarAnalysis() {
6060
"-Dsonar.qualitygate.wait=true",
6161
"-Dsonar.cfamily.threads=32",
6262
"-Dsonar.sourceEncoding=UTF-8",
63-
"-Dsonar.sources=.",
64-
"-Dsonar.inclusions=**/*.c,**/*.h,**/*.cpp,**/*.hpp",
63+
"-Dsonar.sources=examples/closure-app",
64+
"-Dsonar.inclusions=examples/closure-app/**/*.c,examples/closure-app/**/*.h,examples/closure-app/**/*.cpp,examples/closure-app/**/*.hpp",
6565
"-Dsonar.exclusions=third_party/**"
6666
]
6767

0 commit comments

Comments
 (0)