* Infrared: Add text scroll to universal remote buttons
Replaces center aligned text in the infrared universal remote with scrollable text if wider than the button and is cut off. Allows long descriptive button functions to be seen in some remotes.
* linter fixes
---------
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: hedger <hedger@nanode.su>
* type/brand parse
* debug
* decryptions
* corrections
* comments
* AIC access code decryption and CRC check
* easier than we thought! only acc_code[0] == 5 needs parsing
* finishing touches
* can't support serial number decode
* Revert "can't support serial number decode"
This reverts commit 7761b31bcf7effb97e608578ab1e090625078784.
* serial number CAN be decrypted
* format
* print fix
* fix CRC check
* delete unnecessary line
* linter fixes
---------
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: hedger <hedger@nanode.su>
* Linear and dickert mahs fixes
* fix dip pattern
* proper fix
by WillyJL
* Fix unit tests
Linear Decoder now decodes more linear signals
---------
Co-authored-by: hedger <hedger@users.noreply.github.com>
* Expansion: Wake thread on UART error flag
* Expansion: Stop UART async rx early
* FuriHalSerial: Fix RXFNE interrupt hang
---------
Co-authored-by: hedger <hedger@users.noreply.github.com>
* FeliCa: Handle non-hardware Polling commands
NFC TagInfo and possibly other readers rely on Polling commands with Request Code of 1 (default System Code request) or non-FFFF System Code to detect card type. Since the NFC controller doesn't seem to handle them in hardware and simply bubbles them up, and then the Flipper firmware will just ignore them and refuse to respond afterwards, this causes the reading operation to fail.
This commit adds a simple handler for such Polling commands so that readers behaving like NFC TagInfo could read the emulated card without failing.
* Only handle cases when System Code is not FFFF
The NFC controller should handle Polling commands with the System Code set to FFFF, so it's not necessary for the firmware to handle it.
* Remove system code logging
* More cleanups
* Remove the claim that we need a poller change
We already have enough information to determine whether or not the card supports NDEF since SYS_OP register value is included in all current Lite-S card dumps.
* Respond to 12FC polling command when needed
* Handle Polling with NDEF and Lite-S Service Code
This allows the reader to specifically select the service by naming the Service Code.
* Introduce API for manual handling of Polling commands
Introduce nfc_felica_listener_timer_anticol_start() and nfc_felica_listener_timer_anticol_stop(). These are for now just wrappers around the block_tx timer that can be used to delay the response until the desired Time Slot. Thanks to the loose timing constraints of FeliCa collision resolution protocol, no compensation seems to be necessary. Also enabled the block_tx timer for FeliCa listener, but with both compensation and fdt set to 0 to keep the original behavior of not using the timer during normal data exchange.
This API is now being used for handling Polling commands that are not handled by the NFC controller on the hardware side.
* Document target_time_slot
* Implement changes suggested by @RebornedBrain
* api: f18 version sync
* nfc: added stubs for `nfc_felica_listener_timer_anticol` for unit tests
---------
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: hedger <hedger@nanode.su>
* CLI: Fix long delay with quick connect/disconnect
noticeable with qflipper, for some reason it sets DTR on/off/on again
so flipper starts CLI, stops it, then starts again
but cli shell is trying to print motd, and pipe is already broken
so each character of motd times out for 100ms
changing pipe timeout to 10ms works too, but is just a workaround
it didnt always happen, i think that variable time of loading ext cmds
made it so on ofw it usually manages to print motd before pipe is broken
on cfw with more ext commands it always hung, on ofw only sometimes
important part is bailing early in cli shell
in cli vcp i made it cleanup cli shell on disconnect so it doesnt stay
around after disconnecting usb, might free a little ram maybe
* cli_shell: possibly more robust fix?
* Fix use after free crash
* cli_shell: waste even less time
Co-Authored-By: WillyJL <me@willyjl.dev>
---------
Co-authored-by: Anna Antonenko <portasynthinca3@gmail.com>
Co-authored-by: hedger <hedger@users.noreply.github.com>