[FL-1237] Notifications app (#476)

* Notification app: init
* Notification app: separate message sequences
* Notification app: rename notifications to notification
* Notification app: rework api
* Notification app: new sequences for charger
* Power app: add state for better led handling
* Power app: NotificationSequence type, notification led process
* Blink app: use notifications
* Notification app: sound and vibro notifications
* Notification app: note messages
* Notification app: more messages
* Notification app: update note message generator
* Blink app: fix state counter
* Notification app: fix delay event
* App sd-filesystem: notifications
* App notifications: headers c++ compatibility
* App notifications: Cmaj success chord sequence
* App iButton: use notifications
* App notification: display backlight notifications
* App notification: add "display on" message to success and error sequences
* App accessor: use notifications
* App ibutton: guard onewire key read
* Lib-RFAL: remove api_hal_light usage
* App notification: add blocking mode, rework display api
* Cli led command: use internal notification instead of direc access to leds.
* App unit test: use notifications
* App lfrfid: use notifications
* Apps: close notification record
* App subghz: rough use of notifications
* App notificaton: ignore reset flag
* App strobe: removed
* Lib irda decoder: fix nec decoding
* App irda: fix assert, use notifications
* Apps: use notifications
* Fix IRDA tests
* Cli: better var naming
* App notification: readable sources

Co-authored-by: Albert Kharisov <albert@flipperdevices.com>
Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
SG
2021-05-24 23:44:14 +10:00
committed by GitHub
parent eac8626c8c
commit 2daf65b62b
40 changed files with 1993 additions and 365 deletions

View File

@@ -11,9 +11,9 @@ const uint32_t test_nec_input1[] = {
1415838, 9080, 4436, 611, 494, 600, 505, 578, 500, 608, 501, 602, 502, 580, 498, 606, 508, 605, 500, 583, 1633, 608, 1608, 611, 1631, 578, 1638, 602, 1614, 606, 1637, 583, 1633, 607, 1609, 611, 494, 600, 505, 570, 500, 604, 501, 602, 502, 581, 497, 606, 499, 605, 499, 583, 1633, 617, 1608, 611, 1631, 579, 1638, 602};
const IrdaMessage test_nec_expected1[] = {
{IrdaProtocolNEC, 0, 0, false},
{IrdaProtocolNEC, 0, 0, true},
{IrdaProtocolNEC, 0, 0, false},
{IrdaProtocolNEC, 0xFF00, 0, false},
{IrdaProtocolNEC, 0xFF00, 0, true},
{IrdaProtocolNEC, 0xFF00, 0, false},
};
const uint32_t test_nec_input2[] = {
@@ -124,57 +124,57 @@ const uint32_t test_nec_input2[] = {
};
const IrdaMessage test_nec_expected2[] = {
{IrdaProtocolNEC, 0, 0x02, false},
{IrdaProtocolNEC, 0, 0x02, true},
{IrdaProtocolNEC, 0, 0x02, false},
{IrdaProtocolNEC, 0, 0x02, true},
{IrdaProtocolNEC, 0, 0x02, true},
{IrdaProtocolNEC, 0, 0x02, true},
{IrdaProtocolNEC, 0, 0x02, true},
{IrdaProtocolNEC, 0, 0x02, true},
{IrdaProtocolNEC, 0, 0x02, true},
{IrdaProtocolNEC, 0, 0x02, true},
{IrdaProtocolNEC, 0, 0x02, true},
{IrdaProtocolNEC, 0, 0x02, true},
{IrdaProtocolNEC, 0, 0x02, true},
{IrdaProtocolNEC, 0, 0x02, true},
{IrdaProtocolNEC, 0, 0x02, true},
{IrdaProtocolNEC, 0, 0x02, true},
{IrdaProtocolNEC, 0, 0x02, true},
{IrdaProtocolNEC, 0, 0x02, true},
{IrdaProtocolNEC, 0, 0x02, true},
{IrdaProtocolNEC, 0, 0x06, false},
{IrdaProtocolNEC, 0, 0x06, true},
{IrdaProtocolNEC, 0, 0x04, false},
{IrdaProtocolNEC, 0, 0x04, true},
{IrdaProtocolNEC, 0, 0x08, false},
{IrdaProtocolNEC, 0, 0x08, true},
{IrdaProtocolNEC, 0, 0x08, false},
{IrdaProtocolNEC, 0, 0x08, true},
{IrdaProtocolNEC, 0, 0x08, false},
{IrdaProtocolNEC, 0, 0x08, false},
{IrdaProtocolNEC, 0, 0x08, false},
{IrdaProtocolNEC, 0, 0x08, false},
{IrdaProtocolNEC, 0, 0x08, false},
{IrdaProtocolNEC, 0, 0x08, false},
{IrdaProtocolNEC, 0, 0x08, false},
{IrdaProtocolNEC, 0, 0x08, false},
{IrdaProtocolNEC, 0, 0x08, false},
{IrdaProtocolNEC, 0, 0x08, false},
{IrdaProtocolNEC, 0, 0x08, false},
{IrdaProtocolNEC, 0, 0x09, false},
{IrdaProtocolNEC, 0, 0x09, false},
{IrdaProtocolNEC, 0, 0x09, false},
{IrdaProtocolNEC, 0, 0x08, false},
{IrdaProtocolNEC, 0, 0x0A, false},
{IrdaProtocolNEC, 0, 0x08, false},
{IrdaProtocolNEC, 0, 0x08, true},
{IrdaProtocolNEC, 0, 0x08, false},
{IrdaProtocolNEC, 0, 0x08, true},
{IrdaProtocolNEC, 0, 0x08, false},
{IrdaProtocolNEC, 0, 0x0A, false},
{IrdaProtocolNEC, 0, 0x08, false},
{IrdaProtocolNEC, 0, 0x0A, false},
{IrdaProtocolNEC, 0, 0x0A, true},
{IrdaProtocolNEC, 0xFF00, 0x02, false},
{IrdaProtocolNEC, 0xFF00, 0x02, true},
{IrdaProtocolNEC, 0xFF00, 0x02, false},
{IrdaProtocolNEC, 0xFF00, 0x02, true},
{IrdaProtocolNEC, 0xFF00, 0x02, true},
{IrdaProtocolNEC, 0xFF00, 0x02, true},
{IrdaProtocolNEC, 0xFF00, 0x02, true},
{IrdaProtocolNEC, 0xFF00, 0x02, true},
{IrdaProtocolNEC, 0xFF00, 0x02, true},
{IrdaProtocolNEC, 0xFF00, 0x02, true},
{IrdaProtocolNEC, 0xFF00, 0x02, true},
{IrdaProtocolNEC, 0xFF00, 0x02, true},
{IrdaProtocolNEC, 0xFF00, 0x02, true},
{IrdaProtocolNEC, 0xFF00, 0x02, true},
{IrdaProtocolNEC, 0xFF00, 0x02, true},
{IrdaProtocolNEC, 0xFF00, 0x02, true},
{IrdaProtocolNEC, 0xFF00, 0x02, true},
{IrdaProtocolNEC, 0xFF00, 0x02, true},
{IrdaProtocolNEC, 0xFF00, 0x02, true},
{IrdaProtocolNEC, 0xFF00, 0x06, false},
{IrdaProtocolNEC, 0xFF00, 0x06, true},
{IrdaProtocolNEC, 0xFF00, 0x04, false},
{IrdaProtocolNEC, 0xFF00, 0x04, true},
{IrdaProtocolNEC, 0xFF00, 0x08, false},
{IrdaProtocolNEC, 0xFF00, 0x08, true},
{IrdaProtocolNEC, 0xFF00, 0x08, false},
{IrdaProtocolNEC, 0xFF00, 0x08, true},
{IrdaProtocolNEC, 0xFF00, 0x08, false},
{IrdaProtocolNEC, 0xFF00, 0x08, false},
{IrdaProtocolNEC, 0xFF00, 0x08, false},
{IrdaProtocolNEC, 0xFF00, 0x08, false},
{IrdaProtocolNEC, 0xFF00, 0x08, false},
{IrdaProtocolNEC, 0xFF00, 0x08, false},
{IrdaProtocolNEC, 0xFF00, 0x08, false},
{IrdaProtocolNEC, 0xFF00, 0x08, false},
{IrdaProtocolNEC, 0xFF00, 0x08, false},
{IrdaProtocolNEC, 0xFF00, 0x08, false},
{IrdaProtocolNEC, 0xFF00, 0x08, false},
{IrdaProtocolNEC, 0xFF00, 0x09, false},
{IrdaProtocolNEC, 0xFF00, 0x09, false},
{IrdaProtocolNEC, 0xFF00, 0x09, false},
{IrdaProtocolNEC, 0xFF00, 0x08, false},
{IrdaProtocolNEC, 0xFF00, 0x0A, false},
{IrdaProtocolNEC, 0xFF00, 0x08, false},
{IrdaProtocolNEC, 0xFF00, 0x08, true},
{IrdaProtocolNEC, 0xFF00, 0x08, false},
{IrdaProtocolNEC, 0xFF00, 0x08, true},
{IrdaProtocolNEC, 0xFF00, 0x08, false},
{IrdaProtocolNEC, 0xFF00, 0x0A, false},
{IrdaProtocolNEC, 0xFF00, 0x08, false},
{IrdaProtocolNEC, 0xFF00, 0x0A, false},
{IrdaProtocolNEC, 0xFF00, 0x0A, true},
};

View File

@@ -2,6 +2,7 @@
#include <furi.h>
#include <api-hal.h>
#include "minunit_vars.h"
#include <notification/notification-messages.h>
int run_minunit();
int run_minunit_test_irda_decoder();
@@ -9,28 +10,24 @@ int run_minunit_test_irda_decoder();
int32_t flipper_test_app(void* p) {
uint32_t test_result = 0;
api_hal_light_set(LightRed, 0x00);
api_hal_light_set(LightGreen, 0x00);
api_hal_light_set(LightBlue, 0xFF);
NotificationApp* notification = furi_record_open("notification");
notification_message_block(notification, &sequence_set_only_blue_255);
test_result |= run_minunit();
test_result |= run_minunit_test_irda_decoder();
/* power_charging_indication_handler() breaks 1 sec light on */
for(int i = 0; i < 1000; ++i) {
if(test_result == 0) {
// test passed
api_hal_light_set(LightRed, 0x00);
api_hal_light_set(LightGreen, 0xFF);
api_hal_light_set(LightBlue, 0x00);
} else {
// test failed
api_hal_light_set(LightRed, 0xFF);
api_hal_light_set(LightGreen, 0x00);
api_hal_light_set(LightBlue, 0x00);
}
delay(1);
if(test_result == 0) {
// test passed
notification_message(notification, &sequence_success);
notification_message(notification, &sequence_set_only_green_255);
} else {
// test failed
notification_message(notification, &sequence_error);
notification_message(notification, &sequence_set_only_red_255);
}
furi_record_close("notification");
return 0;
}