1
mirror of https://github.com/DarkFlippers/unleashed-firmware.git synced 2025-12-12 04:34:43 +04:00

ST25TB poller refining + write support (#3239)

* nfc: st25tb: rework async poller
* nfc: st25tb: introduce sync poller
* nfc: st25tb: add write support
* nfc: st25tb: rewrite poller to use better states
* nfc: st25tb: move to mode request state after success
* nfc: st25tb: minor bug fixes
* type wasn't properly set on ready event
* sending NfcCustomEventPollerFailure on St25tbPollerEventTypeFailure caused poller to being freed and ultimately resulted in a thread crash

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
This commit is contained in:
Augusto Zanellato
2023-12-01 10:42:00 +01:00
committed by GitHub
parent 890c9e87ce
commit c1e0d02afc
12 changed files with 566 additions and 129 deletions

View File

@@ -1,5 +1,5 @@
entry,status,name,type,params
Version,+,48.0,,
Version,+,49.0,,
Header,+,applications/services/bt/bt_service/bt.h,,
Header,+,applications/services/cli/cli.h,,
Header,+,applications/services/cli/cli_vcp.h,,
1 entry status name type params
2 Version + 48.0 49.0
3 Header + applications/services/bt/bt_service/bt.h
4 Header + applications/services/cli/cli.h
5 Header + applications/services/cli/cli_vcp.h

View File

@@ -1,5 +1,5 @@
entry,status,name,type,params
Version,+,48.0,,
Version,+,49.0,,
Header,+,applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h,,
Header,+,applications/services/bt/bt_service/bt.h,,
Header,+,applications/services/cli/cli.h,,
@@ -145,6 +145,7 @@ Header,+,lib/nfc/protocols/mf_ultralight/mf_ultralight_poller_sync.h,,
Header,+,lib/nfc/protocols/slix/slix.h,,
Header,+,lib/nfc/protocols/st25tb/st25tb.h,,
Header,+,lib/nfc/protocols/st25tb/st25tb_poller.h,,
Header,+,lib/nfc/protocols/st25tb/st25tb_poller_sync.h,,
Header,+,lib/one_wire/maxim_crc.h,,
Header,+,lib/one_wire/one_wire_host.h,,
Header,+,lib/one_wire/one_wire_slave.h,,
@@ -2810,15 +2811,21 @@ Function,+,st25tb_free,void,St25tbData*
Function,+,st25tb_get_base_data,St25tbData*,const St25tbData*
Function,+,st25tb_get_block_count,uint8_t,St25tbType
Function,+,st25tb_get_device_name,const char*,"const St25tbData*, NfcDeviceNameType"
Function,+,st25tb_get_type_from_uid,St25tbType,const uint8_t*
Function,+,st25tb_get_uid,const uint8_t*,"const St25tbData*, size_t*"
Function,+,st25tb_is_equal,_Bool,"const St25tbData*, const St25tbData*"
Function,+,st25tb_load,_Bool,"St25tbData*, FlipperFormat*, uint32_t"
Function,+,st25tb_poller_activate,St25tbError,"St25tbPoller*, St25tbData*"
Function,+,st25tb_poller_get_uid,St25tbError,"St25tbPoller*, uint8_t*"
Function,+,st25tb_poller_halt,St25tbError,St25tbPoller*
Function,+,st25tb_poller_initiate,St25tbError,"St25tbPoller*, uint8_t*"
Function,+,st25tb_poller_read_block,St25tbError,"St25tbPoller*, uint32_t*, uint8_t"
Function,+,st25tb_poller_select,St25tbError,"St25tbPoller*, uint8_t*"
Function,+,st25tb_poller_send_frame,St25tbError,"St25tbPoller*, const BitBuffer*, BitBuffer*, uint32_t"
Function,+,st25tb_poller_sync_detect_type,St25tbError,"Nfc*, St25tbType*"
Function,+,st25tb_poller_sync_read,St25tbError,"Nfc*, St25tbData*"
Function,+,st25tb_poller_sync_read_block,St25tbError,"Nfc*, uint8_t, uint32_t*"
Function,+,st25tb_poller_sync_write_block,St25tbError,"Nfc*, uint8_t, uint32_t"
Function,+,st25tb_poller_write_block,St25tbError,"St25tbPoller*, uint32_t, uint8_t"
Function,+,st25tb_reset,void,St25tbData*
Function,+,st25tb_save,_Bool,"const St25tbData*, FlipperFormat*"
Function,+,st25tb_set_uid,_Bool,"St25tbData*, const uint8_t*, size_t"
1 entry status name type params
2 Version + 48.0 49.0
3 Header + applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h
4 Header + applications/services/bt/bt_service/bt.h
5 Header + applications/services/cli/cli.h
145 Header + lib/nfc/protocols/slix/slix.h
146 Header + lib/nfc/protocols/st25tb/st25tb.h
147 Header + lib/nfc/protocols/st25tb/st25tb_poller.h
148 Header + lib/nfc/protocols/st25tb/st25tb_poller_sync.h
149 Header + lib/one_wire/maxim_crc.h
150 Header + lib/one_wire/one_wire_host.h
151 Header + lib/one_wire/one_wire_slave.h
2811 Function + st25tb_get_base_data St25tbData* const St25tbData*
2812 Function + st25tb_get_block_count uint8_t St25tbType
2813 Function + st25tb_get_device_name const char* const St25tbData*, NfcDeviceNameType
2814 Function + st25tb_get_type_from_uid St25tbType const uint8_t*
2815 Function + st25tb_get_uid const uint8_t* const St25tbData*, size_t*
2816 Function + st25tb_is_equal _Bool const St25tbData*, const St25tbData*
2817 Function + st25tb_load _Bool St25tbData*, FlipperFormat*, uint32_t
Function + st25tb_poller_activate St25tbError St25tbPoller*, St25tbData*
2818 Function + st25tb_poller_get_uid St25tbError St25tbPoller*, uint8_t*
2819 Function + st25tb_poller_halt St25tbError St25tbPoller*
2820 Function + st25tb_poller_initiate St25tbError St25tbPoller*, uint8_t*
2821 Function + st25tb_poller_read_block St25tbError St25tbPoller*, uint32_t*, uint8_t
2822 Function + st25tb_poller_select St25tbError St25tbPoller*, uint8_t*
2823 Function + st25tb_poller_send_frame St25tbError St25tbPoller*, const BitBuffer*, BitBuffer*, uint32_t
2824 Function + st25tb_poller_sync_detect_type St25tbError Nfc*, St25tbType*
2825 Function + st25tb_poller_sync_read St25tbError Nfc*, St25tbData*
2826 Function + st25tb_poller_sync_read_block St25tbError Nfc*, uint8_t, uint32_t*
2827 Function + st25tb_poller_sync_write_block St25tbError Nfc*, uint8_t, uint32_t
2828 Function + st25tb_poller_write_block St25tbError St25tbPoller*, uint32_t, uint8_t
2829 Function + st25tb_reset void St25tbData*
2830 Function + st25tb_save _Bool const St25tbData*, FlipperFormat*
2831 Function + st25tb_set_uid _Bool St25tbData*, const uint8_t*, size_t