Просмотр исходного кода

[FL-2188] Fix Desktop crush: stub dolphin stats (#950)

* 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: あく <alleteam@gmail.com>
Albert Kharisov 4 лет назад
Родитель
Сommit
9ade2349ad
5 измененных файлов с 95 добавлено и 69 удалено
  1. 15 64
      ReadMe.md
  2. 40 0
      applications/ReadMe.md
  3. 8 5
      applications/dolphin/dolphin.c
  4. 7 0
      assets/ReadMe.md
  5. 25 0
      lib/ReadMe.md

+ 15 - 64
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
-
-- 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
+# Project structure
+
+- `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.

+ 40 - 0
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

+ 8 - 5
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);

+ 7 - 0
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.

+ 25 - 0
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