Skip to content

Commit 29ed482

Browse files
Modify command policy handling (#374)
# Purpose Basically just makes a minor change to how command policies are assigned/work. Task: https://uworbital.notion.site/Modify-command-policy-handling-aa594df7180d4bc2bb22db11193551c5 # New Changes - When creating commands you just set the command policy to the most restrictive policy you want. Rn all of our commands are available for PROD anyways. But PROD is now a subset of RND, so all PROD commands will work in RND. # Testing - Built and didn't break anything :) - Confirmed the OBC_ACTIVE_POLICY build flag works and is accessible in the code - I actually don't know how to formally test this because its part of a manager/task, so it's not like you can do unit tests. But the changes are pretty minor so... # Outstanding Changes - N/A
1 parent ad27a04 commit 29ed482

File tree

3 files changed

+14
-14
lines changed

3 files changed

+14
-14
lines changed

cmake/obc_build_options.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ if(NOT DEFINED ENABLE_BL_BYPASS)
2121
set(ENABLE_BL_BYPASS 1)
2222
endif()
2323

24-
if (NOT DEFINED CMD_POLICY)
25-
set(CMD_POLICY CMD_POLICY_RND)
24+
if (NOT DEFINED OBC_ACTIVE_POLICY)
25+
set(OBC_ACTIVE_POLICY CMD_POLICY_RND)
2626
endif()
2727

2828
if (NOT DEFINED COMMS_PHY)

obc/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ target_compile_definitions(${OUT_FILE_NAME} PRIVATE
101101
LOG_DEFAULT_LEVEL=${LOG_DEFAULT_LEVEL}
102102
LOG_DATE_TIME
103103
DEBUG=${DEBUG}
104-
CMD_POLICY=${CMD_POLICY}
104+
OBC_ACTIVE_POLICY=${OBC_ACTIVE_POLICY}
105105
COMMS_PHY=${COMMS_PHY}
106106
OBC_UART_BAUD_RATE=${OBC_UART_BAUD_RATE}
107107
CSDC_DEMO_ENABLED=${CSDC_DEMO_ENABLED}
@@ -181,7 +181,7 @@ target_compile_definitions(OBC-bl.out PRIVATE
181181
LOG_DEFAULT_OUTPUT_LOCATION=${LOG_DEFAULT_OUTPUT_LOCATION}
182182
LOG_DEFAULT_LEVEL=${LOG_DEFAULT_LEVEL}
183183
DEBUG=${DEBUG}
184-
CMD_POLICY=${CMD_POLICY}
184+
OBC_ACTIVE_POLICY=${OBC_ACTIVE_POLICY}
185185
COMMS_PHY=${COMMS_PHY}
186186
OBC_UART_BAUD_RATE=${OBC_UART_BAUD_RATE}
187187
CSDC_DEMO_ENABLED=${CSDC_DEMO_ENABLED}
@@ -212,7 +212,7 @@ target_compile_definitions(debug-tool.out PRIVATE
212212
LOG_DEFAULT_LEVEL=${LOG_DEFAULT_LEVEL}
213213
LOG_DATE_TIME
214214
DEBUG=${DEBUG}
215-
CMD_POLICY=${CMD_POLICY}
215+
OBC_ACTIVE_POLICY=${OBC_ACTIVE_POLICY}
216216
COMMS_PHY=${COMMS_PHY}
217217
OBC_UART_BAUD_RATE=${OBC_UART_BAUD_RATE}
218218
CSDC_DEMO_ENABLED=${CSDC_DEMO_ENABLED}

obc/app/modules/command_mgr/command_manager.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@ typedef struct {
2727
cmd_opt_t opts; // Mask of command options
2828
} cmd_info_t;
2929

30+
// CMD_POLICY_PROD is a subset of CMD_POLICY_RND. That is, if a command has PROD policy, it can also be run in RND.
3031
static const cmd_info_t cmdsConfig[] = {
31-
[CMD_END_OF_FRAME] = {NULL, CMD_POLICY_RND | CMD_POLICY_PROD, CMD_TYPE_NORMAL},
32-
[CMD_EXEC_OBC_RESET] = {execObcResetCmdCallback, CMD_POLICY_RND | CMD_POLICY_PROD, CMD_TYPE_CRITICAL},
33-
[CMD_RTC_SYNC] = {rtcSyncCmdCallback, CMD_POLICY_RND | CMD_POLICY_PROD, CMD_TYPE_NORMAL},
34-
[CMD_DOWNLINK_LOGS_NEXT_PASS] = {downlinkLogsNextPassCmdCallback, CMD_POLICY_RND | CMD_POLICY_PROD,
35-
CMD_TYPE_CRITICAL},
36-
[CMD_MICRO_SD_FORMAT] = {microSDFormatCmdCallback, CMD_POLICY_RND | CMD_POLICY_PROD, CMD_TYPE_CRITICAL},
37-
[CMD_PING] = {pingCmdCallback, CMD_POLICY_RND | CMD_POLICY_PROD, CMD_TYPE_NORMAL},
38-
[CMD_DOWNLINK_TELEM] = {downlinkTelemCmdCallback, CMD_POLICY_RND | CMD_POLICY_PROD, CMD_TYPE_NORMAL}};
32+
[CMD_END_OF_FRAME] = {NULL, CMD_POLICY_PROD, CMD_TYPE_NORMAL},
33+
[CMD_EXEC_OBC_RESET] = {execObcResetCmdCallback, CMD_POLICY_PROD, CMD_TYPE_CRITICAL},
34+
[CMD_RTC_SYNC] = {rtcSyncCmdCallback, CMD_POLICY_PROD, CMD_TYPE_NORMAL},
35+
[CMD_DOWNLINK_LOGS_NEXT_PASS] = {downlinkLogsNextPassCmdCallback, CMD_POLICY_PROD, CMD_TYPE_CRITICAL},
36+
[CMD_MICRO_SD_FORMAT] = {microSDFormatCmdCallback, CMD_POLICY_PROD, CMD_TYPE_CRITICAL},
37+
[CMD_PING] = {pingCmdCallback, CMD_POLICY_PROD, CMD_TYPE_NORMAL},
38+
[CMD_DOWNLINK_TELEM] = {downlinkTelemCmdCallback, CMD_POLICY_PROD, CMD_TYPE_NORMAL}};
3939

4040
#define CMDS_CONFIG_SIZE (sizeof(cmdsConfig) / sizeof(cmd_info_t))
4141

@@ -90,7 +90,7 @@ void obcTaskFunctionCommandMgr(void *pvParameters) {
9090
}
9191

9292
// Check if the command is allowed to be executed
93-
if (!(currCmdInfo.policy & OBC_ACTIVE_POLICY)) {
93+
if (currCmdInfo.policy == CMD_POLICY_RND && OBC_ACTIVE_POLICY == CMD_POLICY_PROD) {
9494
LOG_ERROR_CODE(OBC_ERR_CODE_CMD_NOT_ALLOWED);
9595
continue;
9696
}

0 commit comments

Comments
 (0)