Compare commits
3 Commits
v2.0.0-bet
...
nfc
Author | SHA1 | Date | |
---|---|---|---|
bf63ecd594 | |||
0daa3a148b | |||
602642c203 |
110
CHANGELOG.md
110
CHANGELOG.md
@@ -1,5 +1,115 @@
|
||||
# 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
|
||||
|
@@ -9,7 +9,7 @@
|
||||
; https://docs.platformio.org/page/projectconf.html
|
||||
|
||||
[common]
|
||||
version = "2.0.0-beta9"
|
||||
version = "2.0.0-beta10"
|
||||
to_old_version = "1.5.10"
|
||||
|
||||
##
|
||||
|
75
src/nfc.cpp
75
src/nfc.cpp
@@ -1299,6 +1299,61 @@ bool decodeNdefAndReturnJson(const byte* encodedMessage, String uidString) {
|
||||
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) {
|
||||
// Fast-path: Read NDEF structure to quickly locate and check JSON payload
|
||||
// This dramatically speeds up known spool recognition
|
||||
@@ -1436,6 +1491,14 @@ bool quickSpoolIdCheck(String uidString) {
|
||||
activeSpoolId = quickSpoolId;
|
||||
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");
|
||||
Serial.println("✓ FAST-PATH SUCCESS: Known spool processed quickly");
|
||||
return true;
|
||||
@@ -1483,6 +1546,14 @@ bool quickSpoolIdCheck(String uidString) {
|
||||
activeSpoolId = quickSpoolId;
|
||||
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");
|
||||
Serial.println("✓ FAST-PATH SUCCESS: Known spool processed quickly");
|
||||
return true;
|
||||
@@ -1529,6 +1600,10 @@ void writeJsonToTag(void *parameter) {
|
||||
// aktualisieren der Website wenn sich der Status ändert
|
||||
sendNfcData();
|
||||
vTaskDelay(100 / portTICK_PERIOD_MS);
|
||||
|
||||
// Show waiting message for tag detection
|
||||
oledShowProgressBar(0, 1, "Write Tag", "Warte auf Tag");
|
||||
|
||||
// Wait 10sec for tag
|
||||
uint8_t success = 0;
|
||||
String uidString = "";
|
||||
|
@@ -17,6 +17,7 @@ void startNfc();
|
||||
void scanRfidTask(void * parameter);
|
||||
void startWriteJsonToTag(const bool isSpoolTag, const char* payload);
|
||||
bool quickSpoolIdCheck(String uidString);
|
||||
bool readCompleteJsonForFastPath(); // Read complete JSON data for fast-path web interface display
|
||||
|
||||
extern TaskHandle_t RfidReaderTask;
|
||||
extern String nfcJsonData;
|
||||
|
Reference in New Issue
Block a user