Commit Graph

146 Commits

Author SHA1 Message Date
Derek Jamison
e682b6b19e JavaScript: Add I2C support (#259)
* JavaScript: Add I2C support

* Format

* Check input bytes, allow arraybuf write input

* Add comment

* Return arraybuf, remove unnecessary malloc and memset

* More meaningful var names for code readability, fix some bugs

* Remove unnecessary state

* Fix build

* Update changelog

* Add typedefs

* toString() updates in example script

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
2024-10-20 07:24:44 +02:00
Willy-JL
bb6c015235 JS: Second batch of OFW PR changes 2024-10-19 01:17:22 +01:00
Willy-JL
799ff282f4 JS: Sync small differences from OFW PR 2024-10-17 23:43:21 +01:00
Willy-JL
73b53ee3f9 JS: Add way to check if view has prop 2024-10-17 17:00:08 +01:00
Willy-JL
5d2bb9af5e JS: Backport file picker as new module 2024-10-16 19:35:42 +01:00
Willy-JL
d9d06b9a2b JS: Backport virtualMount storage API 2024-10-16 18:16:27 +01:00
Willy-JL
72d47cfacd JS: Expose currentView in gui.viewDispatcher 2024-10-16 14:38:53 +01:00
Willy-JL
51d0fdc5fa JS: Byte/Text Input fixes, gui example improvements 2024-10-16 14:38:00 +01:00
Willy-JL
c8b3bf1869 JS: camelCase changes 2024-10-16 01:55:00 +01:00
Willy-JL
2f6faa1b7b Merge remote-tracking branch 'ul/dev' into mntm-dev 2024-10-16 00:56:19 +01:00
Willy-JL
88dfe97a89 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-10-15 23:43:33 +01:00
MX
004d8382d3 implement byte input, add missing args in text input
TODO: add missing filebrowser dialog
2024-10-16 00:57:44 +03:00
MX
8233534d6a merge p3 2024-10-15 03:27:04 +03:00
MX
edc58c5a0e merge p2 2024-10-15 03:16:21 +03:00
porta
8a95cb8d6b [FL-3893] JS modules (#3841)
* feat: backport js_gpio from unleashed
* feat: backport js_keyboard, TextInputModel::minimum_length from unleashed
* fix: api version inconsistency
* style: js_gpio
* build: fix submodule ._ .
* refactor: js_gpio
* docs: type declarations for gpio
* feat: gpio interrupts
* fix: js_gpio freeing, resetting and minor stylistic changes
* style: js_gpio
* style: mlib array, fixme's
* feat: js_gpio adc
* feat: js_event_loop
* docs: js_event_loop
* feat: js_event_loop subscription cancellation
* feat: js_event_loop + js_gpio integration
* fix: js_event_loop memory leak
* feat: stop event loop on back button
* test: js: basic, math, event_loop
* feat: js_event_loop queue
* feat: js linkage to previously loaded plugins
* build: fix ci errors
* feat: js module ordered teardown
* feat: js_gui_defer_free
* feat: basic hourglass view
* style: JS ASS (Argument Schema for Scripts)
* fix: js_event_loop mem leaks and lifetime problems
* fix: crashing test and pvs false positives
* feat: mjs custom obj destructors, gui submenu view
* refactor: yank js_gui_defer_free (yuck)
* refactor: maybe_unsubscribe
* empty_screen, docs, typing fix-ups
* docs: navigation event & demo
* feat: submenu setHeader
* feat: text_input
* feat: text_box
* docs: text_box availability
* ci: silence irrelevant pvs low priority warning
* style: use furistring
* style: _get_at -> _safe_get
* fix: built-in module name assignment
* feat: js_dialog; refactor, optimize: js_gui
* docs: js_gui
* ci: silence pvs warning: Memory allocation is infallible
* style: fix storage spelling
* feat: foreign pointer signature checks
* feat: js_storage
* docs: js_storage
* fix: my unit test was breaking other tests ;_;
* ci: fix ci?
* Make doxygen happy
* docs: flipper, math, notification, global
* style: review suggestions
* style: review fixups
* fix: badusb demo script
* docs: badusb
* ci: add nofl
* ci: make linter happy
* Bump api version

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2024-10-14 19:42:11 +01:00
Willy-JL
574304f715 Final merge fixes 2024-08-14 02:01:04 +02:00
Willy-JL
5f98c5d986 Merge remote-tracking branch 'ofw/dev' into yeet-lfs 2024-08-13 02:27:09 +02:00
MX
6c0dadad3f after merge fixes 2024-08-10 14:42:11 +03:00
MX
bf6c6c231f [FL-3841] FuriEventLoop Pt.2 (#3703)
* Abstract primitive type from main logic in FuriEventLoop
* Remove message_queue_i.h
* Add stream buffer support for event loop
* Add semaphore support for event loop
* Add temporary unit test workaround
* Make the linter happy
* Add mutex support for event loop
* Implement event subscription and unsubscription while the event loop is running
* Implement edge events
* Fix leftover logical errors
* Add event loop timer example application
* Implement flag-based edge trigger and one-shot mode
* Add event loop mutex example application
* Only notify the event loop if stream buffer is at or above its trigger level
* Reformat comments
* Add event loop stream buffer example application
* Add event loop multiple elements example application
* Improve event loop flag names
* Remove redundant signal handler as it is already handled by the event loop
* Refactor Power service, improve ViewHolder
* Use ViewHolder instead of ViewDispatcher in About app
* Enable ViewDispatcher queue on construction, deprecate view_dispatcher_enable_queue()
* Remove all invocations of view_dispatcher_enable_queue()
* Remove app-scened-template
* Remove missing library from target.json
* Port Accessor app to ViewHolder
* Make the linter happy
* Add example_view_holder application, update ViewHolder docs
* Add example_view_dispatcher application, update ViewDispatcher docs
* Replace FuriSemaphore with FuriApiLock, remove workaround delay
* Fix logical error
* Fix another logical error
* Use the sources directive to speed up compilation
* Use constant define macro
* Improve FuriEventLoop documentation
* Improve FuriEventLoop documentation once more
* Bump API Version
* Gui: remove redundant checks from ViewDispatcher
* Gui: remove dead ifs from ViewDispatcher

Co-authored-by: Silent <CookiePLMonster@users.noreply.github.com>
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
2024-08-10 14:32:27 +03:00
Georgii Surkov
f4122a924a [FL-3841] FuriEventLoop Pt.2 (#3703)
* Abstract primitive type from main logic in FuriEventLoop
* Remove message_queue_i.h
* Add stream buffer support for event loop
* Add semaphore support for event loop
* Add temporary unit test workaround
* Make the linter happy
* Add mutex support for event loop
* Implement event subscription and unsubscription while the event loop is running
* Implement edge events
* Fix leftover logical errors
* Add event loop timer example application
* Implement flag-based edge trigger and one-shot mode
* Add event loop mutex example application
* Only notify the event loop if stream buffer is at or above its trigger level
* Reformat comments
* Add event loop stream buffer example application
* Add event loop multiple elements example application
* Improve event loop flag names
* Remove redundant signal handler as it is already handled by the event loop
* Refactor Power service, improve ViewHolder
* Use ViewHolder instead of ViewDispatcher in About app
* Enable ViewDispatcher queue on construction, deprecate view_dispatcher_enable_queue()
* Remove all invocations of view_dispatcher_enable_queue()
* Remove app-scened-template
* Remove missing library from target.json
* Port Accessor app to ViewHolder
* Make the linter happy
* Add example_view_holder application, update ViewHolder docs
* Add example_view_dispatcher application, update ViewDispatcher docs
* Replace FuriSemaphore with FuriApiLock, remove workaround delay
* Fix logical error
* Fix another logical error
* Use the sources directive to speed up compilation
* Use constant define macro
* Improve FuriEventLoop documentation
* Improve FuriEventLoop documentation once more
* Bump API Version
* Gui: remove redundant checks from ViewDispatcher
* Gui: remove dead ifs from ViewDispatcher

Co-authored-by: Silent <CookiePLMonster@users.noreply.github.com>
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
2024-08-07 12:49:41 +09:00
MX
57f3bce8e3 merge manually formatted stuff too 2024-07-16 01:01:17 +03:00
Willy-JL
2eaf1ffc95 New formatting 2024-07-15 22:32:17 +01:00
Willy-JL
02f7207d28 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-07-15 22:18:35 +01:00
MX
726cb770d0 formatting 2024-07-15 20:02:45 +03:00
hedger
ffa3996a5e [FL-3867] Code formatting update (#3765)
* clang-format: AllowShortEnumsOnASingleLine: false
* clang-format: InsertNewlineAtEOF: true
* clang-format: Standard:        c++20
* clang-format: AlignConsecutiveBitFields
* clang-format: AlignConsecutiveMacros
* clang-format: RemoveParentheses: ReturnStatement
* clang-format: RemoveSemicolon: true
* Restored RemoveParentheses: Leave, retained general changes for it
* formatting: fixed logging TAGs
* Formatting update for dev

Co-authored-by: あく <alleteam@gmail.com>
2024-07-15 13:38:49 +09:00
MX
01a1767f61 upd subghz js module
by Willy-JL
2024-07-15 04:45:45 +03:00
Willy-JL
22fd786abf JS: Fix repeats for multi-packet protocols 2024-07-09 16:23:20 +01:00
MX
ed767b8286 oops 2024-07-08 08:01:12 +03:00
MX
3b74c0733f js subghz module fixes and improvements
by @Willy-JL
2024-07-08 07:51:20 +03:00
MX
e4f315188b fbt format 2024-07-08 07:37:28 +03:00
Willy-JL
49a63bf10b JS: Improve and fix subghz module
- Fix some memory leaks
- Check for setup() being called
- Add end(), can setup() again to check for external module
- Add support for custom modulation presets
- Improve error handling
- Deinit correctly at exit
- Fix RAW files
- Fix repeat behavior, can specify with transmitFile(path, repeat)
2024-07-06 03:13:18 +02:00
Willy-JL
0f4f844ff1 Format for toolchain 37, update changelog 2024-07-05 20:07:11 +02:00
Willy-JL
8148c9b5a9 JS: Refactor keyboard with ViewHolder
Based on submenu refactor by nminaylov
2024-06-26 03:17:22 +02:00
Willy-JL
681b1cd069 JS: Refactor widget with ViewHolder, fix crash
Based on textbox refactor by nminaylov
2024-06-26 03:17:20 +02:00
Willy-JL
2c9303401c JS: Refactor keyboard with ViewHolder
Based on submenu refactor by nminaylov
2024-06-26 03:12:48 +02:00
Willy-JL
99a394b1d1 JS: Refactor widget with ViewHolder, fix crash
Based on textbox refactor by nminaylov
2024-06-26 03:12:14 +02:00
MX
e403860e61 js add storage module
(without virtual mount api calls)

by Willy-JL
2024-06-22 02:01:26 +03:00
MX
ceaf2d4153 add js adc
by jamisonderek

https://github.com/Next-Flip/Momentum-Firmware/pull/143/files
2024-06-12 12:31:10 +03:00
Derek Jamison
b3e100967c JS: Add ADC (analog voltage) support to gpio library (#143)
* JS: Add ADC (analog voltage) support to gpio library

* JS: readAnalog crashes if script doesn't call analogStart first.

* Use same start/stop convention as other js modules

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
2024-06-12 02:00:47 +01:00
MX
17dbb4105d Merge remote-tracking branch 'OFW/dev' into dev 2024-06-06 00:35:40 +03:00
Willy-JL
23da827361 Merge branch 'dev' of https://github.com/flipperdevices/flipperzero-firmware into mntm-dev 2024-06-04 03:03:23 +01:00
hedger
03196fa110 cleanup of various warnings from clangd (#3682)
* cleanup of various warnings from clangs
* lfrfid_debug: cast fixes
* subghz: binraw: round->roundf
* furi: thread: updated internal stack size variable to size_t
* github: fail faster on unsuccessful build
* unit_tests: double trouble
2024-06-03 14:43:23 +01:00
MX
21abcb56fd merge ofw dev missing parts 2024-05-19 03:54:21 +03:00
Willy-JL
3a82c94e28 Merge branch 'dev' of https://github.com/flipperdevices/flipperzero-firmware into mntm-dev --nobuild 2024-05-18 05:46:15 +01:00
WillyJL
0d456aa550 JS: Add textbox module (#3597)
* JS: Add textbox module
* Using view_holder instead of view_dispatcher, more checks in js_textbox_show
* API version sync
* Rename emptyText() to clearText()
* Keeping view_holder allocated for thread sefety
* Js: proper comparision with 0 in js_math_sign
* Js: add comments and fix condition race in textbox

Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: nminaylov <nm29719@gmail.com>
2024-05-17 18:43:52 +01:00
WillyJL
c673b53e21 JS: Add math module (#3598)
* JS: Add math module
* Double constants
* Error on argument type mismatch
* Fix missing returns
* Using sin, exp from c library
* asin, acos, pow, sqrt too
* Js: tests for math module and various fixes.

Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: nminaylov <nm29719@gmail.com>
2024-05-17 17:45:40 +01:00
Willy-JL
54d2763177 Merge branch 'dev' of https://github.com/flipperdevices/flipperzero-firmware into mntm-dev 2024-05-16 21:47:58 +01:00
MX
7c5111e29f Merge remote-tracking branch 'OFW/dev' into dev 2024-05-16 23:37:03 +03:00
WillyJL
63403bbae2 JS: Add submenu module (#3601)
* JS: Add submenu module
* Using view_holder instead of view_dispatcher

Co-authored-by: nminaylov <nm29719@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2024-05-16 18:55:08 +01:00
MX
3269f751cd js vgm module and widget fix
VGM js module by jamisonderek
Js fixes by jamisonderek
2024-04-23 12:24:07 +03:00