STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
idle_task.c File Reference
#include "idle_task.h"
#include "board_bringup.h"
#include "board_sleep.h"
#include "bringup_task.h"
#include "cmsis_os2.h"
#include "main.h"
#include "mode.h"
#include "radio_task.h"
Include dependency graph for idle_task.c:

Go to the source code of this file.

Macros

#define EV_MODE   (1U << 0)
#define EV_CMD   (1U << 1)
#define FRAME_HEARTBEAT   0x01U /* src/radio/frame.h FrameType::Heartbeat */

Functions

static self_test_battery_t read_battery (void *ctx, uint32_t now_ms, uint32_t budget_ms)
static bool on_usb (void *ctx)
static self_test_reply_t send_heartbeat (void *ctx, const idle_heartbeat_t *hb, uint32_t budget_ms)
static idle_command_t poll_command (void *ctx)
static bool work_waiting (void)
static void led1 (bool on)
static void idle_task (void *argument)
bool idle_task_start (void)
void idle_task_set_active (bool on)
void idle_task_command (mode_command_t command)
const idle_t * idle_task_state (void)

Variables

static const idle_config_t config
static idle_t idle
static osThreadId_t thread
static osMessageQueueId_t commands
static volatile bool want_active

Macro Definition Documentation

◆ EV_CMD

#define EV_CMD   (1U << 1)

Definition at line 12 of file idle_task.c.

Referenced by idle_task(), and idle_task_command().

◆ EV_MODE

#define EV_MODE   (1U << 0)

Definition at line 11 of file idle_task.c.

◆ FRAME_HEARTBEAT

#define FRAME_HEARTBEAT   0x01U /* src/radio/frame.h FrameType::Heartbeat */

Definition at line 13 of file idle_task.c.

Referenced by send_heartbeat().

Function Documentation

◆ idle_task()

◆ idle_task_command()

void idle_task_command ( mode_command_t command)

Definition at line 131 of file idle_task.c.

References commands, EV_CMD, osMessageQueuePut(), osOK, osThreadFlagsSet(), and thread.

Referenced by app_command().

◆ idle_task_set_active()

void idle_task_set_active ( bool on)

Definition at line 124 of file idle_task.c.

References EV_MODE, osThreadFlagsSet(), thread, and want_active.

Referenced by app_set_state().

◆ idle_task_start()

bool idle_task_start ( void )

Definition at line 113 of file idle_task.c.

References commands, idle_task(), NULL, osMessageQueueNew(), osPriorityBelowNormal, osThreadNew(), and thread.

Referenced by app_start().

◆ idle_task_state()

const idle_t * idle_task_state ( void )

Definition at line 138 of file idle_task.c.

References idle.

◆ led1()

void led1 ( bool on)
static

Definition at line 78 of file idle_task.c.

References GPIO_PIN_RESET, GPIO_PIN_SET, HAL_GPIO_WritePin(), LED1_GPIO_Port, and LED1_Pin.

Referenced by idle_task().

◆ on_usb()

bool on_usb ( void * ctx)
static

Definition at line 37 of file idle_task.c.

References board_bringup_on_usb().

Referenced by battery_assess(), and idle_task().

◆ poll_command()

idle_command_t poll_command ( void * ctx)
static

Definition at line 64 of file idle_task.c.

References commands, IDLE_CMD_ARM, IDLE_CMD_DISARM, IDLE_CMD_NONE, MODE_CMD_ARM, NULL, osMessageQueueGet(), and osOK.

Referenced by idle_task().

◆ read_battery()

self_test_battery_t read_battery ( void * ctx,
uint32_t now_ms,
uint32_t budget_ms )
static

Definition at line 31 of file idle_task.c.

References board_bringup_read_battery(), and bringup_task_board().

◆ send_heartbeat()

◆ work_waiting()

bool work_waiting ( void )
static

Definition at line 74 of file idle_task.c.

References commands, osMessageQueueGetCount(), and want_active.

Referenced by idle_task().

Variable Documentation

◆ commands

◆ config

◆ idle

◆ thread

osThreadId_t thread
static

Definition at line 27 of file idle_task.c.

◆ want_active

volatile bool want_active
static

Definition at line 29 of file idle_task.c.