[FL-1104] Fix NFC crash and missing NfcMessageTypeDeviceNotFound event (#400)
* Remove asserts from platformProtectST25RComm, fix issue with concurrent access. * NFC Worker: fix bug in nfc_worker_poll causing worker to skip sending ofNfcMessageTypeDeviceNotFound event * Fix python linter: stick to old beta
This commit is contained in:
parent
78ff0c9fca
commit
0c3a0a3312
2
.github/workflows/black.yml
vendored
2
.github/workflows/black.yml
vendored
@ -12,4 +12,4 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-python@v2
|
||||
- uses: psf/black@stable
|
||||
- uses: psf/black@20.8b1
|
||||
|
@ -84,7 +84,7 @@ void nfc_worker_poll(NfcWorker* nfc_worker, uint8_t cycles) {
|
||||
is_found |= nfc_worker_nfcf_poll(nfc_worker);
|
||||
is_found |= nfc_worker_nfcv_poll(nfc_worker);
|
||||
rfalFieldOff();
|
||||
cycles--;
|
||||
if(cycles > 0) cycles--;
|
||||
if((!is_found) && (!cycles)) {
|
||||
NfcMessage message;
|
||||
message.type = NfcMessageTypeDeviceNotFound;
|
||||
|
@ -37,6 +37,7 @@ void platformSetIrqCallback(PlatformIrqCallback callback) {
|
||||
}
|
||||
|
||||
HAL_StatusTypeDef platformSpiTxRx(const uint8_t *txBuf, uint8_t *rxBuf, uint16_t len) {
|
||||
furi_assert(platform_st25r3916);
|
||||
bool ret = false;
|
||||
if (txBuf && rxBuf) {
|
||||
ret = api_hal_spi_bus_trx(platform_st25r3916->bus, (uint8_t*)txBuf, rxBuf, len, 1000);
|
||||
@ -55,12 +56,10 @@ HAL_StatusTypeDef platformSpiTxRx(const uint8_t *txBuf, uint8_t *rxBuf, uint16_t
|
||||
}
|
||||
|
||||
void platformProtectST25RComm() {
|
||||
furi_assert(platform_st25r3916 == NULL);
|
||||
platform_st25r3916 = (ApiHalSpiDevice*)api_hal_spi_device_get(ApiHalSpiDeviceIdNfc);
|
||||
}
|
||||
|
||||
void platformUnprotectST25RComm() {
|
||||
furi_assert(platform_st25r3916);
|
||||
api_hal_spi_device_return(platform_st25r3916);
|
||||
platform_st25r3916 = NULL;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user