Skip to content

Commit e744318

Browse files
committed
testing with ui_task
1 parent 1c29a55 commit e744318

File tree

5 files changed

+64
-11
lines changed

5 files changed

+64
-11
lines changed

stm32-modules/include/vacuum-module/firmware/ui_policy.hpp

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,30 @@ class UIPolicy {
1919
data.data(), Len);
2020
return ret == 0;
2121
}
22+
auto i2c_wr(uint8_t device_address, uint8_t register_address, uint8_t *data,
23+
uint16_t size) -> bool {
24+
auto ret =
25+
i2c_comms->i2c_write(device_address, register_address, data, size);
26+
return ret == 0;
27+
}
28+
auto i2c_read(uint16_t dev_addr, uint16_t reg, uint8_t *data, uint16_t size)
29+
-> bool {
30+
auto ret = i2c_comms->i2c_read(dev_addr, reg, data, size);
31+
return ret == 0;
32+
}
33+
auto i2c_master_write(uint16_t dev_addr, uint8_t *data, uint16_t size)
34+
-> bool {
35+
auto ret = i2c_comms->i2c_master_write(dev_addr, data, size);
36+
return ret == 0;
37+
}
38+
auto i2c_master_read(uint16_t dev_addr, uint8_t *data, uint16_t size)
39+
-> bool {
40+
auto ret = i2c_comms->i2c_master_read(dev_addr, data, size);
41+
return ret == 0;
42+
}
43+
auto static sleep_ms(uint32_t ms) -> void;
2244

23-
private:
45+
public:
2446
I2C *i2c_comms;
2547
};
2648
} // namespace ui_policy

stm32-modules/include/vacuum-module/vacuum-module/MPRLL0025PA00001A.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#include "firmware/vacuum_pressure_sensor_policy.hpp"
77

88
namespace vacuum_pressure_sensor {
9-
using hardware::VacuumPressureSensorPolicy;
9+
using vacuum_pressure_sensor::hardware::VacuumPressureSensorPolicy;
1010
using i2c::hardware::RxTxReturn;
1111

1212
template <typename P>

stm32-modules/include/vacuum-module/vacuum-module/ui_task.hpp

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,19 @@
66
#include <iterator>
77
#include <optional>
88

9+
#include "MPRLL0025PA00001A.hpp"
910
#include "core/is31fl_driver.hpp"
1011
#include "errors.hpp"
12+
#include "firmware/atmosphere_pressure_sensor_policy.hpp"
13+
#include "firmware/vacuum_pressure_sensor_policy.hpp"
1114
#include "hal/message_queue.hpp"
15+
#include "lps22df.hpp"
1216
#include "messages.hpp"
1317
#include "ot_utils/freertos/freertos_timer.hpp"
1418
#include "systemwide.h"
1519
#include "ui_policy.hpp"
20+
#include "vacuum-module/lps22df.hpp"
21+
#include "vacuum-module/mprll0025pa00001a.hpp"
1622

1723
namespace ui_task {
1824
using namespace ot_utils::freertos_timer;
@@ -104,6 +110,10 @@ const StatusBarState led_bar_internal = {
104110
.power = DEFAULT_POWER,
105111
.power_dt = 0,
106112
};
113+
using atmosphere_pressure_sensor::hardware::AtmospherePressureSensorPolicy;
114+
using lps22df::LPS222DF;
115+
using vacuum_pressure_sensor::MPRLL0025PA00001;
116+
using vacuum_pressure_sensor::hardware::VacuumPressureSensorPolicy;
107117

108118
using Message = messages::UIMessage;
109119

@@ -141,11 +151,21 @@ class UITask {
141151
if (!_initialized) {
142152
_policy = &policy;
143153

144-
if (!_led_driver.initialized()) {
145-
_led_driver.initialize(policy);
146-
_led_bar_internal.driver_ok = true;
147-
set_status_bar(Internal);
148-
}
154+
// testing abs sensors
155+
auto p_policy = VacuumPressureSensorPolicy(_policy->i2c_comms);
156+
abs_pressureA.initialize(&p_policy);
157+
abs_pressureB.initialize(&p_policy);
158+
159+
// testing atm sensor
160+
auto atm_policy =
161+
AtmospherePressureSensorPolicy(_policy->i2c_comms);
162+
atm_pressure.initialize(&atm_policy);
163+
164+
// if (!_led_driver.initialized()) {
165+
// _led_driver.initialize(policy);
166+
// _led_bar_internal.driver_ok = true;
167+
// set_status_bar(Internal);
168+
// }
149169
_message_queue.set_ready();
150170
_initialized = true;
151171
}
@@ -167,6 +187,14 @@ class UITask {
167187
hb_led_state = !hb_led_state;
168188
_policy->set_heartbeat_led(hb_led_state);
169189
hb_counter = 0;
190+
191+
// pressure sensor test
192+
auto abs_pressure = abs_pressureB.read_pressure();
193+
(void)abs_pressure;
194+
195+
// atmospheric pressure test
196+
// auto atm_reading = atm_pressure.read_pressure();
197+
// (void)atm_reading;
170198
}
171199

172200
// tic the statusbar leds
@@ -444,5 +472,8 @@ class UITask {
444472
bool hb_led_state = false;
445473
uint32_t hb_counter = 0;
446474
bool _led_update_pending = false;
475+
MPRLL0025PA00001 abs_pressureA{};
476+
MPRLL0025PA00001 abs_pressureB{};
477+
LPS222DF atm_pressure{};
447478
};
448479
} // namespace ui_task

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ auto main() -> int {
6969

7070
system_task.start(tasks::SYSTEM_TASK_PRIORITY, "System", &aggregator);
7171
host_comms_task.start(tasks::COMMS_TASK_PRIORITY, "Comms", &aggregator);
72-
ui_task.start(tasks::UI_TASK_PRIORITY, "UI", &aggregator, &i2c2_comms);
72+
ui_task.start(tasks::UI_TASK_PRIORITY, "UI", &aggregator, &i2c3_comms);
7373

7474
vTaskStartScheduler();
7575
return 0;

stm32-modules/vacuum-module/firmware/pump/pump_hardware.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -209,9 +209,9 @@ void pump_hardware_init(void) {
209209
pump_pwm_timer_init();
210210

211211
// Turn off pump
212-
hw_set_pump_duty_cycle(0);
213-
hw_start_pump_motor(false);
214-
hw_enable_pump_tach(false);
212+
hw_set_pump_duty_cycle(50);
213+
hw_start_pump_motor(true);
214+
hw_enable_pump_tach(true);
215215
}
216216

217217
void update_filtered_rpm(float new_rpm) {

0 commit comments

Comments
 (0)