Commit Graph
100 Commits
Author SHA1 Message Date
SGandGitHub 40e3df9979 iButton, RFID: rc-59 fixes (#1291)
* iButton: correct rename logic
* LFRFID: remove debug info, correct text
2022-06-02 21:56:03 +09:00
SGandGitHub 5de72e75df Compile commands generator (#1223) 2022-05-12 14:38:33 +03:00
fac4391af7 [FL-2499] Folders rename fix (#1190)
* Toolbox: dir_walk concept (like os.walk)
* Storage CLI: tree command
* Storage: fix folders copying, stage 1
* UnitTest: proper delays in subghz tests
* Toolbox: dir_walk, recursive and filter options
* dir_walk: unit tests
* Merge: Fix unused param
* SubGhz: cleaned up data parsing routine
* SubGhz unit test: cleaned up logs, yield data load
* SubGhz unit test: naming

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-05-10 17:05:36 +03:00
c60562a02c [FL-2502] Properly closing directory on free (#1174)
* Storage: better (at least working) mechanism to distinguish between files and dirs
* Storage API: debug log
* TarArchive: fix stream memleak
* TarArchive: fix another memleak
* Storage: better logs
* Storage: changed the log level to trace

Co-authored-by: あく <alleteam@gmail.com>
2022-04-27 19:16:06 +03:00
e5a1f20fd4 [FL-2423] Storage: blocking dir open (#1083)
* Storage: more unit tests
* Storage: blocking dir open, differentiate file and dir when freed.

Co-authored-by: あく <alleteam@gmail.com>
2022-04-04 15:27:48 +03:00
855f2584ab [FL-2415] Storage: blocking file open (#1078)
* Storage: correct replacement for "/any" path in path holder
* Unit tests: storage, blocking file open test
* File stream: error getter
* Storage: common copy and common remove now executes in external thread
* Filesystems: got rid of unused functions
* Storage: untangle dependencies, ram-frendly filesystem api
* iButton: context assertions
* Storage: pubsub messages
* Storage: wait for the file to close if it was open
* Storage: fix folder copying
* Storage: unit test
* Storage: pubsub documentation
* Fix merge error
* Fix memleak in storage test
* Storage: remove unused define

Co-authored-by: あく <alleteam@gmail.com>
2022-04-01 15:21:31 +03:00
SGandGitHub 648d8aaa54 [FL-2381] iButton CLI: update Metakom description, add forgotten read message #1072 2022-03-30 14:54:29 +03:00
SGandGitHub bdba15b366 [FL-2393][FL-2381] iButton, OneWire: move to plain C (#1068)
* iButton: getting started on the worker concept
* Hal delay: added global instructions_per_us variable
* iButton: one wire slave
* iButton: ibutton key setter
* iButton: one wire host, use ibutton_hal
* iButton\RFID: common pulse decoder concept
* iButton: cyfral decoder
* iButton: worker thread concept
* iButton: metakom decoder
* iButton: write key through worker
* iButton: worker mode holder
* iButton: worker improvements
* iButton: Cyfral encoder
* iButton: Metakom encoder
* lib: pulse protocol helpers
* iButton: Metakom decoder
* iButton: Cyfral decoder
* iButton worker: separate modes
* iButton: libs documentation
* HAL: iButton gpio modes
* iButton worker: rename modes file
* iButton worker, hal: move to LL
* iButton CLI: worker for reading and emulation commands
* iButton HAL: correct init and emulation sequence
* iButton cli: moved to plain C
* iButton: move to worker, small step to plain C
* Libs, one wire: move to plain C
* Libs: added forgotten files to compilation
* iButton writer: get rid of manual disable/enable irq
2022-03-29 16:01:56 +03:00
425a74a001 [FL-2383, FL-2384] iButton, Desktop bug fixes (#1062)
* iButton HAL: correct init and emulation sequence
* FuriHal: cleanup init/deinit routines for emulation timer
* FuriHal: cleanup TIM initialization routines in RFID and SubGhz
* iButton: delay in emulate loop
* Desktop: fix crash caused by invalid animation manager state, described in FL-2384

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-03-28 16:42:31 +03:00
SGandGitHub 76f524d4e9 [FL-2165] Do not allow "write" for keys that do not have write ability. #1055 2022-03-25 14:10:49 +03:00
SGandGitHub 3b8b2e59df SubGhz assets: niceflor is now in the correct state (#1011) 2022-03-03 16:30:53 +03:00
SGandGitHub c42cce3c6c [FL-2312] Flipper format: insert OR update (#1009)
* Flipper format: seek_to_end, key_exist
* Flipper Format: insert_or_update
2022-02-25 16:36:29 +03:00
274c12fc56 [FL-2274] Inventing streams and moving FFF to them (#981)
* Streams: string stream
* String stream: updated insert/delete api
* Streams: generic stream interface and string stream implementation
* Streams: helpers for insert and delete_and_insert
* FFF: now compatible with streams
* MinUnit: introduced tests with arguments
* FFF: stream access violation
* Streams: copy data between streams
* Streams: file stream
* FFF: documentation
* FFStream: documentation
* FFF: alloc as file
* MinUnit: support for nested tests
* Streams: changed delete_and_insert, now it returns success flag. Added ability dump stream inner parameters and data to cout.
* FFF: simplified file open function
* Streams: unit tests
* FFF: tests
* Streams: declare cache_size constant as define, to allow variable modified arrays
* FFF: lib moved to a separate folder
* iButton: new FFF
* RFID: new FFF
* Animations: new FFF
* IR: new FFF
* NFC: new FFF
* Flipper file format: delete lib
* U2F: new FFF
* Subghz: new FFF and streams
* Streams: read line
* Streams: split
* FuriCore: implement memset with extra asserts
* FuriCore: implement extra heap asserts without inventing memset
* Scene manager: protected access to the scene id stack with a size check
* NFC worker: dirty fix for issue where hal_nfc was busy on app start
* Furi: update allocator to erase memory on allocation. Replace furi_alloc with malloc.
* FuriCore: cleanup memmgr code.
* Furi HAL: furi_hal_init is split into critical and non-critical parts. The critical part is currently clock and console.
* Memmgr: added ability to track allocations and deallocations through console.
* FFStream: some speedup
* Streams, FF: minor fixes
* Tests: restore
* File stream: a slightly more thread-safe version of file_stream_delete_and_insert

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-02-18 22:53:46 +03:00
SGandGitHub c036ac6f18 Core: furriness reduced (#936) 2021-12-28 15:50:35 +03:00
58ce937321 [FL-1891] Release 0.42 bugfixes (#891)
* Fixed the "ibutton can only emulate after reading" bug
* Fixed previous fix. FIXES FOR THE FIX GOD! BUGS FOR THE BUG THRONE!
* Fixed "Repeat code" position on code input screen
* Changed CAME protocol icon
* Brewfile: add imagemagick missing assets compiler dependency
* Correct fix for "Repeat code" position on code input screen

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-12-12 14:03:39 +03:00
d6f080f7d0 [FL-2125] Cli: input_dump (#887)
* Cli: input_dump
* Tied together input_dump and input service
* input_dump and input service are now very tightly tied
* Input: remove record open in input_dump.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-12-09 19:53:29 +03:00
SGandGitHub e09009e497 LFRFID-debug: proxy comparator to gpio (#876) 2021-12-07 15:49:44 +03:00
SGandGitHub 013ed64cbb UART echo app (#831)
* HAL: add context to UART IRQ's
* Apps: uart echo/log application
* Sync api
* Another api sync
2021-11-20 01:19:31 +03:00
SGandGitHub 4cb986b534 [FL-1904] LFRFID: dedicated reading modes (#823)
* LFRFID: dedicated reading modes
* LFRFID: normal and indala mode
2021-11-16 11:47:49 +03:00
bb9c464a13 Storage: internal error getter (#806)
* Storage: internal error getter

Co-authored-by: あく <alleteam@gmail.com>
2021-11-04 13:46:45 +03:00
SGandGitHub 7f94ef3179 [FL-1926] Flipper File Format addons (#753)
* Flipper file format: remove C wrapper
* Flipper file format: open append, float, uint32_t as array, delete key, value count
* Flipper file format: fix scratchpad location
* Flipper file format: add EOL on append
* SubGHZ keystore: update encryption type read and write
* Flipper File Format: enhanced version
* Flipper File Format: fix naming
* Flipper File Format: fix "open" subset naming
* Flipper File Format: tests
* Flipper File Format: file helper naming
* SubGHZ keystore: merge with current state of flipper file format
* Flipper File Format:  update make recipe
* Flipper File Format: open new file method
2021-11-04 13:06:13 +03:00
b85a50f912 [FL-1792] RPC service (#698)
* Lib: added nanopb
* Hal rfid: fixed confused arguments
* Lib: update makefile, include nanopb
* Lib: remove nanopb
* Lib: add nanopb as submodule
* Assets: remove protobuf
* Assets: add protobuf message definitions as submodule
* WIP: [FL-1792] Add Protobuf RPC
* WIP: RPC add ping
* Add Ping
* Fix Ping, Add (WIP) storage
* Update submodule
* ble-glue: add ptotobuf to ble
* WIP: Add storage list test
* revert applications.mk
* Add Storage List command
* ble-glue: fix fast updating rx charachteristic
* ble serial: split long ble packets
* Add Storage Read/Write/Mkdir/Delete
* Disable tests
* Rename Element -> File
* Add md5sum, fix test leak
* Regenerate Protobuf
* Fix review comments
* ble-glue: sync f7 target

Co-authored-by: Albert Kharisov <albert@flipperdevices.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2021-10-12 14:48:34 +03:00
c8b36dd406 [FL-1791] Flipper file format (#740)
* Lib: new flipper file format library
* Lib: flipper file format cpp wrapper
* Storage: simple function for remove file and check error
* iButton app: remove file worker, use new flipper file format instead
* Dialogs: storage error message
* Storage: simple function for mkdir and check error
* iButton app: error messages
* Libs: update makefile
* RFID app: remove file worker, use new flipper file format instead
* Flipper File: library documentation

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-10-06 12:40:28 +03:00
SGandGitHub 416e1bda35 [FL-1881] iButton cli: enable "OTG" when performing "onewire search" #725 2021-09-27 17:00:03 +03:00
SGandGitHub 34f9493451 [FL-1747] iButton: fix forgotten timer IRQ #724 2021-09-25 02:13:07 +03:00
acb8508249 [FL-1880] Dialogs: fix semaphore lock (#722)
* Dialogs: fix queued message lock
* Dialogs: file select, fix queued message lock
* Dialogs: file select, free context after freeing callback holder
* Dialogs: better lock, separated wait and free

Co-authored-by: あく <alleteam@gmail.com>
2021-09-24 19:36:53 +03:00
c64052b491 [FL-1042][FL-1485][FL-1747] Metakom emulation fix (#721)
* iButton: Metakom emulation fix
* iButton: do not threat NVIC
* iButton: use proper GPIO from resources

Co-authored-by: あく <alleteam@gmail.com>
2021-09-24 15:16:59 +03:00
1448b9cf66 [FL-1819][FL-1848] About: hw, fw, boot version screens. Misc corrections of the About screens. (#719)
* About: hw, fw, boot version screens
* About: fix comment
* FuriHal: proper ARR in OS tick timer
* GpioTester: all pins on/off option
* Irda: fix release build
* Format sources

Co-authored-by: あく <alleteam@gmail.com>
2021-09-24 14:56:27 +03:00
SGandGitHub 0ff677b174 [FL-1862] Scripts, ob.py: improved return of error codes #720 2021-09-22 23:57:34 +03:00
SGandGitHub 9b0aa0d6dc Settings: about screen (#715) 2021-09-20 21:39:52 +03:00
8073992925 [FL-1587] RFID: Clock for emulation timer from antenna (#622)
* RFID: pull antenna down when emulating
* Rfid: fixed HID emulation by adding zero pulse every 4 bits
* Rfid: HID emulation fixed with DSP based FSK oscillator.
* Rfid: receive 125KHz clock for emulation timer from antenna and comparator
* Rfid: commented unused variable
* Firmware: rollback changes in f6.
* Add F7 target based on F6.
* F7/F6: update cube projects, apply changes to the targets, update linker scripts with correct RAM start values.
* FuriHal: RFID init routine.
* Scripts: update OTP tool for v11 board

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-09-10 05:19:02 +03:00
941b733046 [FL-1744] CLI: rename tm to ikey, add onewire search command (#672)
* CLI: rename tm to ikey, add onewire search command
* Cli onewire: removed delimiters in addresses

Co-authored-by: あく <alleteam@gmail.com>
2021-08-26 21:15:43 +03:00
153666f73f F6: USB glue cleanup and fixes (#666)
* USB-CDC: accepting the next data packet only if we process previous data
* USB-CDC: use USB FS packet size
* HAL-console: puts method
* Check: print assertion data
* FuriHal: rx stream free space aware CDC confirmation.
* Bootloader: pull down USB lines, leave the rest to the firmware or bootloader
* F6: cleanup and move USB code to usb-glue folder, add USB suspend/resume events to VCP, cleanup target.mk, fix missing motd message in cli when using minicom.
* F5: cleanup the rest of USB glue code, adjust LPM and Power info data in descriptor.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-08-22 13:43:45 +03:00
9d38f28de7 [FL-1682] Faster file receiving function. Storage management scripts. (#647)
* Storage-cli: the file write function is splitted into a function for working with text and function for raw data
* Storage-cli: read_chunks, renamed write_raw to write_chunk
* Storage-cli: fix typo
* SD Hal: fixed wrong read/write block address
* HAL-console: printf
* Storage benchmark: more popular sizes
* Toolbox: md5
* Storage-cli: better read_chunks function, md5 hash function
* Notification: fixed incorrect error message when loading settings
* Storage-cli: stat command
* Storage-cli: stat, "/" is also storage
* Scripts: add storage managment script
* Scripts, storage lib: send command with known response syntax instead of SOH
* Scripts: python3 from env
* Storage-cli: fixed mess with error texts
* Storage-cli: write, show welcome message only if we didn't have any errors
* Storage: poorly fixed folders copying
* Storage: close an old file if an error occurred while opening a new file
* Storage-cli: fixed storage info spacing
* Scripts: use positional arguments in storage.
* Scripts: explicit string encoding and decoding, documentation in comments.

Co-authored-by: あく <alleteam@gmail.com>
2021-08-19 01:06:18 +03:00
8d07e67dde [FL-1688] Incorrect SD read/write block address #649
Co-authored-by: あく <alleteam@gmail.com>
2021-08-16 23:14:27 +03:00
SGandGitHub b8b0417374 [FL-1629] Better RFID writing (#632)
* RFID: ground the antenna when writing
* RFID: forced switch to indala mode
2021-08-09 15:33:13 +03:00
SGandGitHub c799fcf416 Storage: fixed internal info if name is null (#631) 2021-08-09 04:27:51 +03:00
SGandGitHub 15592682ad Notification settings: correctly count values with a zero index (#621) 2021-08-03 20:07:39 +03:00
95f44f4d33 [FL-1625] Overcurrent monitoring. Cli command for external 3.3v dcdc control. (#615)
* Apps: power observer for overcurrent monitoring
* Power: cli command for enable\disable externat 3.3v dcdc

Co-authored-by: あく <alleteam@gmail.com>
2021-08-02 14:15:24 +03:00
SGandGitHub 6926cf8b7e [FL-1449] Indala reading and writing (#616)
* Rfid: indala 40134 validation and decoding
* Rfid: show indala info
* Rfid: decoder to output comparator signal on gpio pins
* Rfid: working indala 40134 decoder
* HAL: added function to change rfid timer parameters on the fly
* RFID: Indala reading, card detection, card verification
* Rfid: indala writing
2021-08-02 01:11:18 +03:00
SGandGitHub fb80f9537f [FL-1616] RFID: fix HID emulation (#610)
* Rfid: fixed HID emulation by adding zero pulse every 4 bits
* Rfid: HID emulation fixed with DSP based FSK oscillator.
2021-07-30 14:12:36 +03:00
653295df6f [FL-1609] Redirected malloc, calloc, realloc and free functions from newlib to freertos heap. (#604)
* Core: newlib-nano heap management functions replaced with freertos functions
* Core: replace newlib heap management functions for firmware only, not for bootloader
* Core, Linker: automatically determine available heap size at linking.

Co-authored-by: あく <alleteam@gmail.com>
2021-07-25 15:37:43 +03:00
81080a3a8b [FL-1191] Storage: CLI mkdir command #603
Co-authored-by: あく <alleteam@gmail.com>
2021-07-25 14:55:23 +03:00
ad421a81bc [FL-1191][FL-1524] Filesystem rework (#568)
* FS-Api: removed datetime manipulation functions and most of the file flags
* Filesystem: common proxy api
* Filesystem: renamed to Storage. Work has begun on a glue layer. Added functions for reentrance.
* Storage: sd mount and sd file open
* Storage: sd file close
* Storage: temporary test app
* Storage: free filedata on close
* Storage: sd file read and write
* Storage: added internal storage (LittleFS)
* Storage: renamed internal commands
* Storage: seek, tell, truncate, size, sync, eof
* Storage: error descriptions
* Storage: directory management api (open, close, read, rewind)
* Storage: common management api (stat, fs_stat, remove, rename, mkdir)
* Dolphin app and Notifications app now use raw storage.
* Storage: storage statuses renamed. Implemented sd card icon.
* Storage: added raw sd-card api.
* Storage settings: work started
* Assets: use new icons approach
* Storage settings: working storage settings
* Storage: completely redesigned api, no longer sticking out FS_Api
* Storage: more simplified api, getting error_id from file is hidden from user, pointer to api is hidden inside file
* Storage: cli info and format commands
* Storage-cli: file list
* Storage: a simpler and more reliable api
* FatFS: slightly lighter and faster config. Also disabled reentrancy and file locking functions. They moved to a storage service.
* Storage-cli: accommodate to the new cli api.
* Storage: filesystem api is separated into internal and common api.
* Cli: added the ability to print the list of free heap blocks
* Storage: uses a list instead of an array to store the StorageFile. Rewrote api calls to use semaphores instead of thread flags.
* Storage settings: added the ability to benchmark the SD card.
* Gui module file select: uses new storage api
* Apps: removed deprecated sd_card_test application
* Args lib: support for enquoted arguments
* Dialogs: a new gui app for simple non-asynchronous apps
* Dialogs: view holder for easy single view work
* File worker: use new storage api
* IButton and lfrrfid apps: save keys to any storage
* Apps: fix ibutton and lfrfid stack, remove sd_card_test.
* SD filesystem: app removed
* File worker: fixed api pointer type
* Subghz: loading assets using the new storage api
* NFC: use the new storage api
* Dialogs: the better api for the message element
* Archive: use new storage api
* Irda: changed assest path, changed app path
* FileWorker: removed unused file_buf_cnt
* Storage: copying and renaming files now works between storages
* Storage cli: read, copy, remove, rename commands
* Archive: removed commented code
* Storage cli: write command
* Applications: add SRV_STORAGE and SRV_DIALOGS
* Internal-storage: removed
* Storage: improved api
* Storage app: changed api pointer from StorageApp to Storage
* Storage: better file_id handling
* Storage: more consistent errors
* Loader: support for NULL icons
* Storage: do nothing with the lfs file or directory if it is not open
* Storage: fix typo
* Storage: minor float usage cleanup, rename some symbols.
* Storage: compact doxygen comments.

Co-authored-by: あく <alleteam@gmail.com>
2021-07-23 15:20:19 +03:00
SGandGitHub e31999b116 [FL-1371] Lfrfid app: add manufacturers to "Add manually" scene (#577)
* Lfrfid app: add manufacturers to "Add manually" scene
* Lfrfid app: fix submenu name size
2021-07-13 12:06:54 +03:00
54114553c1 [FL-1517] Maximum heap block stat for os_info cli cmd. (#564)
* Memmgr: heap_get_max_free_block function. Add "Maximum heap block" to os_info cmd.
* Cli: split os_info into ps and free commands

Co-authored-by: あく <alleteam@gmail.com>
2021-07-05 16:01:02 +03:00
SGandGitHub f153a745eb [FL-1320] Fix archive memleak (#565)
* iButton: fix timer initialization
* Archive: fix strings memleak
* Archive: optimize string handling
* Archive: fix strings non-memleak
2021-07-05 15:34:58 +03:00
SGandGitHub 29da0e360c [FL-1329] Settings (#563)
* Menu: secondary menu rendering
* Manu: reset window position on enter to new menu
* App-loader: settings menu
* Applications: add settings app list
* App backlight-control: all work related to turning off the display is now in the notification app
* App notification: settings save and load
* Gui: variable item list module
* App: new notification settings app
* Display: backlight is now fully serviced in the notification app
* Gui: update variable item list module documentation
2021-07-05 01:03:56 +03:00
7734fb4018 [FL-1371][FL-1502] Lfrfid app: fixes. (#555)
* Gui module byte-input: changed api
* Gui: changed font height in multiline text according to guideline
* Apps lrfid, nfc: changed send and receive icon
* App lfrfid: fix text, fix scene switсh
* Elements: multiline text framed, fix paddings
* Gui: remove duplicate definition of elements_multiline_text_framed
* App NFC: update byte_input callback signature
* App subghz: fix text lines in capture scene
* App subghz: position of the text is aligned with the guidelines and other scenes
* App subghz: removed mockup

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-07-04 19:01:16 +03:00
b09f68c43d Removed app floopper-bloopper and font FontGlyph (#549)
* Remove app floopper-bloopper and FontGlyph
* Gui: proper viewport allocator declaration

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-07-01 14:33:43 +03:00
SGandGitHub 7a13391b2b [FL-1371] New LF-RFID app. Second encounter. (#547)
* File worker: file operations helper.
* Notification app: removed yield
* File worker: write operations, calls to system file widgets
* App ibutton: use file worker
* Lfrfid: generic key loading, add path helper and hex conversion to lib
* FileWorker: plain C verison
* FileWorker: add to lib.mk
* FileWorker: add to C sources, instead of CPP
* Lfrfid: save scene
* App lfrfid: add key scene, saved key menu
* App lfrfid: saved key info scene
* App lfrfid: delete key scene
2021-06-30 15:02:46 +03:00
SGandGitHub dce3665f63 File worker helper. Slightly optimized iButton app code size. (#545)
* File worker: file operations helper
* Notification app: removed yield
* File worker: write operations, calls to system file widgets
* App ibutton: use file worker
* App ibutton: small save fix, forgotten byte
2021-06-29 16:08:45 +03:00
SGandGitHub 22e1ecb642 New LF-RFID app (#534)
* Hal lfrfid: add read timer pulse and period config fns
* New debug application for lfrfid subsystem
* New lfrfid: app, fix naming
* App lfrfid: assets
* Container view module
* App ibutton: remove unused header
* App lfrfid scenes
* App notification, add yield to blocking operations, add speaker volume control
* App lfrfid: reading key scene
* Assets: placeholder icon
* App lfrfid: reworked container view module
* App lfrfid: new scenes
* App lfrfid: write scene
* App lfrfid: write hid
* App lfrfid: emulate scene
* App lfrfid: save name scene
* App lfrfid: add missing file
2021-06-28 17:42:30 +03:00
2084f83eb5 App iButton: fix cli delete command bug, use RAII records (#523)
Co-authored-by: あく <alleteam@gmail.com>
2021-06-18 11:04:53 +03:00
SGandGitHub 89dd1ff925 [FL-1419] new iButton cli (#521)
* iButton, helpers: add destructor
* iButton app: new approach to cli commands, cli read
* iButton app: cli write
* iButton app: cli emulate
* iButton app: remove old cli commands
* iButton app: use unique_ptr for worker
* iButton app: remove obsolete cli help
* iButton app: fix help and key type parsing
2021-06-17 14:13:37 +03:00
SGandGitHub 0b14db4fb3 C++ apps: templated scene controller (#517)
* C++ apps: templated scene controller
* templated app: fix type names
* templated app: text store component
* Applications: add "Templated Scene" application
* templated app: refractoring
* Gui module byte input: fix docs
* templated app: new byte input scene
* templated app: dialog ex view module
* templated app: popup view module
* templated app: dialog-ex view module, fix docs
* templated app: text input view module
* Gui module text input: fix docs
* Furi: duplicated include
* templated app: record holder (controller) class
* templated app: view modules can now be accessed via cast
* templated app: remove unused includes
* templated app: fix return code
2021-06-15 14:01:56 +03:00
4ad5245969 [FL-1063} LF-RFID Cli (#515)
* App lfrfid: update emulator to process external data.
* App lfrfid: cleanup emulator
* App lfrfid: cli interface
* Lib: arguments parser lib

Co-authored-by: あく <alleteam@gmail.com>
2021-06-10 14:53:59 +03:00
SGandGitHub ced7d6315d Api HAL rfid: fix power consumption on f6 board (#516) 2021-06-10 13:29:12 +03:00
5fc533385b [FL-1409] Flipper name in reports (#507)
* USB CDC descriptor: join product name from two strings
* add f5 support
* USB CDC descriptor: use constant device name across all device
* BLE: use device name in advertising and model
* BLE: truncate device name

Co-authored-by: あく <alleteam@gmail.com>
2021-06-07 19:05:47 +03:00
2b89ca50fa Blink app: add delay to prevent notifications stuck (#499)
Co-authored-by: あく <alleteam@gmail.com>
2021-05-28 12:45:54 +03:00
SGandGitHub a93f21dfbe [FL-1367] fix rfid on f6 target (#500)
* RFID hal: fix gpio setup
* timers hal: crutch for HAL
* RFID hal: fix gpio setup
2021-05-28 12:38:12 +03:00
7e6a97c3a3 [FL-1307] iButton key files: ASCII encoding and .ibtn extension (#493)
* GUI module submenu: fix documentation
* GUI module submenu: add submenu_set_selected_item fn
* App iButton: use submenu_set_selected_item to store and set selected item in submenu
* App iButton: swap write and emulate in "saved key menu" scene
* App iButton: file select can now switch to the previous selected file
* App iButton: swap write and emulate indexes in "saved key menu" scene
* Gui module file_select: work with separate extension
* iButton app: separate file managment, file error handling
* SD card api: custom error message
* iButton app: better file error handling

Co-authored-by: あく <alleteam@gmail.com>
2021-05-26 19:50:16 +03:00
fc5c48edef [FL-1300] iButton app: save selected menu item and selected file position. (#489)
* GUI module submenu: fix documentation
* GUI module submenu: add submenu_set_selected_item fn
* App iButton: use submenu_set_selected_item to store and set selected item in submenu
* App iButton: swap write and emulate in "saved key menu" scene
* App iButton: file select can now switch to the previous selected file
* App iButton: swap write and emulate indexes in "saved key menu" scene

Co-authored-by: あく <alleteam@gmail.com>
2021-05-25 14:04:22 +03:00
f49f30f8a7 [FL-1274] Interrupt manager: cleaned version (#490)
* HAL interrupl manager: cleaned version
* HAL interrupt manager: mem barriers
* HAL interrupt manager: volatile interrupt list

Co-authored-by: あく <alleteam@gmail.com>
2021-05-25 13:56:27 +03:00
1a1c5fa05d Unit tests: fix IRDA test data (#488)
* Unit tests: fix IRDA test data
* Fix format-errors on test data files
* Fix sticking red/green light on unit-tests

Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: Albert Kharisov <albert@flipperdevices.com>
2021-05-25 12:43:14 +03:00
SGandGitHub 19644f6af5 Notifications: add sound to error sequence (#487) 2021-05-25 00:43:44 +03:00
2daf65b62b [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>
2021-05-24 16:44:14 +03:00
eac8626c8c [FL-1351] Wiegand read fix (#483)
* App accessor: fix external interrupts binding. Hal: removed InterruptTypeExternalInterrupt.
* GPIO hal: add ex and simple init functions to F6 target
* GPIO hal: add dummy alt fn to F6 target
* RFID hal: update gpio hal usage
* F5,F6: synchronize targets, backport VCP fixes, cleanup.

Co-authored-by: あく <alleteam@gmail.com>
2021-05-24 12:57:14 +03:00
a02aa42095 HAL LFRFID: fix resistor heating on f5 target (#470)
Co-authored-by: あく <alleteam@gmail.com>
2021-05-18 16:51:14 +03:00
SGandGitHub 4f038e4a41 [FL-1313] fix resistor heating on F5 target #467 2021-05-18 16:11:48 +03:00
ba0419276e [FL-1311] F6, app LF-RFID: Updated timer api and config (#465)
* F6, app LF-RFID: Updated timer api and config
* Api hal rfid: updated comments

Co-authored-by: あく <alleteam@gmail.com>
2021-05-18 12:54:48 +03:00
SGandGitHub 618ddfcd04 [FL-1059] T5577 write (#463)
* Api-hal-gpio: extend init functions
* App Lfrfid: separate protocol layer
* App Lfrfid: write EM key scene
* App Lfrfid: syntax fix
2021-05-18 11:37:47 +03:00
SGandGitHub 38d3653552 [FL-1058] Low frequency RFID app [Indala 40134 Encoder] #452 2021-05-07 14:13:35 +03:00
SGandGitHub ffd4948ae2 [FL-1058] Low frequency RFID app [Indala 40134 Encoder] (#447)
* App Lfrfid: Rename encoder to match extact protocol.
* Api-hal-gpio: fix alt fn config
* Api-hal-gpio: fixed fix
* App Lfrfid: indala 40134 timer stage
2021-05-06 11:45:52 +03:00
SGandGitHub 469e2dffec [FL-1057] Low frequency RFID app [HID Encoder] (#445)
* App Lfrfid: hid26 timer stage
* App Lfrfid: hid26 encoder
* fully removed old lf-rfid app
* fix codeowners
2021-05-05 10:50:19 +03:00
SGandGitHub 46bc515c6a Low frequency RFID app [Read stage] (#385)
* App Lfrfid: init
* HAL-resources: add external gpios
* HAL-pwm: fix frequency calculation
* App LFRFID: generic manchester decoder
* App LFRFID: em-marine decoder
* App iButton: fix dwt timing acquire
* App LFRFID: rfid reader
* App LFRFID: temporary read keys on read scene
* App LFRFID: remove atomic bool init.
* App LFRFID: add *.c to build
* App LFRFID: unstable HID decoder
* App LFRFID: HID-26 reading
* HAL OS: disable sleep
* App LFRFID: HID-26 reader: remove debug
* App LFRFID: static data decoder-analyzer
* App LFRFID: very raw Indala decoder
* App LFRFID: multiprotocol reader
* App LFRFID: more reliable HID decoder
* App LFRFID: syntax fix
* App LFRFID: simple read scene
* Gui: force redraw on screen stream connect
* HAL-OS: allow sleep
* App LFRFID: notify api, tune view, tune scene
* App LFRFID: simple rfid emulator
* App LFRFID: more scenes, more reliable EM decoder.
* App LFRFID: format fix
* App LFRFID: warning fix
* Api-hal-resources: add rfid pins, rename external pins
* App LFRFID: remove unused emulator
* App LFRFID: use new gpio hal api
* App accessor: use new ext gpio name
* App LFRFID: remove unused emulator
* App LFRFID: remove debug gpio
* Api-hal-resources: alternate functions init
* Api-hal-rfid: new api
* Api-hal-ibutton: new api
* Api-hal: new headers
* App LFRFID: use new api in reader subroutines
* App LFRFID: use new api in emulator subroutines
* App LFRFID: remove old app
* App LFRFID, App iButton: fix memleak
* Api-hal-rfid: comments
* App LFRFID: pulse joiner helper, it combines pulses of different polarity into one pulse suitable for a timer
* App LFRFID: pulse joiner, now can accept only ne pulse
* App LFRFID: pulse joiner, fixes
* App LFRFID: EM encoder and emulation
* App LFRFID: format fixes
* App LFRFID: emmarine encoder cleanup
* App LFRFID: HID Encoder blank
* App LFRFID: Indala Encoder blank
2021-05-04 16:21:16 +03:00
SGandGitHub c3350990c2 App accessor: init (#433) 2021-04-28 15:13:25 +03:00
cc263d743b [FL-935] Queue-based SD app cycle. File select widget. (#388)
* SD App: more specific sd api
* Gui: view dispatcher fix api documentation
* Gui: view holder thingy
* SD App: do not sleep when working with sd card bus
* SD App: queue-based lifecycle
* Assets: sd-card assets
* SD App: init file select api

Co-authored-by: あく <alleteam@gmail.com>
2021-03-24 12:30:29 +03:00
1daef3d025 new iButton app (#328)
* rename old ibutton app to ibutton-test

* more renames

* updated onewire library compilation condition

* add submenu_clean subroutine

* add index for submenu callback

* c++ guard for gui modules

* add released ibutton app

* fix the position of the submenu window if there are too few items

* iButton app basis

* negative icon position info

* fix submenu_clean subroutine

* add ibutton app to applications makefile

* add onewire key read routine to read mode

* rename mode to scene

* rename files and folder (mode to scene)

* rename ibutton view to view manager

* rename get_view to get_view_manager

* cpp guards

* key read, store and notify features

* syntax fix

* make iButtonScene functions pure virtual

* fix syntax

* add text store, add new scene (crc error)

* not a key scene

* syntax fix

* read success scene

* app, switching to the previous scene with the number of scenes to be skipped

* scene whith menu when key is readed

* fix font height calculation, fix offsets

* add key write scene

* view_dispatcher_remove_view subroutine

* generic pause/resume os methods

* fix furi_assert usage

* key store, worker

* fix pointer comparsion

* saved keys, saved key action scenes

* key delete/confirm delete scenes and routines

* use last input subsystem changes

* fix syntax

* fix new model usage in submenu

* fix includes

* use vibro pin

* use stored key name if valid

* emulate scene

* random name generator

* name and save readed key scenes, new icon

* fix icon position

* fix text scene exit

* fix naming, fix text placement, new info scene

* state-driven cyfral decoder

* better cyfral decoder

* better cyfral decoder

* one wire: search command set

* metakom decoder

* more key types

* add next scene to error scenes

* universal key reader

* use new key reader

* syntax fix

* warning fix

* byte input module template

* new thread and insomnia api usage

* New element: slightly rounded frame

* Use elements_slightly_rounded_frame in text input

* Gui test app: byte input usage

* Byte input module: data drawing and selection

* Byte input: comment currently unused fns

* remove volatile qualifier

* base byte input realisation

* App gui test: remove internal fns visibility

* Byne input, final version

* test install gcc-arm-none-eabi-10-2020-q4-major

* test install gcc-arm-none-eabi-10-2020-q4-major

* App iButton: byte input view managment

* App iButton: add key manually scenes

* App iButton: rename scenes, add popup timeout

* App iButton: use new scenes, new fn for rollback to specific prevous scene.

* App iButton: remove byte input view on app exit

* App iButton: edit key scene

* Module byte input: reduce swintch value to uint8_t

* Module byte input: switch from switch-case to if, unfortunately we need compile-time constants to use with switch

* Icons: new small arrows

* Module byte input: new arrangement of elements

* OneWire slave lib: fix deattach sequence

* App iButton: pulse sequencer

* App iButton: add more keys to store

* App iButton: split key worker to separate read/write/emulate entitys

* App iButton: use new read/emulate entities

* fix callback pointer saving

* App iButton: use KeyReader error enum instead of KeyWorker error list handling

* App iButton: do not use insomnia fns in pulse sequencer

* App iButton: use KeyReader error enum in read scene

* OneWire slave lib: more READ ROM command variants, call callback only if positive result

* GPIO resources: add external gpio

* App SD/NFC: removed application

* App iButton-test: update to new light api

* App iButton: update to new light-api

* Outdated apps: add api-light-usage

* Gpio: update SD card CS pin settings

* API-power: added fns to disable/enable external 3v3 dc-dc

* API-gpio: separated SD card detect routines

* Resources: removed sd cs pin

* SD card: low level init now resets card power supply

* App SD-filesystem: use new card detect fns

* SD card: fix low level init headers

* SD card: more realilable low level init, power reset, exit from command read cycle conditionally

* App SD-filesystem: led notifiers, init cycling

* SD card: backport to F4

* Api PWM: add c++ guards

* App iButton: yellow blink in emulate scene, vibro on

* App iButton: one wire keys command set

* App iButton: successful write scene

* App iButton: key writer

* App iButton: syntax fix

* App iButton: notify write success

* App iButton: fix double scene change

* SD card: handle eject in init sequence

* SD card: api to set level on detect gpio

* SPI: api to set state on bus pins

* SD card: set low state on bus pins while power reset

* File select: init

* File select: fix input consuming

* SD Card: fixed dir open api error

* SD-card: replace strncpy by strlcpy. Fix buffer overflow error.

* API HAL OS: replace CMP based ticks with ARR based one, hard reset lptimer on reconfiguration.

* GUI: More stack size for (temporary, wee need to implement sd card api in separate thread)

* GUI: File select module.

* App iButton-test: remove obsolete app

Co-authored-by: rusdacent <rusdacentx0x08@gmail.com>
Co-authored-by: coreglitch <mail@s3f.ru>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-03-12 15:45:18 +03:00
fef16a8e7a SD card v7 BSP (#361)
* Outdated apps: add api-light-usage

* Gpio: update SD card CS pin settings

* API-power: added fns to disable/enable external 3v3 dc-dc

* API-gpio: separated SD card detect routines

* Resources: removed sd cs pin

* SD card: low level init now resets card power supply

* App SD-filesystem: use new card detect fns

* SD card: fix low level init headers

* SD card: more realilable low level init, power reset, exit from command read cycle conditionally

* App SD-filesystem: led notifiers, init cycling

* SD card: backport to F4

* SD card: handle eject in init sequence

* SD card: api to set level on detect gpio

* SPI: api to set state on bus pins

* SD card: set low state on bus pins while power reset

Co-authored-by: coreglitch <mail@s3f.ru>
2021-03-09 14:53:33 +03:00
SGandGitHub a3b7940baf Udpate gui_test and app_subghz stack size (#368) 2021-03-08 20:00:56 +03:00
SGandGitHub 651c5b35ca [FL-960] View dispatcher: lock gui when the view tree changes (#369)
* View dispatcher: lock gui when the view tree changes

* View dispatcher: include gui interface

* View dispatcher: lock gui also when view added (view_dispatcher_add_view fn)
2021-03-05 16:13:00 +03:00
7afdd14a4c Subghz app example (#365)
* Gui: ported submenu and view_dispatcher_remove_view from iButton branch

* App gui-test: use backported submenu api

* App subghz: initial commit

* App subghz: syntax fix

* App gui-test: fix submenu callback

* App subghz: add subfolders to build

* Gui view: c++ verison of with_view_model

* Subghz app: simple spectrum settings view

* Subghz app: add spectrum settings view to view manager

* Subghz app: spectrum settings scene

Co-authored-by: coreglitch <mail@s3f.ru>
2021-03-05 12:47:27 +03:00
SGandGitHub 3c088dcf7f Outdated apps: add api-light-usage (#359) 2021-03-02 23:25:51 +03:00
SGandGitHub da91482b7d One wire slave: fix presence timing, disable irq early (#348) 2021-02-18 04:22:13 +03:00
DrZlo13andGitHub 0846de20a4 IrDA test app^ acquire state only when needed, fix exit, remove delay in main program cycle (#335) 2021-02-12 18:44:14 +03:00
DrZlo13andGitHub 5dbe2983aa Fixed procedure for sending IrDA commands, disabled interrupts for better stability (#329)
* Disable irq when send command
2021-02-09 14:21:05 +03:00
DrZlo13andGitHub 446ba55b08 fix guttons text in gui test app (#327) 2021-02-05 03:23:29 +03:00
4341da90dc Implementation of some widgets based on real use cases and designs [FL-392][FL-809] (#315)
* gui test app
* aligned string draw functions
* add canvas_invert_color, canvas_draw_button_left, canvas_draw_button_right
* use new str and button fns in dialog
* real dialog mockup
* add new gui test app recipe
* submenu module init
* delete unused variable
* move buttons to element, add canvas_string_width fn, new center button element
* button icons
* submenu module
* use submenu module, switch views
* keyboard buttons img
* new font for keyboard
* text input (keyboard) module
* add text input to gui test app
* add gui tesst app to release build, fix flags
* handle transition from start and end position, fix input switch
* add long text support to text input
* canvas_string_width and the underlying u8g2_GetStrWidth now return uint16_t
* remove deprecated libs and apps
* canvas_font_max_height fn
* new element, aligned multiline text
* use multiline text instead of plain string
* fix second keyboard row, rename uppercase fn
* qwerty-like keyboard layout
* new icons for iButton app
* better dialog text position and events handling
* remove confusing comment
* new extended dialog module
* extended dialog module usage
* update docs
* new gui module, popup with timeout
* popup usage
* canvas, remove outdated canvas_font_max_height, use canvas_current_font_height
* use furi check
* use new view_enter and view_exit callback for timers
* add DrZlo to gui tester codeowner

Co-authored-by: aanper <mail@s3f.ru>
2021-02-05 02:35:06 +03:00
DrZlo13andGitHub 63a1a4e4d7 fix some bugs with sd spi (#320)
* change sd init speed
* add pullup on bus
2021-01-30 12:01:48 +03:00
DrZlo13andGitHub cf1c8fb223 [FL-85][FL-446][FL-720] Dallas key blanks and OneWire lib rework (#313)
* sepate one wire class
* TM2004 writer
* app mode write ds1990
* test another blanks protocol
* new ibutton slave
* one wire states
* tim1 capture compare and update interrupts
* interrupt mgr, new timers IRQ
* discard HAL_TIM_PeriodElapsedCallback from main
* add exti_14 line
* add external interrupt callback
* use int mgr in input
* better interrupt managment
* add interrupt callback enable and disable fns
* properly init app
* changed timings
* rename one wire classes
* use new owb classes
* properly remove interrupts
* new blanks writer
* remove unused tests
* new core includes
* extern c guard
* fix api_interrupt_remove usage
* remove debug info, new way to detect blanks writing
* remove copy constructor
* change keys template
* fix app sources recipe
2021-01-28 15:30:31 +03:00
8f9b2513ff [FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
DrZlo13andGitHub c3a8af8448 [FL-698] SD cli commands (#306)
* add c++ compability in cli
* add sd-filesystem cli commands
* add sd-card-test cli commands
* use context pointer
2021-01-14 03:23:34 +06:00
DrZlo13andGitHub 9ed8bebba1 SPI Device API (#304)
* spi device config
* fix api_interrupt_call warning
* added configs for spi2 bus devices
* simplified spi bus api
* use new spi device api
2021-01-12 20:33:36 +03:00
DrZlo13andGitHub f94633863c [FL-520] Filesystem Api and App (#280)
* update fatfs integer types
* fix sector size to 512
* fix sector size calculation
* common fs api
* fs api realization (sd card + fat fs)
* better sector size definition
* more api realization fns
* add error description api, add common api
* fix api flag naming, run app
* add fs_info call
* disable fatfs strfuncs, enable fatfs chmod
* rework filesystem app
* sd detect cycle, sd menu, sd eject feature
* fix sd detect cycle
* sd card format routine
* ui improvements, sd info routine
* properly unmount card
* separate mode flags
* add api folder, move app, rename app
* fix api naming
* update st-card-test to use api
* update path to app
* fixed potential problem of using sizeof union
* updated api documentation, new time/date fns
* update codeowners
* changed app requirements
* changed app order
* sd insert/remove log
2021-01-11 20:52:35 +06:00
DrZlo13andGitHub d65e9b04ce [FL-572][FL-577] Irda receive feature (#282)
* fix "state not acquired error"
* add InterruptTypeComparatorTrigger to interrupt mgr, use interrupt mgr in irda app
* separate init irda timer
* capture events buffer by app
* irda common decoder
* irda nec decoder realization
* finished work with decoder
* fix app path
* fix widget remove on exit
* nec receive, store and send
* init some packets
2021-01-07 22:28:35 +06:00
DrZlo13andGitHub b32c5f3897 FL-549 Reading iButton "Cyfral" by HW comparator (#273)
* new comparator-based reader
* working comparator reader
* add keys "integrity" check
* reset events queue
2020-12-22 20:44:38 +06:00
DrZlo13andGitHub 8b6e7fd4ae FL-443 Move sd card to second spi (#271)
* sd card spi 2 fix, add spi mgr
2020-12-19 13:52:17 +06:00
DrZlo13andGitHub 3ba1738acd FL-262 Interrupt manager (#270)
* interrupt manager
* init interrupt manager
* add usage to lf-rfid app
* check ready flag
* move interrupts code to target hal
* fix path
2020-12-19 01:26:03 +06:00
DrZlo13andGitHub 36937f3595 [FL-367] iButton app fixes by hw tests (#254)
* do not exit after command parse
* fix reset length time
2020-11-27 11:48:59 +03:00