| /* |
| ** Licensed under the Apache License, Version 2.0 (the "License"); |
| ** you may not use this file except in compliance with the License. |
| ** You may obtain a copy of the License at |
| ** |
| ** http://www.apache.org/licenses/LICENSE-2.0 |
| ** |
| ** Unless required by applicable law or agreed to in writing, software |
| ** distributed under the License is distributed on an "AS IS" BASIS, |
| ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| ** See the License for the specific language governing permissions and |
| ** limitations under the License. |
| ** |
| ** Copyright 2022-2023 NXP |
| ** |
| */ |
| #pragma once |
| |
| #include <fstream> |
| |
| #define ESE_CONNECTIVITY_PACKET 0x96 |
| #define ESE_DPD_EVENT 0x70 |
| |
| enum class LogEventType { kLogSMBEvent = 0, kLogDPDEvent }; |
| |
| // Store NTF/Event to filesystem under /data |
| // Currently being used to store SMB debug ntf and eSE DPD |
| // monitor events |
| |
| class PhNxpEventLogger { |
| public: |
| // Mark copy constructor deleted |
| PhNxpEventLogger(const PhNxpEventLogger&) = delete; |
| |
| // Get singleton instance of EventLogger. |
| static PhNxpEventLogger& GetInstance(); |
| |
| // Open output file(s) for logging. |
| void Initialize(); |
| |
| // Write ntf/event to respective logfile. |
| // Event Type SMB: write SMB ntf to SMB logfile |
| // Event Type DPD: write DPD events DPD logfile |
| void Log(uint8_t* p_ntf, uint16_t p_len, LogEventType event); |
| |
| // Close opened file(s). |
| void Finalize(); |
| |
| private: |
| PhNxpEventLogger(); |
| bool logging_enabled_; |
| std::ofstream smb_logFile_; |
| std::ofstream dpd_logFile_; |
| const char* kSMBLogFilePath = "/data/vendor/nfc/NxpNfcSmbLogDump.txt"; |
| const char* kDPDEventFilePath = "/data/vendor/nfc/debug/DPD_debug.txt"; |
| }; |