Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions src/Led.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1087,3 +1087,16 @@ void Led_SetButtonLedsEnabled(boolean value) {
return AnimationReturnType(animationActive, animationDelay, refresh);
}
#endif

void Led_TaskPause(void) {
#ifdef NEOPIXEL_ENABLE
vTaskSuspend(Led_TaskHandle);
FastLED.clear(true);
#endif
}

void Led_TaskResume(void) {
#ifdef NEOPIXEL_ENABLE
vTaskResume(Led_TaskHandle);
#endif
}
4 changes: 3 additions & 1 deletion src/Led.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,4 +63,6 @@ void Led_SetPause(boolean value);
void Led_ResetToInitialBrightness(void);
void Led_ResetToNightBrightness(void);
uint8_t Led_GetBrightness(void);
void Led_SetBrightness(uint8_t value);
void Led_SetBrightness(uint8_t value);
void Led_TaskPause(void);
void Led_TaskResume(void);
2 changes: 2 additions & 0 deletions src/Rfid.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,7 @@ extern char gCurrentRfidTagId[cardIdStringSize];
void Rfid_Init(void);
void Rfid_Cyclic(void);
void Rfid_Exit(void);
void Rfid_TaskPause(void);
void Rfid_TaskResume(void);
void Rfid_WakeupCheck(void);
void Rfid_PreferenceLookupHandler(void);
23 changes: 22 additions & 1 deletion src/RfidCommon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,14 @@ char gCurrentRfidTagId[cardIdStringSize] = ""; // No crap here as otherwise it c
char gOldRfidTagId[cardIdStringSize] = "X"; // Init with crap
#endif

// check if we have RFID-reader enabled
#if defined (RFID_READER_TYPE_MFRC522_SPI) || defined (RFID_READER_TYPE_MFRC522_I2C) || defined(RFID_READER_TYPE_PN5180)
#define RFID_READER_ENABLED 1
#endif

// Tries to lookup RFID-tag-string in NVS and extracts parameter from it if found
void Rfid_PreferenceLookupHandler(void) {
#if defined (RFID_READER_TYPE_MFRC522_SPI) || defined (RFID_READER_TYPE_MFRC522_I2C) || defined(RFID_READER_TYPE_PN5180)
#if defined (RFID_READER_ENABLED)
BaseType_t rfidStatus;
char rfidTagId[cardIdStringSize];
char _file[255];
Expand Down Expand Up @@ -98,3 +103,19 @@ void Rfid_PreferenceLookupHandler(void) {
}
#endif
}

#if defined (RFID_READER_ENABLED)
extern TaskHandle_t rfidTaskHandle;
#endif

void Rfid_TaskPause(void) {
#if defined (RFID_READER_ENABLED)
vTaskSuspend(rfidTaskHandle);
#endif
}
void Rfid_TaskResume(void) {
#if defined (RFID_READER_ENABLED)
vTaskResume(rfidTaskHandle);
#endif
}

2 changes: 0 additions & 2 deletions src/System.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
extern Preferences gPrefsRfid;
extern Preferences gPrefsSettings;
extern TaskHandle_t AudioTaskHandle;
extern TaskHandle_t rfidTaskHandle;
extern TaskHandle_t Led_TaskHandle;


void System_Init(void);
Expand Down
18 changes: 6 additions & 12 deletions src/Web.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -827,11 +827,9 @@ void explorerHandleFileStorageTask(void *parameter) {
uploadFile = gFSystem.open((char *)parameter, "w");

// pause some tasks to get more free CPU time for the upload
#ifdef NEOPIXEL_ENABLE
vTaskSuspend(Led_TaskHandle);
#endif
vTaskSuspend(AudioTaskHandle);
vTaskSuspend(rfidTaskHandle);
Led_TaskPause();
Rfid_TaskPause();

for (;;) {

Expand Down Expand Up @@ -861,11 +859,9 @@ void explorerHandleFileStorageTask(void *parameter) {
if (lastUpdateTimestamp + maxUploadDelay * 1000 < millis()) {
Log_Println(webTxCanceled, LOGLEVEL_ERROR);
// resume the paused tasks
#ifdef NEOPIXEL_ENABLE
vTaskResume(Led_TaskHandle);
#endif
Led_TaskResume();
vTaskResume(AudioTaskHandle);
vTaskResume(rfidTaskHandle);
Rfid_TaskResume();
// just delete task without signaling (abort)
vTaskDelete(NULL);
return;
Expand All @@ -880,11 +876,9 @@ void explorerHandleFileStorageTask(void *parameter) {
#endif
}
// resume the paused tasks
#ifdef NEOPIXEL_ENABLE
vTaskResume(Led_TaskHandle);
#endif
Led_TaskResume();
vTaskResume(AudioTaskHandle);
vTaskResume(rfidTaskHandle);
Rfid_TaskResume();
// send signal to upload function to terminate
xQueueSend(explorerFileUploadStatusQueue, &value, 0);
vTaskDelete(NULL);
Expand Down