From 287d6a22c31e6ecb71ceaaf410b621fca68817c2 Mon Sep 17 00:00:00 2001 From: donker <donker@astron.nl> Date: Thu, 26 Aug 2021 07:53:16 +0200 Subject: [PATCH] L2SDP-454, removed enable --- src/fpga.cpp | 11 ----------- src/node.cpp | 14 ++++---------- src/node.h | 4 +--- src/periph/fpga.cpp | 20 +++++++++----------- src/periph/fpga.h | 4 +--- src/sdptr.conf | 6 ++++++ src/sdptr.cpp | 5 ++--- src/tr.cpp | 10 ++++++++-- 8 files changed, 31 insertions(+), 43 deletions(-) diff --git a/src/fpga.cpp b/src/fpga.cpp index e3dc2133..f3fa724e 100644 --- a/src/fpga.cpp +++ b/src/fpga.cpp @@ -166,15 +166,6 @@ vector<int> Fpga::get_all_nodes(void) return nodes; } -vector<bool> Fpga::get_all_enabled_nodes(void) -{ - vector<bool> enabled; - for (auto node : FPGA) { - enabled.push_back(node->isEnabled()); - } - return enabled; -} - vector<bool> Fpga::get_all_masked_nodes(void) { vector<bool> masked; @@ -269,8 +260,6 @@ bool Fpga::point(TermOutput& termout, const char cmd, const string addr, mask_cnt++; auto node = select_node(nodes[idx]); - // if (node->getEnabled() == false) { continue; } - ret = false; try { diff --git a/src/node.cpp b/src/node.cpp index c03adc1b..24785218 100644 --- a/src/node.cpp +++ b/src/node.cpp @@ -162,7 +162,7 @@ void Node::worker() } Node::Node(const string ipaddr, const uint unb, const uint localnr, const string type, - const string firmware, const uint firmware_version, const bool enabled) + const string firmware, const uint firmware_version) { // int ret; UniboardNr = unb; @@ -170,7 +170,7 @@ Node::Node(const string ipaddr, const uint unb, const uint localnr, const string GlobalNr = localnr + 4 * unb; myIPaddr = ipaddr; - periph_fpga = new Periph_fpga(GlobalNr, ipaddr, firmware, firmware_version, enabled); + periph_fpga = new Periph_fpga(GlobalNr, ipaddr, firmware, firmware_version); if (type != "pn") { @@ -217,7 +217,6 @@ Node::~Node() } } - bool Node::monitor(TermOutput& termout) { pread_cmd_struct p; @@ -237,11 +236,6 @@ CMMap * Node::get_MMap(void) return periph_fpga->getMMap(); } -bool Node::isEnabled(void) -{ - return periph_fpga->isEnabled(); -} - bool Node::isOnline(void) { return periph_fpga->isOnline(); @@ -304,11 +298,11 @@ bool Node::exec_reply(TermOutput& termout) // cout << "received " << r->nof_vals << " bytes from worker node=" << GlobalNr // << " retval=" << r->retval << " datatype=" << r->datatype << endl; - // if (isEnabled() && !r->retval) { + // if (isOnline() && !r->retval) { // //cout << "no retval" << endl; // throw runtime_error("no retval"); // } - if (isEnabled() && r->retval) { + if (isOnline() && r->retval) { int sz = reg_format_size_in_bytes(r->datatype); memcpy((void *)termout.val, (void *)r->val, r->nof_vals * sz); } diff --git a/src/node.h b/src/node.h index 293c942c..e9c7253c 100644 --- a/src/node.h +++ b/src/node.h @@ -50,7 +50,6 @@ public: std::string firmware; int n_beamsets; uint version; - uint enabled; }; #define GLOBALNODE_to_UNB(n) (n>>2) @@ -82,7 +81,7 @@ class Node { public: Node(const std::string ipaddr, const uint unb, const uint localnr, const std::string type, - const std::string firmware, const uint firmware_version, const bool enabled); + const std::string firmware, const uint firmware_version); ~Node(); uint ipaddr_to_id(const std::string ipaddr); @@ -92,7 +91,6 @@ class Node { const uint GetGlobalNr() { return GlobalNr; } const uint GetNr() { return LocalNr; } const std::string GetType() { return Type; } - bool isEnabled(void); bool isOnline(void); bool isMasked(); void setMasked(bool mask); diff --git a/src/periph/fpga.cpp b/src/periph/fpga.cpp index a110513b..65e4462d 100644 --- a/src/periph/fpga.cpp +++ b/src/periph/fpga.cpp @@ -58,11 +58,10 @@ extern int debug; #define R_MEM 0 // read mem value #define R_UCP 1 // read value from hardware -Periph_fpga::Periph_fpga(uint global_nr, string ipaddr, string expected_design_name, uint expected_firmware_version, bool enabled): +Periph_fpga::Periph_fpga(uint global_nr, string ipaddr, string expected_design_name, uint expected_firmware_version): GlobalNr(global_nr), - Enabled(enabled), - Masked(enabled), - Online(enabled), + Masked(false), + Online(false), my_expected_design_name(expected_design_name), my_expected_firmware_version(expected_firmware_version), my_current_design_name("-"), @@ -117,7 +116,7 @@ bool Periph_fpga::read(TermOutput& termout, const string addr, const string type, char *data, const uint nvalues, const int format) { - // cout << "node " << GlobalNr << " read: Enabled=" << Enabled << ", Online=" << Online << ", Masked=" << Masked << endl; + // cout << "node " << GlobalNr << ", Online=" << Online << ", Masked=" << Masked << endl; bool retval = false; termout.datatype = format; @@ -126,7 +125,7 @@ bool Periph_fpga::read(TermOutput& termout, const string addr, if (!Masked) { // Not selected return false; } - if ((!Enabled) || (!Online)) { // Selected but not possible + if (!Online) { // Selected but not possible cout << "read() error node " << GlobalNr << " not enabled or not online" << endl; return false; } @@ -309,13 +308,13 @@ bool Periph_fpga::read(TermOutput& termout, const string addr, bool Periph_fpga::write(TermOutput& termout, const string addr, const string type, char *data, const uint nvalues, const int format) { - // cout << "node " << GlobalNr << " write: Enabled=" << Enabled << ", Online=" << Online << ", Masked=" << Masked << endl; + // cout << "node " << GlobalNr << " write: Online=" << Online << ", Masked=" << Masked << endl; bool retval = false; if (!Masked) { // Not selected return false; } - if ((!Enabled) || (!Online)) { // Selected but not possible + if (!Online) { // Selected but not possible cout << "write() error node " << GlobalNr << " not enabled or not online" << endl; return false; } @@ -466,7 +465,6 @@ bool Periph_fpga::write(TermOutput& termout, const string addr, const string typ */ bool Periph_fpga::monitor(TermOutput& termout) { - if (!Enabled) { return false; } // use tictoc, tic(start) toc(stop) to see how long this function takes // first 9 read functions on 4 nodes will take 6 msec. string name = "periph.fpga.monitor node " + to_string(GlobalNr); @@ -504,7 +502,7 @@ bool Periph_fpga::monitor(TermOutput& termout) bool Periph_fpga::Read(const string addr_str, uint32_t *data_ptr, bool use_mask_shift=true) { bool ret; - if ((!Enabled) || (!Masked)) { + if (!Masked) { return false; } if (mmap->empty()) { @@ -540,7 +538,7 @@ bool Periph_fpga::Read(const string addr_str, uint32_t *data_ptr, bool use_mask_ */ bool Periph_fpga::Write(const string addr_str, uint32_t *data_ptr, bool use_shift_mask=true) { - if ((!Enabled) || (!Masked)) { + if (!Masked) { return false; } if (!mmap->find_register(addr_str)) { diff --git a/src/periph/fpga.h b/src/periph/fpga.h index 2a4fea97..7a4f0386 100644 --- a/src/periph/fpga.h +++ b/src/periph/fpga.h @@ -47,7 +47,6 @@ private: UCP *ucp; CMMap *mmap; uint32_t GlobalNr; - bool Enabled; bool Masked; bool Online; @@ -186,7 +185,7 @@ private: CMMap read_reg_map(); public: - Periph_fpga(uint global_nr, std::string ipaddr, std::string expected_design_name, uint expected_firmware_version, bool enabled); + Periph_fpga(uint global_nr, std::string ipaddr, std::string expected_design_name, uint expected_firmware_version); ~Periph_fpga(); @@ -197,7 +196,6 @@ public: bool monitor(TermOutput& termout); CMMap* getMMap(void) { return mmap; }; - bool isEnabled(void) { return Enabled; } bool isOnline(void) { return Online; } bool isMasked(void) { return Masked; } void setMasked(bool mask) { Masked = mask; } diff --git a/src/sdptr.conf b/src/sdptr.conf index a73f8f65..5b39e3e7 100644 --- a/src/sdptr.conf +++ b/src/sdptr.conf @@ -52,3 +52,9 @@ n_fpgas = 16 first_fpga_nr = 0 ip_prefix = 10.99. n_beamsets = 1 + +[LTS_S8] +n_fpgas = 16 +first_fpga_nr = 8 +ip_prefix = 10.99. +n_beamsets = 1 \ No newline at end of file diff --git a/src/sdptr.cpp b/src/sdptr.cpp index 782926d6..bcf0e224 100644 --- a/src/sdptr.cpp +++ b/src/sdptr.cpp @@ -137,12 +137,11 @@ void server_init(bool warm_start) nc.firmware = firmware_name; nc.n_beamsets = n_beamsets; nc.version = (uint)firmware_version; - nc.enabled = 1; NC.push_back(nc); } for (auto nc : NC) { - cout << nc.gn << ", " << nc.ipaddr << ", " << nc.firmware << ", " << nc.version << ", " << nc.enabled << endl; + cout << nc.gn << ", " << nc.ipaddr << ", " << nc.firmware << ", " << nc.version << endl; } cerr << "done, it is mine. Now (re)init all" << endl; @@ -159,7 +158,7 @@ void server_init(bool warm_start) uint n = GLOBALNODE_to_NODE(gn); string type = GLOBALNODE_to_TYPE(gn); - Node *node = new Node(nc.ipaddr, uniboardnr, n, type, nc.firmware, nc.version, (bool)nc.enabled); + Node *node = new Node(nc.ipaddr, uniboardnr, n, type, nc.firmware, nc.version); nodelist.push_back(node); } SD.unb = new UniboardMap(nodelist); diff --git a/src/tr.cpp b/src/tr.cpp index 1eb9638e..16cda715 100644 --- a/src/tr.cpp +++ b/src/tr.cpp @@ -138,8 +138,14 @@ bool TranslatorMap::translator(TermOutput& termout, const char cmd, const string else if (addr == "TR_tod_pps_delta_R") { double *ptr_out = (double *)termout.val; vector<uint32_t> pps_offset_cnt = SD.unb->get_all_pps_offset_cnt(); - cout << "pps_offset_cnt=" << pps_offset_cnt[0] << endl; - double pps_delta = (double)(pps_offset_cnt[0] * C_200MHZ_1_CNT_NS); + double pps_delta = 0.0; + for (uint i=0; i<pps_offset_cnt.size(); i++) { + if (pps_offset_cnt[i] > 0) { + cout << "use pps_offset_cnt from node " << i << " cnt=" << pps_offset_cnt[i] << endl; + pps_delta = (double)(pps_offset_cnt[i] * C_200MHZ_1_CNT_NS); + break; + } + } *ptr_out = pps_delta; } else if (addr == "TR_start_time_R") { -- GitLab