b835d7a451
* Furi: replace obsolete furiac_exit with osThreadExit, drop obsolete apis and test. Rename systemd to flipper and move to separate file, cleanup. ApiHal: Rename timebase to os and move freertos hooks there, move insomnia api to power module. * Furi: new thread helper * Furi: cleanup thread documentation * Flipper, AppLoader: update to use FuriThread. Update tasks signatures to match FuriThreadCallback signature. * F4: rename API_HAL_TIMEBASE_DEBUG to API_HAL_OS_DEBUG * Applications: rename FuriApplication to FlipperApplication, use FuriThreadCallback signature for apps. * C++ app template sample, new exit method
33 lines
916 B
C
33 lines
916 B
C
#include <furi.h>
|
|
|
|
#define BACKLIGHT_TIME 10000
|
|
#define BACKLIGHT_FLAG_ACTIVITY 0x00000001U
|
|
|
|
static void event_cb(const void* value, void* ctx) {
|
|
osThreadFlagsSet((osThreadId_t)ctx, BACKLIGHT_FLAG_ACTIVITY);
|
|
}
|
|
|
|
int32_t backlight_control(void* p) {
|
|
// TODO open record
|
|
const GpioPin* backlight_record = &backlight_gpio;
|
|
|
|
// configure pin
|
|
gpio_init(backlight_record, GpioModeOutputPushPull);
|
|
gpio_write(backlight_record, true);
|
|
|
|
// open record
|
|
PubSub* event_record = furi_record_open("input_events");
|
|
subscribe_pubsub(event_record, event_cb, (void*)osThreadGetId());
|
|
|
|
while(1) {
|
|
// wait for event
|
|
if(osThreadFlagsWait(BACKLIGHT_FLAG_ACTIVITY, osFlagsWaitAny, BACKLIGHT_TIME) ==
|
|
BACKLIGHT_FLAG_ACTIVITY) {
|
|
gpio_write(backlight_record, true);
|
|
} else {
|
|
gpio_write(backlight_record, false);
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
} |