Commit Graph

549 Commits

Author SHA1 Message Date
Willy-JL
7e3a65dfd3 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2025-04-04 11:51:56 +01:00
Willy-JL
7f46fe5d5c Merge remote-tracking branch 'ofw/dev' into mntm-dev --nobuild 2025-04-03 06:19:15 +01:00
Anna Antonenko
13333edd30 [FL-3954, FL-3955] New CLI architecture (#4111)
* feat: FuriThread stdin

* ci: fix f18

* feat: stdio callback context

* feat: FuriPipe

* POTENTIALLY EXPLOSIVE pipe welding

* fix: non-explosive welding

* Revert welding

* docs: furi_pipe

* feat: pipe event loop integration

* update f18 sdk

* f18

* docs: make doxygen happy

* fix: event loop not triggering when pipe attached to stdio

* fix: partial stdout in pipe

* allow simultaneous in and out subscription in event loop

* feat: vcp i/o

* feat: cli ansi stuffs and history

* feat: more line editing

* working but slow cli rewrite

* restore previous speed after 4 days of debugging 🥲

* fix: cli_app_should_stop

* fix: cli and event_loop memory leaks

* style: remove commented out code

* ci: fix pvs warnings

* fix: unit tests, event_loop crash

* ci: fix build

* ci: silence pvs warning

* feat: cli gpio

* ci: fix formatting

* Fix memory leak during event loop unsubscription

* Event better memory leak fix

* feat: cli completions

* Merge remote-tracking branch 'origin/dev' into portasynthinca3/3928-cli-threads

* merge fixups

* temporarily exclude speaker_debug app

* pvs and unit tests fixups

* feat: commands in fals

* move commands out of flash, code cleanup

* ci: fix errors

* fix: run commands in buffer when stopping session

* speedup cli file transfer

* fix f18

* separate cli_shell into modules

* fix pvs warning

* fix qflipper refusing to connect

* remove temp debug logs

* remove erroneous conclusion

* Fix memory leak during event loop unsubscription

* Event better memory leak fix

* unit test for the fix

* improve thread stdio callback signatures

* pipe stdout timeout

* update api symbols

* fix f18, formatting

* fix pvs warnings

* increase stack size, hope to fix unit tests

* cli: revert flag changes

* cli: fix formatting

* cli, fbt: loopback perf benchmark

* thread, event_loop: subscribing to thread flags

* cli: signal internal events using thread flags, improve performance

* fix f18, formatting

* event_loop: fix crash

* storage_cli: increase write_chunk buffer size again

* cli: explanation for order=0

* thread, event_loop: thread flags callback refactor

* cli: increase stack size

* cli: rename cli_app_should_stop -> cli_is_pipe_broken_or_is_etx_next_char

* cli: use plain array instead of mlib for history

* cli: prepend file name to static fns

* cli: fix formatting

* cli_shell: increase stack size

* cli: fix rpc lockup

* cli: better lockup fix

* cli: fix f18

* fix merge

---------

Co-authored-by: Georgii Surkov <georgii.surkov@outlook.com>
Co-authored-by: あく <alleteam@gmail.com>
2025-04-02 22:10:10 +04:00
Anna Antonenko
0103b8c7c5 [FL-3961] New JS value destructuring (#4135)
* js: value destructuring and tests

* js: temporary fix to see size impact

* js_val: reduce code size 1

* i may be stupid.

* test: js_value args

* Revert "js: temporary fix to see size impact"

This reverts commit f51d726dbafc4300d3552020de1c3b8f9ecd3ac1.

* pvs: silence warnings

* style: formatting

* pvs: silence warnings?

* pvs: silence warnings??

* js_value: redesign declaration types for less code

* js: temporary fix to see size impact

* style: formatting

* pvs: fix helpful warnings

* js_value: reduce .rodata size

* pvs: fix helpful warning

* js_value: reduce code size 1

* fix build error

* style: format

* Revert "js: temporary fix to see size impact"

This reverts commit d6a46f01794132e882e03fd273dec24386a4f8ba.

* style: format

---------

Co-authored-by: hedger <hedger@users.noreply.github.com>
2025-04-01 18:50:08 +04:00
Willy-JL
823a1d9253 Painfully update most JS docs by hand 2025-04-01 07:47:57 +00:00
Willy-JL
a0619c01d7 Merge remote-tracking branch 'ofw/dev' into mntm-dev --nobuild 2025-04-01 07:42:00 +00:00
Konstantin Volkov
a0645bc6f4 HID Ble: increased stack and improvements (#4149)
* increased hid remote stack, increased swipe speed, added enterprise sleep

* decreased extra stack by 256b

* app: remote: bumped version and increased stack sizes

---------

Co-authored-by: doomwastaken <k.volkov@flipperdevices.com>
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: hedger <hedger@nanode.su>
2025-03-31 21:33:17 +04:00
Willy-JL
303444df7a Merge remote-tracking branch 'ofw/dev' into mntm-dev --nobuild 2025-03-26 11:30:06 +00:00
Ruslan Nadyrshin
02dedd60f3 Add guides on Getting Started with JS (#4150)
- Get started section added to the JS docs
- Small fixes in the JS modules docs
2025-03-19 02:08:23 +10:00
WillyJL
cef20b3a5e JS: Fix gui.js stopwatch example borders (#4131) 2025-03-05 18:11:51 +04:00
Willy-JL
262572bcfd Me did oopsie pt2 2025-02-28 02:11:36 +00:00
Willy-JL
bd2ee18e48 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2025-02-28 02:03:45 +00:00
Tyler Crumpton
0d99e54a17 Fix PWM-supported logic on pwmStop() (#4129) 2025-02-26 19:34:54 +04:00
WillyJL
404764b660 GUI: Widget view extra options for JS (#4120)
* Fill option for widget frame
* Add widget circle element
* Add widget line element
* Fix missing include for InputType
* Fix missing comment
* Update api symbols
* Load .fxbm from file
* Fix copy pasta
* Add fill param to example
* Fix some comments
* Bump JS SDK 0.3
* Fix free
* Rename widget frame to rect
* Gui: add widget_add_frame_element backward compatibility macros

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2025-02-21 10:47:56 +09:00
Anna Antonenko
16d18a79a9 [FL-3900] Update heap implementation (#4123)
* furi: update heap4 to latest
* debug: heap under/overflow testing app
* fix formatting
* silence pvs warnings
* Linker: symbols without type
* Infrared: fix crash in universal remotes on long back press
* Infrared: properly fix incorrect input handling behavior and crash in universal remote. Fix same issue in hid_app.
* FreeRTOSConfig: explicit cast to uint in configTOTAL_HEAP_SIZE
* Format sources
* C and C++ compatible version of stm32wb55_linker.h

Co-authored-by: あく <alleteam@gmail.com>
2025-02-21 10:04:02 +09:00
Anna Antonenko
7c5c5d4749 [FL-3734] UART framing mode selection (#4121)
* HAL: feat: uart framing
* JS: feat: uart framing
* fix formatting
* fix pvs warning
* HAL: flash impact reduction attempt 1
* HAL: flash impact reduction attempt 2
* fix compile error
* HAL: finalize flash impact reduction
* HAL: remove user-facing magic numbers

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2025-02-21 04:54:38 +09:00
Willy-JL
1a4a940b74 JS: Support all builtin icons in new gui/icon module 2025-02-20 03:19:43 +00:00
Willy-JL
72281d9666 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2025-02-18 16:25:29 +00:00
Anna Antonenko
e27f82f041 [FL-3925, FL-3942, FL-3944] JS features & bugfixes (SDK 0.2) (#4075)
* feat: JS GPIO PWM, JS GUI Widget view; fix: JS EvtLoop stop on request, JS EvtLoop stop on error
* fix: f18 build
* docs: widget
* fix: js unit test
* change feature naming

Co-authored-by: あく <alleteam@gmail.com>
2025-02-13 17:50:38 +09:00
Willy-JL
f2011a446b Merge remote-tracking branch 'ofw/dev' into mntm-dev 2025-01-11 05:06:46 +00:00
dependabot[bot]
5fb9558dbb Bump cross-spawn in /applications/system/js_app/packages/create-fz-app (#4043)
Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
2024-12-24 11:24:01 +09:00
Anna Antonenko
631d7a40dd [FL-3940] Work around incorrect serial port handling by the OS (#4040)
* fix: js sdk flipper detection
* chore: bump ver

Co-authored-by: あく <alleteam@gmail.com>
2024-12-23 10:34:05 +09:00
Cassandra
327bdd3f78 feat(hid_ptt): support Gather (#304)
* feat(hid_ptt): support Gather

plus a few typo and style fixes...

* Update changelog

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
2024-11-27 14:11:09 +01:00
Willy-JL
aee7c2c5bb API: Move furi_hal_bt_reverse_mac_addr() out of API 2024-11-08 04:47:54 +00:00
Anna Antonenko
51aafd1b5e fix: bump fz-sdk to 0.1.2 (#3989) 2024-11-05 20:58:19 +09:00
WillyJL
b86b9b87b8 JS: Add die() typedoc (#3985)
* JS: Add die() to typedocs

* JS: Never type for die()

---------

Co-authored-by: Anna Antonenko <portasynthinca3@gmail.com>
2024-11-05 14:41:03 +03:00
Anna Antonenko
c741727b96 I am own the JS (#3982)
* fix: js app template
* i am own the js
* farewell
2024-11-05 19:53:24 +09:00
WillyJL
3ef283824d FBT: Optimize icons blob -4KB DFU, scrub unused icons (#291)
* Unused icons to check later

* Exclude disabled icons from firmware

* Format

* Also report free flash in gh comment

* Fix free flash calc

* Fix?

* Fix??

* Split to next line

* Remove dead icons

* Some spring cleaning of icons cooker

* Improve unused icons script

* Disable icons that cant be used in asset packs

* These will need a workaround for external

* Revert "These will need a workaround for external"

This reverts commit fb23d97952.

* Here's the workaround: split assets lib

now there is "assets" and "fwassets"

firmware links with fwassets and includes all icons
however not all of them are exposed to api

if an app needs a firmware icon not in api, it can use fap_libs=["assets"]
this will link against this dummy assets lib
it only contains the icons that arent exposed to api

this way, an app using assets lib will still benefit from asset packs
but at same time, we can remove pointless icons from dfu blob

* Update changelog
2024-11-05 08:32:24 +01:00
Willy-JL
78f517b294 Merge remote-tracking branch 'ul/dev' into mntm-dev --nobuild 2024-11-05 07:29:58 +00:00
MX
462ab255a1 upd examples 2024-11-05 09:52:24 +03:00
MX
79caf7bf72 Add js sdk changes
With type declarations and various missing parts added by Willy-JL
2024-11-05 09:49:46 +03:00
WillyJL
2e7eedf291 CLI: More commands as plugins on SD -6KB DFU, refactor plugin wrapper, (#276)
* Unused icons to check later

* Exclude disabled icons from firmware

* Format

* CLI: Test moving more cmds to plugins

* CLI: Macro template for plugin wrapper

* Fix plugin filenames

* Retrofit older cli wrappers

* Fix unused

* Fix manifests

* Add explanation

* Revert "Unused icons to check later"

This reverts commit b7f98e344c.

* Revert "Exclude disabled icons from firmware"

This reverts commit ab62e99898.

* Add back toplevel chat command

* Add DFU size to github comment

* Fix build

* Fix BT CLI preload fail

* Add these back

* Fix CLI command gpio preload fail

* Fix input command

* These can stay

* Fix negative size rounding

* Update changelog

* Fix DFU size calc
2024-11-04 09:42:25 +01:00
WillyJL
30d7589f5c JS: Add illegalSymbols prop for gui/text_input (#290)
* JS: Add illegalSymbols prop for gui/text_input

* Update changelog

* Fix gui example
2024-11-04 09:38:59 +01:00
Willy-JL
e5acd5cd22 JS: Bump SDK with new typedocs for old extra modules 2024-11-03 01:52:50 +00:00
Willy-JL
c537092367 JS: Add typedocs for all extra modules 2024-11-03 01:44:44 +00:00
Willy-JL
6e454582a4 JS: Fix NULL ptr in spi example
not sure why this doesnt work, it worked before
2024-11-02 23:22:09 +00:00
Willy-JL
d97dffe852 JS: Never type for die() 2024-11-02 05:31:01 +00:00
Willy-JL
67d9f5b44a JS: Add extra SDK feature strings 2024-11-02 04:34:23 +00:00
Willy-JL
48aceffe9b JS: Add die() to typedocs 2024-11-02 04:16:47 +00:00
Willy-JL
87ef8772c2 Fix last __dirname and __filename usages 2024-11-02 04:15:32 +00:00
Willy-JL
3ea2ace360 Merge commit '2cf425d3462cb5297304b6c8909765e17e98bbae' into merge/js-sdk 2024-11-01 22:11:35 +00:00
Willy-JL
249ff23598 JS: NPM packages changes for CFW SDK 2024-11-01 21:23:28 +00:00
Willy-JL
6e022a60a1 JS: Transform SDK name for cross compatibility 2024-11-01 21:21:55 +00:00
Willy-JL
9736f8ee3e Fix JS CLI command missing imports 2024-11-01 19:21:11 +00:00
Anna Antonenko
2cf425d346 fix: js app template 2024-11-01 17:36:39 +03:00
Willy-JL
bbe69e77c3 Initial JS CFW SDK changes
TODO: Check documentation and other package options

TODO: Transform CFW SDK name to OFW SDK name in build step so all firmwares understand it
2024-11-01 13:57:28 +00:00
Willy-JL
090cc7a010 Update JS SDK vendor firmware 2024-11-01 13:28:20 +00:00
Willy-JL
c565ff83dd Merge remote-tracking branch 'ul/dev' into merge/js-sdk 2024-11-01 13:26:34 +00:00
WillyJL
69aa4cd254 JS: Fix merge of 3963 and 3961 (#3980)
* toString() was moved, not duplicated
* These had gotten lost
* This is now implemented
* Add missing version doctags
2024-11-01 13:52:54 +09:00
MX
91af1cdd46 restore require func 2024-11-01 06:00:46 +03:00