Skip to content

Commit 9392b1c

Browse files
committed
Merge branch 'edge' into vm-pressure-sensor-policies
2 parents a0ad1c4 + aeaf9a0 commit 9392b1c

File tree

14 files changed

+530
-9
lines changed

14 files changed

+530
-9
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#ifdef __cplusplus
2+
extern "C" {
3+
#endif // __cplusplus
4+
5+
#include <stdbool.h>
6+
#include <stdint.h>
7+
8+
void pump_hardware_init(void);
9+
bool hw_start_pump_motor();
10+
bool hw_stop_pump_motor();
11+
void hw_set_pump_duty_cycle(uint16_t duty);
12+
uint16_t hw_get_pump_duty_cycle(void);
13+
bool hw_enable_pump_tach(bool enable);
14+
float hw_get_pump_rpm(void);
15+
void tach_period_overflow_callback(void);
16+
17+
#ifdef __cplusplus
18+
} // extern "C"
19+
#endif // __cplusplus
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#pragma once
2+
3+
#include <cstdint>
4+
5+
#include "firmware/pump_hardware.h"
6+
#include "systemwide.h"
7+
8+
namespace pump_policy {
9+
10+
class PumpPolicy {
11+
public:
12+
auto start_pump_motor() -> bool;
13+
auto stop_pump_motor() -> bool;
14+
auto set_pump_duty_cycle(uint16_t duty) -> void;
15+
auto get_pump_duty_cycle() -> uint16_t;
16+
auto enable_pump_tach() -> bool;
17+
auto get_pump_rpm() -> float;
18+
};
19+
} // namespace pump_policy
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#ifndef VENT_HARDWARE_H__
2+
#define VENT_HARDWARE_H__
3+
4+
#ifdef __cplusplus
5+
extern "C" {
6+
#endif // __cplusplus
7+
8+
#include <stdbool.h>
9+
#include <stdint.h>
10+
11+
#include "systemwide.h"
12+
13+
void vent_hardware_init(void);
14+
void hw_open_vent(bool open);
15+
16+
#ifdef __cplusplus
17+
} // extern "C"
18+
#endif // __cplusplus
19+
#endif // _VENT_HARDWARE_H__
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#pragma once
2+
3+
#include "systemwide.h"
4+
5+
namespace vent_policy {
6+
7+
class VentPolicy {
8+
public:
9+
auto open_vent(bool open) -> void;
10+
};
11+
} // namespace vent_policy

stm32-modules/vacuum-module/firmware/CMakeLists.txt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,16 @@ add_STM32G4_driver(${TARGET_MODULE_NAME})
66
add_STM32G4_freertos(${TARGET_MODULE_NAME})
77
add_STM32G4_usb(${TARGET_MODULE_NAME})
88

9+
set(COMMON_MCU_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../common/STM32G491")
10+
set(COMMON_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../common/src")
11+
set(GDBINIT_PATH "${CMAKE_CURRENT_BINARY_DIR}/../../common/STM32G491/gdbinit")
12+
set(COMMS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/host_comms_task")
913
set(SYSTEM_DIR "${CMAKE_CURRENT_SOURCE_DIR}/system")
1014
set(UI_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ui")
15+
set(VENT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/vent")
16+
set(PUMP_DIR "${CMAKE_CURRENT_SOURCE_DIR}/pump")
1117
set(ATMOSPHERE_PS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/atmosphere-pressure-sensor")
1218
set(VACUUM_PS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/vacuum-pressure-sensor")
13-
set(COMMS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/host_comms_task")
14-
set(COMMON_MCU_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../common/STM32G491")
15-
set(COMMON_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../common/src")
16-
set(GDBINIT_PATH "${CMAKE_CURRENT_BINARY_DIR}/../../common/STM32G491/gdbinit")
1719

1820
# Add source files that should be checked by clang-tidy here
1921
set(${TARGET_MODULE_NAME}_FW_LINTABLE_SRCS
@@ -25,6 +27,8 @@ set(${TARGET_MODULE_NAME}_FW_LINTABLE_SRCS
2527
${SYSTEM_DIR}/i2c_comms.cpp
2628
${UI_DIR}/freertos_ui_task.cpp
2729
${UI_DIR}/ui_policy.cpp
30+
${VENT_DIR}/vent_policy.cpp
31+
${PUMP_DIR}/pump_policy.cpp
2832
${ATMOSPHERE_PS_DIR}/atmosphere_pressure_sensor_policy.cpp
2933
${VACUUM_PS_DIR}/vacuum_pressure_sensor_policy.cpp
3034
)
@@ -42,6 +46,8 @@ set(${TARGET_MODULE_NAME}_FW_NONLINTABLE_SRCS
4246
${COMMS_DIR}/usbd_conf.c
4347
${COMMS_DIR}/usbd_desc.c
4448
${COMMS_DIR}/usb_hardware.c
49+
${VENT_DIR}/vent_hardware.c
50+
${PUMP_DIR}/pump_hardware.c
4551
${VACUUM_PS_DIR}/vacuum_pressure_sensor_hardware.c
4652
)
4753

stm32-modules/vacuum-module/firmware/main.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
#include "firmware/freertos_tasks.hpp"
66
#include "firmware/i2c_comms.hpp"
77
#include "firmware/i2c_hardware.h"
8+
#include "firmware/pump_hardware.h"
89
#include "firmware/system_stm32g4xx.h"
10+
#include "firmware/vent_hardware.h"
911
#include "firmware/vacuum_pressure_sensor_hardware.h"
1012
#include "ot_utils/freertos/freertos_task.hpp"
1113
#include "systemwide.h"
@@ -54,8 +56,10 @@ static auto i2c_handles = I2CHandlerStruct{};
5456
auto main() -> int {
5557
HardwareInit();
5658

57-
i2c_hardware_init(&i2c_handles);
59+
vent_hardware_init();
60+
pump_hardware_init();
5861
vacuum_pressure_sensor_hardware_init();
62+
i2c_hardware_init(&i2c_handles);
5963

6064
i2c2_comms.set_handle(i2c_handles.i2c2, I2C_BUS_2);
6165
i2c3_comms.set_handle(i2c_handles.i2c3, I2C_BUS_3);

0 commit comments

Comments
 (0)