We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hi @matth-x . I'm using v1.2.0. I'm working with FirmwareUpdate/Diagnostics.
After Diagnostics upload failed, if I request GetDiagnostic again, charger didn't send DiagnosticsStatusNotification.
Here's log
[MO] Recv: [2,"81ce6fca-6967-48ff-8391-1255116ca892","GetDiagnostics",{"location":"ftp://127.0.0.1:21/files/failedLocation"}] [MO] info (DiagnosticsService.cpp:173): Scheduled Diagnostics upload! location = ftp://127.0.0.1:21/files/failedLocation/diagnostics.log retries = 1, retryInterval = 20 startTime = 1970-01-01T00:00:00Z stopTime = 2026-01-24T05:13:41Z [MO] debug (DiagnosticsService.cpp:185): Initial try at 2025-01-24T05:13:47Z [MO] verbose (RequestQueue.cpp:74): front 1 len 0 [MO] Send: [3,"81ce6fca-6967-48ff-8391-1255116ca892",{"fileName":"diagnostics.log"}] [MO] debug (DiagnosticsService.cpp:66): Call onUpload [MO] debug (DiagnosticsService.cpp:379): discovered 3 files [MO] debug (FtpMbedTLS.cpp:504): init upload ftp://127.0.0.1:21/files/failedLocation/diagnostics.log [MO] debug (FtpMbedTLS.cpp:829): parsed dir: /files/failedLocation; fname: diagnostics.log [MO] debug (FtpMbedTLS.cpp:854): parsed user: ; pass: -*** [MO] debug (FtpMbedTLS.cpp:871): parsed host: 127.0.0.1; port: 21 [MO] ERROR (FtpMbedTLS.cpp:276): mbedtls_net_connect: 1 [MO] ERROR (FtpMbedTLS.cpp:302): connect: 1 [MO] ERROR (FtpMbedTLS.cpp:522): could not establish connection to FTP server: 1 [MO] info (DiagnosticsService.cpp:469): FTP upload failure (2) [MO] warning (DiagnosticsService.cpp:99): Upload timeout or failed [MO] debug (DiagnosticsService.cpp:112): end upload routine (no more retry) [MO] verbose (RequestQueue.cpp:74): front 3 len 0 [MO] Send: [2,"b177a108-92fa-e60a-66bc-639534ecf5d3","DiagnosticsStatusNotification",{"status":"UploadFailed"}] [MO] Recv: [3,"b177a108-92fa-e60a-66bc-639534ecf5d3",{}] [MO] Recv: WS pong [MO] Recv: WS pong [MO] Recv: WS pong [MO] Recv: WS pong [MO] Recv: WS pong [MO] Recv: [2,"36c364c0-aa10-4aaf-9b68-7203256f0dbe","GetDiagnostics",{"location":"ftp://127.0.0.1:21/files/failedLocation"}] [MO] info (DiagnosticsService.cpp:173): Scheduled Diagnostics upload! location = ftp://127.0.0.1:21/files/failedLocation/diagnostics.log retries = 1, retryInterval = 20 startTime = 1970-01-01T00:00:00Z stopTime = 2026-01-24T05:14:51Z [MO] debug (DiagnosticsService.cpp:185): Initial try at 2025-01-24T05:14:56Z [MO] verbose (RequestQueue.cpp:74): front 2 len 0 [MO] Send: [3,"36c364c0-aa10-4aaf-9b68-7203256f0dbe",{"fileName":"diagnostics.log"}] [MO] debug (DiagnosticsService.cpp:66): Call onUpload [MO] debug (DiagnosticsService.cpp:379): discovered 3 files [MO] debug (FtpMbedTLS.cpp:504): init upload ftp://127.0.0.1:21/files/failedLocation/diagnostics.log [MO] debug (FtpMbedTLS.cpp:829): parsed dir: /files/failedLocation; fname: diagnostics.log [MO] debug (FtpMbedTLS.cpp:854): parsed user: ; pass: -*** [MO] debug (FtpMbedTLS.cpp:871): parsed host: 127.0.0.1; port: 21 [MO] ERROR (FtpMbedTLS.cpp:276): mbedtls_net_connect: 1 [MO] ERROR (FtpMbedTLS.cpp:302): connect: 1 [MO] ERROR (FtpMbedTLS.cpp:522): could not establish connection to FTP server: 1 [MO] info (DiagnosticsService.cpp:469): FTP upload failure (2) [MO] warning (DiagnosticsService.cpp:99): Upload timeout or failed [MO] debug (DiagnosticsService.cpp:112): end upload routine (no more retry) [MO] Recv: WS pong [MO] Recv: WS pong [MO] Recv: WS pong
I think the cause of this is that lastReportedStatus has not changed, but I need to check the exact details more.
lastReportedStatus
std::unique_ptr<Request> DiagnosticsService::getDiagnosticsStatusNotification() { if (getDiagnosticsStatus() != lastReportedStatus) { lastReportedStatus = getDiagnosticsStatus(); if (lastReportedStatus != DiagnosticsStatus::Idle) { Operation *diagNotificationMsg = new Ocpp16::DiagnosticsStatusNotification(lastReportedStatus); auto diagNotification = makeRequest(diagNotificationMsg); return diagNotification; } } return nullptr; }
The text was updated successfully, but these errors were encountered:
I add uploadFailure = false; In Model/DiagnosticsService requestDiagnosticsUpload() and It looks working for now.
uploadFailure = false;
Model/DiagnosticsService
requestDiagnosticsUpload()
//timestamps before year 2021 will be treated as "undefined" MicroOcpp::String DiagnosticsService::requestDiagnosticsUpload(const char *location, unsigned int retries, unsigned int retryInterval, Timestamp startTime, Timestamp stopTime) { if (onUpload == nullptr) { return makeString(getMemoryTag()); } String fileName; if (refreshFilename) { fileName = refreshFilename().c_str(); } else { fileName = "diagnostics.log"; } this->location.reserve(strlen(location) + 1 + fileName.size()); this->location = location; if (!this->location.empty() && this->location.back() != '/') { this->location.append("/"); } this->location.append(fileName.c_str()); this->retries = retries; this->retryInterval = retryInterval; this->startTime = startTime; Timestamp stopMin = Timestamp(2021,0,0,0,0,0); if (stopTime >= stopMin) { this->stopTime = stopTime; } else { auto newStop = context.getModel().getClock().now(); newStop += 3600 * 24 * 365; //set new stop time one year in future this->stopTime = newStop; } #if MO_DBG_LEVEL >= MO_DL_INFO { char dbuf [JSONDATE_LENGTH + 1] = {'\0'}; char dbuf2 [JSONDATE_LENGTH + 1] = {'\0'}; this->startTime.toJsonString(dbuf, JSONDATE_LENGTH + 1); this->stopTime.toJsonString(dbuf2, JSONDATE_LENGTH + 1); MO_DBG_INFO("Scheduled Diagnostics upload!\n" \ " location = %s\n" \ " retries = %i" \ ", retryInterval = %u" \ " startTime = %s\n" \ " stopTime = %s", this->location.c_str(), this->retries, this->retryInterval, dbuf, dbuf2); } #endif nextTry = context.getModel().getClock().now(); nextTry += 5; //wait for 5s before upload uploadIssued = false; uploadFailure = false; //THIS IS ADDED ONE #if MO_DBG_LEVEL >= MO_DL_DEBUG { char dbuf [JSONDATE_LENGTH + 1] = {'\0'}; nextTry.toJsonString(dbuf, JSONDATE_LENGTH + 1); MO_DBG_DEBUG("Initial try at %s", dbuf); } #endif return fileName; }
Sorry, something went wrong.
No branches or pull requests
Hi @matth-x .
I'm using v1.2.0.
I'm working with FirmwareUpdate/Diagnostics.
After Diagnostics upload failed, if I request GetDiagnostic again, charger didn't send DiagnosticsStatusNotification.
Here's log
I think the cause of this is that
lastReportedStatus
has not changed, but I need to check the exact details more.The text was updated successfully, but these errors were encountered: