//--------------------------------------------------------------------------- // // SCSI Target Emulator PiSCSI // for Raspberry Pi // // Copyright (C) 2022 Uwe Seimet // //--------------------------------------------------------------------------- #pragma once #include "hal/bus.h" #include "hal/data_sample.h" #include #include using namespace std; // TODO Make static fields/methods non-static class ScsiMon { public: ScsiMon() = default; ~ScsiMon() = default; int run(const vector &); inline static double ns_per_loop; private: void ParseArguments(const vector &); void PrintHelpText(const vector &) const; void Banner() const; bool Init(); void Cleanup() const; void Reset() const; static void KillHandler(int); static inline volatile bool running; shared_ptr bus; uint32_t buff_size = 1000000; vector> data_buffer; uint32_t data_idx = 0; bool print_help = false; bool import_data = false; string file_base_name = "log"; string vcd_file_name; string json_file_name; string html_file_name; string input_file_name; };