From 9ade2349ad8b3d4d163839b4b0579bf41ed3b847 Mon Sep 17 00:00:00 2001 From: Albert Kharisov Date: Mon, 10 Jan 2022 23:46:20 +0400 Subject: [PATCH] [FL-2188] Fix Desktop crush: stub dolphin stats (#950) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix Desktop crush: stub dolphin stats Fix Desktop crash on butthurt > 11, so hardcoded animations are always available. Stub good dolphin stats till correct deeds management implemented. * Update ReadMe to match real project structure. Co-authored-by: あく --- ReadMe.md | 77 +++++++--------------------------- applications/ReadMe.md | 40 ++++++++++++++++++ applications/dolphin/dolphin.c | 13 +++--- assets/ReadMe.md | 7 ++++ lib/ReadMe.md | 25 +++++++++++ 5 files changed, 94 insertions(+), 68 deletions(-) create mode 100644 applications/ReadMe.md create mode 100644 lib/ReadMe.md diff --git a/ReadMe.md b/ReadMe.md index b7ced2a0..940e6051 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -140,67 +140,18 @@ make whole * Kickstarter page: [kickstarter.com](https://www.kickstarter.com/projects/flipper-devices/flipper-zero-tamagochi-for-hackers) * Forum: [forum.flipperzero.one](https://forum.flipperzero.one/) -# Folders structure +# Project structure -- applications - application and services - * accessor - Wiegand server - * archive - Archive and file manager - * bt - BLE service and application - * cli - Console service - * debug_tools - different tools that we use on factory and for debug - * dialogs - service for showing GUI dialogs - * dolphin - dolphin service and supplementary apps - * gpio-tester - GPIO control application - * gui - GUI service - * ibutton - ibutton application, onewire keys and more - * input - input service - * irda - irda application, controls your IR devices - * irda_monitor - irda debug tool - * lfrfid - LF RFID application - * lfrfid-debug - LF RFID debug tool - * loader - application loader service - * menu - main menu service - * music-player - music player app (demo) - * nfc - NFC application, HF rfid, EMV and etc - * notification - notification service - * power - power service - * power-observer - power debug tool - * scened-app-example - c++ application example - * storage - storage service, internal + sdcard - * storage_settings - storage settings app - * subghz - subghz application, 433 fobs and etc - * tests - unit tests and etc -- assets - assets used by applications and services - * compiled - compilation results - * icons - source icons images -- bootloader - bootloader for flipper - * src - bootloader sources - * targets - targets' hal and implementation -- core - core libraries: home for furi -- debug - debug helpers, plugins and tools -- docker - docker image sources (used for automated firmware build) -- documentation - documentation generation system configs and input files -- firmware - firmware for flipper - * targets - targets' hal and implementation -- lib - different libraries and drivers that apps and firmware uses - * ST25RFAL002 - ST253916 driver and NFC hal - * STM32CubeWB - STM32WB hal - * app-scened-template - scened template app library - * app-template - template app library - * callback-connector - callback connector library - * common-api - common api declaration library - * cyfral - cyfral library - * drivers - drivers that we wrote - * fatfs - external storage file system - * fnv1a-hash - fnv1a hash library - * irda - irda library - * littlefs - internal storage file system - * mlib - algorithms and containers - * nfc_protocols - nfc protocols library - * onewire - one wire library - * qrcode - qr code generator library - * subghz - subghz library - * toolbox - toolbox of things that we are using but don't place in core - * u8g2 - graphics library that we use to draw GUI -- make - make helpers -- scripts - supplementary scripts +- `applications` - Applications and services used in firmware +- `assets` - Assets used by applications and services +- `bootloader` - Bootloader source code +- `core` - Furi Core: os level primitives and helpers +- `debug` - Debug tool: GDB-plugins, SVD-file and etc +- `docker` - Docker image sources (used for firmware build automation) +- `documentation` - Documentation generation system configs and input files +- `firmware` - Firmware source code +- `lib` - Our and 3rd party libraries, drivers and etc... +- `make` - Make helpers +- `scripts` - Supplementary scripts and python libraries home + +Also pay attention to `ReadMe.md` files inside of those directories. diff --git a/applications/ReadMe.md b/applications/ReadMe.md new file mode 100644 index 00000000..022092c6 --- /dev/null +++ b/applications/ReadMe.md @@ -0,0 +1,40 @@ +# Structure + +- `about` - Small About application that shows flipper info +- `accessor` - Wiegand server +- `archive` - Archive and file manager +- `bad_usb` - Bad USB application +- `bt` - BLE service and application +- `cli` - Console service and API +- `crypto` - Crypto cli tools +- `debug_tools` - Different tools that we use for debug +- `desktop` - Desktop service +- `dialogs` - Dialogs service: GUI Dialogs for your app +- `dolphin` - Dolphin service and supplementary apps +- `gpio` - GPIO application: includes USART bridge and GPIO control +- `gui` - GUI service and API +- `ibutton` - iButton application, onewire keys and more +- `input` - Input service +- `irda` - Irda application, controls your IR devices +- `irda_monitor` - Irda debug tool +- `lfrfid` - LF RFID application +- `lfrfid_debug` - LF RFID debug tool +- `loader` - Application loader service +- `music_player` - Music player app (demo) +- `nfc` - NFC application, HF rfid, EMV and etc +- `notification` - Notification service +- `power` - Power service +- `power_observer` - Power debug tool +- `rpc` - RPC service and API +- `scened_app_example` - C++ application example +- `snake_game` - Snake game application +- `storage` - Storage service, internal + sdcard +- `storage_settings` - Storage settings app +- `subghz` - Subghz application, 433 fobs and etc +- `system` - System settings, tools and API +- `tests` - Unit tests and etc +- `u2f` - U2F Application + +- `application.c` - Firmware application list source +- `application.h` - Firmware application list header +- `application.mk` - Makefile helper diff --git a/applications/dolphin/dolphin.c b/applications/dolphin/dolphin.c index 9f9fe508..b401a217 100644 --- a/applications/dolphin/dolphin.c +++ b/applications/dolphin/dolphin.c @@ -111,13 +111,16 @@ int32_t dolphin_srv(void* p) { furi_pubsub_publish(dolphin->pubsub, &event); } } else if(event.type == DolphinEventTypeStats) { - event.stats->icounter = dolphin->state->data.icounter; - event.stats->butthurt = dolphin->state->data.butthurt; + // TODO: correct icounter/butthurt changing, stub till then + event.stats->icounter = 0; + event.stats->butthurt = 0; event.stats->timestamp = dolphin->state->data.timestamp; - event.stats->level = dolphin_get_level(dolphin->state->data.icounter); - event.stats->level_up_is_pending = - !dolphin_state_xp_to_levelup(dolphin->state->data.icounter); + event.stats->level = 1; + event.stats->level_up_is_pending = 0; } else if(event.type == DolphinEventTypeFlush) { + // TODO: correct icounter/butthurt changing, stub till then + dolphin->state->data.butthurt = 0; + dolphin->state->data.icounter = 0; dolphin_state_save(dolphin->state); } dolphin_event_release(dolphin, &event); diff --git a/assets/ReadMe.md b/assets/ReadMe.md index 57fe3472..1afaef62 100644 --- a/assets/ReadMe.md +++ b/assets/ReadMe.md @@ -32,3 +32,10 @@ Good starting point: https://docs.unrealengine.com/4.27/en-US/ProductionPipeline Don't include assets that you are not using, compiler is not going to strip unused assets. +# Structure + +- `compiled` - Output folder for compiled assets. +- `dolphin` - Dolphin game assets sources. Goes to `compiled` and `resources` folders. +- `icons` - Icons sources. Goes to `compiled` folder. +- `protobuf` - Protobuf sources. Goes to `compiled` folder. +- `resources` - Assets that is going to be provisioned to SD card. diff --git a/lib/ReadMe.md b/lib/ReadMe.md new file mode 100644 index 00000000..ec36350a --- /dev/null +++ b/lib/ReadMe.md @@ -0,0 +1,25 @@ +# Structure + +- `app-scened-template` - Scened template app library +- `app-template` - Template app library +- `callback-connector` - Callback connector library +- `common-api` - Common api declaration library +- `cyfral` - Cyfral library +- `drivers` - Drivers that we wrote +- `fatfs` - External storage file system +- `flipper_file` - Flipper File Format library +- `fnv1a-hash` - Fnv1a hash library +- `irda` - Irda library +- `libusb_stm32` - STM32 USB library +- `littlefs` - Internal storage file system +- `micro-ecc` - Elyptic Curve Crpytography library +- `mlib` - Algorithms and containers +- `nanopb` - Nano Protobuf library +- `nfc_protocols` - Nfc protocols library +- `onewire` - One wire library +- `qrcode` - Qr code generator library +- `ST25RFAL002` - ST253916 driver and NFC hal +- `STM32CubeWB` - STM32WB series cube package +- `subghz` - Subghz library +- `toolbox` - Toolbox of things that we are using but don't place in core +- `u8g2` - Graphics library that we use to draw GUI