Compare commits
9 Commits
v2.0.0-bet
...
v2.0.0-bet
Author | SHA1 | Date | |
---|---|---|---|
bf63ecd594 | |||
0daa3a148b | |||
602642c203 | |||
458bd2e67b | |||
e6a5cb29a9 | |||
6502bb7185 | |||
63fafa2463 | |||
f664e85933 | |||
7bf9868d79 |
321
CHANGELOG.md
321
CHANGELOG.md
@@ -1,5 +1,326 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [2.0.0-beta10] - 2025-08-30
|
||||||
|
### Breaking Changes
|
||||||
|
- enhance commit categorization for breaking changes
|
||||||
|
- Handling of Spools with Tags from Vendors. fix: improve get_last_tag function to handle non-beta tags and fallback to newest tag
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- add fast-path JSON reading for web interface display
|
||||||
|
- add handling for successful NFC tag writes to send weight to Spoolman without auto-sending to Bambu
|
||||||
|
- implement robust page reading with error recovery for NFC tags
|
||||||
|
- enhance NFC tag reading with robust error recovery and JSON optimization for fast-path detection
|
||||||
|
- implement robust page reading and safe tag detection with error recovery
|
||||||
|
- add Manufacturer Tags support documentation in German and English
|
||||||
|
- add display delay for vendor, filament, and spool creation processes
|
||||||
|
- add progress bar updates for vendor and filament creation processes
|
||||||
|
- update vendor and filament ID handling to use NULL and add delays for stability
|
||||||
|
- add delay to ensure proper setting of vendor and filament IDs after API state changes
|
||||||
|
- enhance NDEF decoding with detailed validation and debugging output
|
||||||
|
- enhance NDEF decoding to validate structure and extract JSON payload
|
||||||
|
- add logging for decoded JSON data in NFC processing
|
||||||
|
- implement filament and spool creation in Spoolman API
|
||||||
|
- Add JSON structure comments for filament and spool creation
|
||||||
|
- Add vendor and filament management to API; implement recycling factory handling in NFC
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta10
|
||||||
|
- update changelog and header for version v2.0.0-beta9
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta9
|
||||||
|
- update changelog and header for version v2.0.0-beta8
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta8
|
||||||
|
- update changelog and header for version v2.0.0-beta7
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta7
|
||||||
|
- update changelog and header for version v2.0.0-beta6
|
||||||
|
- update changelog and header for version v2.0.0-beta6
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta6
|
||||||
|
- update changelog and header for version v2.0.0-beta5
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta5
|
||||||
|
- update changelog and header for version v2.0.0-beta4
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta4
|
||||||
|
- update changelog and header for version v2.0.0-beta3
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta3
|
||||||
|
- update createVendor and checkVendor functions to accept JsonDocument payload
|
||||||
|
- update changelog and header for version v2.0.0-beta2
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta2
|
||||||
|
- clarify product URL description for Manufacturer Tags in German and English documentation
|
||||||
|
- update changelog and header for version v2.0.0-beta1
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta1
|
||||||
|
- update version to 2.0.0 in platformio.ini
|
||||||
|
- update changelog and header for version v1.5.12-beta18
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta18
|
||||||
|
- update changelog and header for version v1.5.12-beta17
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta17
|
||||||
|
- optimize page limit detection and remove redundant verification code
|
||||||
|
- update changelog and header for version v1.5.12-beta16
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta16
|
||||||
|
- Refactor NFC interface handling and improve error diagnostics
|
||||||
|
- update changelog and header for version v1.5.12-beta15
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta15
|
||||||
|
- enhance NFC write operation diagnostics and improve error handling
|
||||||
|
- enhance NFC write operation handling and prevent tag operations during write
|
||||||
|
- update changelog and header for version v1.5.12-beta14
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta14
|
||||||
|
- optimize JSON payload structure and enhance NFC tag validation process
|
||||||
|
- update changelog and header for version v1.5.12-beta13
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta13
|
||||||
|
- reorganize clearUserDataArea function for improved clarity and safety
|
||||||
|
- update changelog and header for version v1.5.12-beta12
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta12
|
||||||
|
- update changelog and header for version v1.5.12-beta11
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta11
|
||||||
|
- update changelog and header for version v1.5.12-beta10
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta10
|
||||||
|
- streamline task creation in checkVendor and checkFilament functions
|
||||||
|
- update changelog and header for version v1.5.12-beta9
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta9
|
||||||
|
- update changelog and header for version v1.5.12-beta8
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta8
|
||||||
|
- update changelog and header for version v1.5.12-beta7
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta7
|
||||||
|
- update changelog and header for version v1.5.12-beta6
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta6
|
||||||
|
- improve task synchronization in vendor, filament, and spool creation functions
|
||||||
|
- update changelog and header for version v1.5.12-beta5
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta5
|
||||||
|
- update changelog and header for version v1.5.12-beta4
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta4
|
||||||
|
- update changelog and header for version v1.5.12-beta3
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta3
|
||||||
|
- update changelog and header for version v1.5.12-beta2
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta2
|
||||||
|
- update changelog and header for version v1.5.12-beta1
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta1
|
||||||
|
- Merge branch 'main' into recyclingfabrik
|
||||||
|
- Merge branch 'main' into recyclingfabrik
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- call scale.tare() in setup after starting scale
|
||||||
|
- update createVendor function to use external_id as comment instead of static text
|
||||||
|
- update to_old_version in platformio.ini to reflect correct previous version
|
||||||
|
- increase delay in start_scale function for improved stability
|
||||||
|
- replace progress bar with message display for remaining weight in sendToApi function
|
||||||
|
- update vendor check to use shorthand key in payload
|
||||||
|
- reset NFC state on API send failure to allow retry
|
||||||
|
- update createdFilamentId reset value to 65535 for better task handling
|
||||||
|
- update createdVendorId reset value to 65535 for improved API handling
|
||||||
|
- update spoolman ID reset values to 65535 for better API response detection
|
||||||
|
- correct color_hex key usage and comment out unused date fields in spool creation
|
||||||
|
- improve API state handling and vendor name formatting
|
||||||
|
- enhance filament creation logic to include dynamic comments based on payload
|
||||||
|
|
||||||
|
|
||||||
|
## [2.0.0-beta9] - 2025-08-30
|
||||||
|
### Breaking Changes
|
||||||
|
- enhance commit categorization for breaking changes
|
||||||
|
- Handling of Spools with Tags from Vendors. fix: improve get_last_tag function to handle non-beta tags and fallback to newest tag
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- add handling for successful NFC tag writes to send weight to Spoolman without auto-sending to Bambu
|
||||||
|
- implement robust page reading with error recovery for NFC tags
|
||||||
|
- enhance NFC tag reading with robust error recovery and JSON optimization for fast-path detection
|
||||||
|
- implement robust page reading and safe tag detection with error recovery
|
||||||
|
- add Manufacturer Tags support documentation in German and English
|
||||||
|
- add display delay for vendor, filament, and spool creation processes
|
||||||
|
- add progress bar updates for vendor and filament creation processes
|
||||||
|
- update vendor and filament ID handling to use NULL and add delays for stability
|
||||||
|
- add delay to ensure proper setting of vendor and filament IDs after API state changes
|
||||||
|
- enhance NDEF decoding with detailed validation and debugging output
|
||||||
|
- enhance NDEF decoding to validate structure and extract JSON payload
|
||||||
|
- add logging for decoded JSON data in NFC processing
|
||||||
|
- implement filament and spool creation in Spoolman API
|
||||||
|
- Add JSON structure comments for filament and spool creation
|
||||||
|
- Add vendor and filament management to API; implement recycling factory handling in NFC
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta9
|
||||||
|
- update changelog and header for version v2.0.0-beta8
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta8
|
||||||
|
- update changelog and header for version v2.0.0-beta7
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta7
|
||||||
|
- update changelog and header for version v2.0.0-beta6
|
||||||
|
- update changelog and header for version v2.0.0-beta6
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta6
|
||||||
|
- update changelog and header for version v2.0.0-beta5
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta5
|
||||||
|
- update changelog and header for version v2.0.0-beta4
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta4
|
||||||
|
- update changelog and header for version v2.0.0-beta3
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta3
|
||||||
|
- update createVendor and checkVendor functions to accept JsonDocument payload
|
||||||
|
- update changelog and header for version v2.0.0-beta2
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta2
|
||||||
|
- clarify product URL description for Manufacturer Tags in German and English documentation
|
||||||
|
- update changelog and header for version v2.0.0-beta1
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta1
|
||||||
|
- update version to 2.0.0 in platformio.ini
|
||||||
|
- update changelog and header for version v1.5.12-beta18
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta18
|
||||||
|
- update changelog and header for version v1.5.12-beta17
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta17
|
||||||
|
- optimize page limit detection and remove redundant verification code
|
||||||
|
- update changelog and header for version v1.5.12-beta16
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta16
|
||||||
|
- Refactor NFC interface handling and improve error diagnostics
|
||||||
|
- update changelog and header for version v1.5.12-beta15
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta15
|
||||||
|
- enhance NFC write operation diagnostics and improve error handling
|
||||||
|
- enhance NFC write operation handling and prevent tag operations during write
|
||||||
|
- update changelog and header for version v1.5.12-beta14
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta14
|
||||||
|
- optimize JSON payload structure and enhance NFC tag validation process
|
||||||
|
- update changelog and header for version v1.5.12-beta13
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta13
|
||||||
|
- reorganize clearUserDataArea function for improved clarity and safety
|
||||||
|
- update changelog and header for version v1.5.12-beta12
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta12
|
||||||
|
- update changelog and header for version v1.5.12-beta11
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta11
|
||||||
|
- update changelog and header for version v1.5.12-beta10
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta10
|
||||||
|
- streamline task creation in checkVendor and checkFilament functions
|
||||||
|
- update changelog and header for version v1.5.12-beta9
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta9
|
||||||
|
- update changelog and header for version v1.5.12-beta8
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta8
|
||||||
|
- update changelog and header for version v1.5.12-beta7
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta7
|
||||||
|
- update changelog and header for version v1.5.12-beta6
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta6
|
||||||
|
- improve task synchronization in vendor, filament, and spool creation functions
|
||||||
|
- update changelog and header for version v1.5.12-beta5
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta5
|
||||||
|
- update changelog and header for version v1.5.12-beta4
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta4
|
||||||
|
- update changelog and header for version v1.5.12-beta3
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta3
|
||||||
|
- update changelog and header for version v1.5.12-beta2
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta2
|
||||||
|
- update changelog and header for version v1.5.12-beta1
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta1
|
||||||
|
- Merge branch 'main' into recyclingfabrik
|
||||||
|
- Merge branch 'main' into recyclingfabrik
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- call scale.tare() in setup after starting scale
|
||||||
|
- update createVendor function to use external_id as comment instead of static text
|
||||||
|
- update to_old_version in platformio.ini to reflect correct previous version
|
||||||
|
- increase delay in start_scale function for improved stability
|
||||||
|
- replace progress bar with message display for remaining weight in sendToApi function
|
||||||
|
- update vendor check to use shorthand key in payload
|
||||||
|
- reset NFC state on API send failure to allow retry
|
||||||
|
- update createdFilamentId reset value to 65535 for better task handling
|
||||||
|
- update createdVendorId reset value to 65535 for improved API handling
|
||||||
|
- update spoolman ID reset values to 65535 for better API response detection
|
||||||
|
- correct color_hex key usage and comment out unused date fields in spool creation
|
||||||
|
- improve API state handling and vendor name formatting
|
||||||
|
- enhance filament creation logic to include dynamic comments based on payload
|
||||||
|
|
||||||
|
|
||||||
|
## [2.0.0-beta8] - 2025-08-30
|
||||||
|
### Breaking Changes
|
||||||
|
- enhance commit categorization for breaking changes
|
||||||
|
- Handling of Spools with Tags from Vendors. fix: improve get_last_tag function to handle non-beta tags and fallback to newest tag
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- implement robust page reading with error recovery for NFC tags
|
||||||
|
- enhance NFC tag reading with robust error recovery and JSON optimization for fast-path detection
|
||||||
|
- implement robust page reading and safe tag detection with error recovery
|
||||||
|
- add Manufacturer Tags support documentation in German and English
|
||||||
|
- add display delay for vendor, filament, and spool creation processes
|
||||||
|
- add progress bar updates for vendor and filament creation processes
|
||||||
|
- update vendor and filament ID handling to use NULL and add delays for stability
|
||||||
|
- add delay to ensure proper setting of vendor and filament IDs after API state changes
|
||||||
|
- enhance NDEF decoding with detailed validation and debugging output
|
||||||
|
- enhance NDEF decoding to validate structure and extract JSON payload
|
||||||
|
- add logging for decoded JSON data in NFC processing
|
||||||
|
- implement filament and spool creation in Spoolman API
|
||||||
|
- Add JSON structure comments for filament and spool creation
|
||||||
|
- Add vendor and filament management to API; implement recycling factory handling in NFC
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta8
|
||||||
|
- update changelog and header for version v2.0.0-beta7
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta7
|
||||||
|
- update changelog and header for version v2.0.0-beta6
|
||||||
|
- update changelog and header for version v2.0.0-beta6
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta6
|
||||||
|
- update changelog and header for version v2.0.0-beta5
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta5
|
||||||
|
- update changelog and header for version v2.0.0-beta4
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta4
|
||||||
|
- update changelog and header for version v2.0.0-beta3
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta3
|
||||||
|
- update createVendor and checkVendor functions to accept JsonDocument payload
|
||||||
|
- update changelog and header for version v2.0.0-beta2
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta2
|
||||||
|
- clarify product URL description for Manufacturer Tags in German and English documentation
|
||||||
|
- update changelog and header for version v2.0.0-beta1
|
||||||
|
- update platformio.ini for beta version v2.0.0-beta1
|
||||||
|
- update version to 2.0.0 in platformio.ini
|
||||||
|
- update changelog and header for version v1.5.12-beta18
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta18
|
||||||
|
- update changelog and header for version v1.5.12-beta17
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta17
|
||||||
|
- optimize page limit detection and remove redundant verification code
|
||||||
|
- update changelog and header for version v1.5.12-beta16
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta16
|
||||||
|
- Refactor NFC interface handling and improve error diagnostics
|
||||||
|
- update changelog and header for version v1.5.12-beta15
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta15
|
||||||
|
- enhance NFC write operation diagnostics and improve error handling
|
||||||
|
- enhance NFC write operation handling and prevent tag operations during write
|
||||||
|
- update changelog and header for version v1.5.12-beta14
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta14
|
||||||
|
- optimize JSON payload structure and enhance NFC tag validation process
|
||||||
|
- update changelog and header for version v1.5.12-beta13
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta13
|
||||||
|
- reorganize clearUserDataArea function for improved clarity and safety
|
||||||
|
- update changelog and header for version v1.5.12-beta12
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta12
|
||||||
|
- update changelog and header for version v1.5.12-beta11
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta11
|
||||||
|
- update changelog and header for version v1.5.12-beta10
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta10
|
||||||
|
- streamline task creation in checkVendor and checkFilament functions
|
||||||
|
- update changelog and header for version v1.5.12-beta9
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta9
|
||||||
|
- update changelog and header for version v1.5.12-beta8
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta8
|
||||||
|
- update changelog and header for version v1.5.12-beta7
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta7
|
||||||
|
- update changelog and header for version v1.5.12-beta6
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta6
|
||||||
|
- improve task synchronization in vendor, filament, and spool creation functions
|
||||||
|
- update changelog and header for version v1.5.12-beta5
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta5
|
||||||
|
- update changelog and header for version v1.5.12-beta4
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta4
|
||||||
|
- update changelog and header for version v1.5.12-beta3
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta3
|
||||||
|
- update changelog and header for version v1.5.12-beta2
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta2
|
||||||
|
- update changelog and header for version v1.5.12-beta1
|
||||||
|
- update platformio.ini for beta version v1.5.12-beta1
|
||||||
|
- Merge branch 'main' into recyclingfabrik
|
||||||
|
- Merge branch 'main' into recyclingfabrik
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- call scale.tare() in setup after starting scale
|
||||||
|
- update createVendor function to use external_id as comment instead of static text
|
||||||
|
- update to_old_version in platformio.ini to reflect correct previous version
|
||||||
|
- increase delay in start_scale function for improved stability
|
||||||
|
- replace progress bar with message display for remaining weight in sendToApi function
|
||||||
|
- update vendor check to use shorthand key in payload
|
||||||
|
- reset NFC state on API send failure to allow retry
|
||||||
|
- update createdFilamentId reset value to 65535 for better task handling
|
||||||
|
- update createdVendorId reset value to 65535 for improved API handling
|
||||||
|
- update spoolman ID reset values to 65535 for better API response detection
|
||||||
|
- correct color_hex key usage and comment out unused date fields in spool creation
|
||||||
|
- improve API state handling and vendor name formatting
|
||||||
|
- enhance filament creation logic to include dynamic comments based on payload
|
||||||
|
|
||||||
|
|
||||||
## [2.0.0-beta7] - 2025-08-30
|
## [2.0.0-beta7] - 2025-08-30
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
- enhance commit categorization for breaking changes
|
- enhance commit categorization for breaking changes
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
; https://docs.platformio.org/page/projectconf.html
|
; https://docs.platformio.org/page/projectconf.html
|
||||||
|
|
||||||
[common]
|
[common]
|
||||||
version = "2.0.0-beta7"
|
version = "2.0.0-beta10"
|
||||||
to_old_version = "1.5.10"
|
to_old_version = "1.5.10"
|
||||||
|
|
||||||
##
|
##
|
||||||
|
19
src/main.cpp
19
src/main.cpp
@@ -250,6 +250,25 @@ void loop() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Handle successful tag write: Send weight to Spoolman but NEVER auto-send to Bambu
|
||||||
|
if (activeSpoolId != "" && weigthCouterToApi > 3 && weightSend == 0 && nfcReaderState == NFC_WRITE_SUCCESS && tagProcessed == false && spoolmanApiState == API_IDLE)
|
||||||
|
{
|
||||||
|
// set the current tag as processed to prevent it beeing processed again
|
||||||
|
tagProcessed = true;
|
||||||
|
|
||||||
|
if (updateSpoolWeight(activeSpoolId, weight))
|
||||||
|
{
|
||||||
|
weightSend = 1;
|
||||||
|
Serial.println("Tag written: Weight sent to Spoolman, but NO auto-send to Bambu");
|
||||||
|
// INTENTIONALLY do NOT set autoSetToBambuSpoolId here to prevent Bambu auto-send
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
oledShowIcon("failed");
|
||||||
|
vTaskDelay(2000 / portTICK_PERIOD_MS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(octoEnabled && sendOctoUpdate && spoolmanApiState == API_IDLE)
|
if(octoEnabled && sendOctoUpdate && spoolmanApiState == API_IDLE)
|
||||||
{
|
{
|
||||||
updateSpoolOcto(autoSetToBambuSpoolId);
|
updateSpoolOcto(autoSetToBambuSpoolId);
|
||||||
|
137
src/nfc.cpp
137
src/nfc.cpp
@@ -108,6 +108,37 @@ bool formatNdefTag() {
|
|||||||
return buffer[2]*8;
|
return buffer[2]*8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Robust page reading with error recovery
|
||||||
|
bool robustPageRead(uint8_t page, uint8_t* buffer) {
|
||||||
|
const int MAX_READ_ATTEMPTS = 3;
|
||||||
|
|
||||||
|
for (int attempt = 0; attempt < MAX_READ_ATTEMPTS; attempt++) {
|
||||||
|
esp_task_wdt_reset();
|
||||||
|
yield();
|
||||||
|
|
||||||
|
if (nfc.ntag2xx_ReadPage(page, buffer)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Serial.printf("Page %d read failed, attempt %d/%d\n", page, attempt + 1, MAX_READ_ATTEMPTS);
|
||||||
|
|
||||||
|
// Try to stabilize connection between attempts
|
||||||
|
if (attempt < MAX_READ_ATTEMPTS - 1) {
|
||||||
|
vTaskDelay(pdMS_TO_TICKS(25));
|
||||||
|
|
||||||
|
// Re-verify tag presence with quick check
|
||||||
|
uint8_t uid[7];
|
||||||
|
uint8_t uidLength;
|
||||||
|
if (!nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength, 100)) {
|
||||||
|
Serial.println("Tag lost during read operation");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
String detectNtagType()
|
String detectNtagType()
|
||||||
{
|
{
|
||||||
// Read capability container from page 3 to determine exact NTAG type
|
// Read capability container from page 3 to determine exact NTAG type
|
||||||
@@ -1268,6 +1299,61 @@ bool decodeNdefAndReturnJson(const byte* encodedMessage, String uidString) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Read complete JSON data for fast-path to enable web interface display
|
||||||
|
bool readCompleteJsonForFastPath() {
|
||||||
|
Serial.println("=== FAST-PATH: Reading complete JSON for web interface ===");
|
||||||
|
|
||||||
|
// Read tag size first
|
||||||
|
uint16_t tagSize = readTagSize();
|
||||||
|
if (tagSize == 0) {
|
||||||
|
Serial.println("FAST-PATH: Could not determine tag size");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create buffer for complete data
|
||||||
|
uint8_t* data = (uint8_t*)malloc(tagSize);
|
||||||
|
if (!data) {
|
||||||
|
Serial.println("FAST-PATH: Could not allocate memory for complete read");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
memset(data, 0, tagSize);
|
||||||
|
|
||||||
|
// Read all pages
|
||||||
|
uint8_t numPages = tagSize / 4;
|
||||||
|
for (uint8_t i = 4; i < 4 + numPages; i++) {
|
||||||
|
if (!robustPageRead(i, data + (i - 4) * 4)) {
|
||||||
|
Serial.printf("FAST-PATH: Failed to read page %d\n", i);
|
||||||
|
free(data);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check for NDEF message end
|
||||||
|
if (data[(i - 4) * 4] == 0xFE) {
|
||||||
|
Serial.println("FAST-PATH: Found NDEF message end marker");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
yield();
|
||||||
|
esp_task_wdt_reset();
|
||||||
|
vTaskDelay(pdMS_TO_TICKS(2));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Decode NDEF and extract JSON
|
||||||
|
bool success = decodeNdefAndReturnJson(data, ""); // Empty UID string for fast-path
|
||||||
|
|
||||||
|
free(data);
|
||||||
|
|
||||||
|
if (success) {
|
||||||
|
Serial.println("✓ FAST-PATH: Complete JSON data successfully loaded");
|
||||||
|
Serial.print("nfcJsonData length: ");
|
||||||
|
Serial.println(nfcJsonData.length());
|
||||||
|
} else {
|
||||||
|
Serial.println("✗ FAST-PATH: Failed to decode complete JSON data");
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
bool quickSpoolIdCheck(String uidString) {
|
bool quickSpoolIdCheck(String uidString) {
|
||||||
// Fast-path: Read NDEF structure to quickly locate and check JSON payload
|
// Fast-path: Read NDEF structure to quickly locate and check JSON payload
|
||||||
// This dramatically speeds up known spool recognition
|
// This dramatically speeds up known spool recognition
|
||||||
@@ -1405,6 +1491,14 @@ bool quickSpoolIdCheck(String uidString) {
|
|||||||
activeSpoolId = quickSpoolId;
|
activeSpoolId = quickSpoolId;
|
||||||
lastSpoolId = activeSpoolId;
|
lastSpoolId = activeSpoolId;
|
||||||
|
|
||||||
|
// Read complete JSON data for web interface display
|
||||||
|
Serial.println("FAST-PATH: Reading complete JSON data for web interface...");
|
||||||
|
if (readCompleteJsonForFastPath()) {
|
||||||
|
Serial.println("✓ FAST-PATH: Complete JSON data loaded for web interface");
|
||||||
|
} else {
|
||||||
|
Serial.println("⚠ FAST-PATH: Could not read complete JSON, web interface may show limited data");
|
||||||
|
}
|
||||||
|
|
||||||
oledShowProgressBar(2, octoEnabled?5:4, "Known Spool", "Quick mode");
|
oledShowProgressBar(2, octoEnabled?5:4, "Known Spool", "Quick mode");
|
||||||
Serial.println("✓ FAST-PATH SUCCESS: Known spool processed quickly");
|
Serial.println("✓ FAST-PATH SUCCESS: Known spool processed quickly");
|
||||||
return true;
|
return true;
|
||||||
@@ -1452,6 +1546,14 @@ bool quickSpoolIdCheck(String uidString) {
|
|||||||
activeSpoolId = quickSpoolId;
|
activeSpoolId = quickSpoolId;
|
||||||
lastSpoolId = activeSpoolId;
|
lastSpoolId = activeSpoolId;
|
||||||
|
|
||||||
|
// Read complete JSON data for web interface display
|
||||||
|
Serial.println("FAST-PATH: Reading complete JSON data for web interface...");
|
||||||
|
if (readCompleteJsonForFastPath()) {
|
||||||
|
Serial.println("✓ FAST-PATH: Complete JSON data loaded for web interface");
|
||||||
|
} else {
|
||||||
|
Serial.println("⚠ FAST-PATH: Could not read complete JSON, web interface may show limited data");
|
||||||
|
}
|
||||||
|
|
||||||
oledShowProgressBar(2, octoEnabled?5:4, "Known Spool", "Quick mode");
|
oledShowProgressBar(2, octoEnabled?5:4, "Known Spool", "Quick mode");
|
||||||
Serial.println("✓ FAST-PATH SUCCESS: Known spool processed quickly");
|
Serial.println("✓ FAST-PATH SUCCESS: Known spool processed quickly");
|
||||||
return true;
|
return true;
|
||||||
@@ -1498,6 +1600,10 @@ void writeJsonToTag(void *parameter) {
|
|||||||
// aktualisieren der Website wenn sich der Status ändert
|
// aktualisieren der Website wenn sich der Status ändert
|
||||||
sendNfcData();
|
sendNfcData();
|
||||||
vTaskDelay(100 / portTICK_PERIOD_MS);
|
vTaskDelay(100 / portTICK_PERIOD_MS);
|
||||||
|
|
||||||
|
// Show waiting message for tag detection
|
||||||
|
oledShowProgressBar(0, 1, "Write Tag", "Warte auf Tag");
|
||||||
|
|
||||||
// Wait 10sec for tag
|
// Wait 10sec for tag
|
||||||
uint8_t success = 0;
|
uint8_t success = 0;
|
||||||
String uidString = "";
|
String uidString = "";
|
||||||
@@ -1730,37 +1836,6 @@ void startWriteJsonToTag(const bool isSpoolTag, const char* payload) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Robust page reading with error recovery
|
|
||||||
bool robustPageRead(uint8_t page, uint8_t* buffer) {
|
|
||||||
const int MAX_READ_ATTEMPTS = 3;
|
|
||||||
|
|
||||||
for (int attempt = 0; attempt < MAX_READ_ATTEMPTS; attempt++) {
|
|
||||||
esp_task_wdt_reset();
|
|
||||||
yield();
|
|
||||||
|
|
||||||
if (nfc.ntag2xx_ReadPage(page, buffer)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Serial.printf("Page %d read failed, attempt %d/%d\n", page, attempt + 1, MAX_READ_ATTEMPTS);
|
|
||||||
|
|
||||||
// Try to stabilize connection between attempts
|
|
||||||
if (attempt < MAX_READ_ATTEMPTS - 1) {
|
|
||||||
vTaskDelay(pdMS_TO_TICKS(25));
|
|
||||||
|
|
||||||
// Re-verify tag presence with quick check
|
|
||||||
uint8_t uid[7];
|
|
||||||
uint8_t uidLength;
|
|
||||||
if (!nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength, 100)) {
|
|
||||||
Serial.println("Tag lost during read operation");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Safe tag detection with manual retry logic and short timeouts
|
// Safe tag detection with manual retry logic and short timeouts
|
||||||
bool safeTagDetection(uint8_t* uid, uint8_t* uidLength) {
|
bool safeTagDetection(uint8_t* uid, uint8_t* uidLength) {
|
||||||
const int MAX_ATTEMPTS = 3;
|
const int MAX_ATTEMPTS = 3;
|
||||||
|
@@ -17,6 +17,7 @@ void startNfc();
|
|||||||
void scanRfidTask(void * parameter);
|
void scanRfidTask(void * parameter);
|
||||||
void startWriteJsonToTag(const bool isSpoolTag, const char* payload);
|
void startWriteJsonToTag(const bool isSpoolTag, const char* payload);
|
||||||
bool quickSpoolIdCheck(String uidString);
|
bool quickSpoolIdCheck(String uidString);
|
||||||
|
bool readCompleteJsonForFastPath(); // Read complete JSON data for fast-path web interface display
|
||||||
|
|
||||||
extern TaskHandle_t RfidReaderTask;
|
extern TaskHandle_t RfidReaderTask;
|
||||||
extern String nfcJsonData;
|
extern String nfcJsonData;
|
||||||
|
Reference in New Issue
Block a user