blob: 03a333a598f1a3d26d22a9686dd22352b1685a80 [file] [log] [blame]
/*
** 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";
};