From befc3429d4964996de6b7c97c5c941294a2e6636 Mon Sep 17 00:00:00 2001 From: blaakmeer <sdos@astron.nl> Date: Wed, 2 Aug 2006 14:35:02 +0000 Subject: [PATCH] BugID: 852 Changed the existing code to compile with the new protocol. Some parts of the protocol have not been implemented yet in RA --- .../_RegisterAccess/src/ARAPhysicalModel.cc | 25 +- .../_RegisterAccess/src/ARAPropertyDefines.h | 86 +++---- .../src/ARARegisterAccessTask.cc | 215 ++++++++---------- .../src/ARARegisterAccessTask.h | 8 +- .../_RegisterAccess/test/ARATestDriverTask.cc | 64 +++--- .../PIC/_RegisterAccess/test/ARATestTask.cc | 56 +---- 6 files changed, 210 insertions(+), 244 deletions(-) diff --git a/MAC/APL/PIC/_RegisterAccess/src/ARAPhysicalModel.cc b/MAC/APL/PIC/_RegisterAccess/src/ARAPhysicalModel.cc index c48c265eea3..a832f438853 100644 --- a/MAC/APL/PIC/_RegisterAccess/src/ARAPhysicalModel.cc +++ b/MAC/APL/PIC/_RegisterAccess/src/ARAPhysicalModel.cc @@ -26,7 +26,8 @@ #include <GCF/PAL/GCF_ExtProperty.h> #include <GCF/GCF_PVUnsigned.h> -#include <GCF/ParameterSet.h> +#include <APS/ParameterSet.h> +#include <Common/LofarLocators.h> #include "ARAPhysicalModel.h" #include "ARAPropertyDefines.h" @@ -35,6 +36,7 @@ using namespace std; using namespace boost; +using namespace LOFAR::ACC::APS; using namespace LOFAR::GCF::Common; using namespace LOFAR::GCF::TM; using namespace LOFAR::GCF::PAL; @@ -51,13 +53,22 @@ ARAPhysicalModel::ARAPhysicalModel() : { int rack,subrack,board,ap,rcu; - ParameterSet::instance()->adoptFile(GCF::ParameterSet::instance()->getSearchPath() + string("RegisterAccess.conf")); + try + { + ConfigLocator cl; + globalParameterSet()->adoptFile(cl.locate("RegisterAccess.conf")); + } + catch (Exception e) + { + LOG_ERROR_STR("Failed to load configuration files: " << e.text()); + exit(EXIT_FAILURE); + } - int n_racks = ParameterSet::instance()->getInt(PARAM_N_RACKS); - int n_subracks_per_rack = ParameterSet::instance()->getInt(PARAM_N_SUBRACKS_PER_RACK); - int n_boards_per_subrack = ParameterSet::instance()->getInt(PARAM_N_BOARDS_PER_SUBRACK); - int n_aps_per_board = ParameterSet::instance()->getInt(PARAM_N_APS_PER_BOARD); - int n_rcus_per_ap = ParameterSet::instance()->getInt(PARAM_N_RCUS_PER_AP); + int n_racks = globalParameterSet()->getInt32(PARAM_N_RACKS); + int n_subracks_per_rack = globalParameterSet()->getInt32(PARAM_N_SUBRACKS_PER_RACK); + int n_boards_per_subrack = globalParameterSet()->getInt32(PARAM_N_BOARDS_PER_SUBRACK); + int n_aps_per_board = globalParameterSet()->getInt32(PARAM_N_APS_PER_BOARD); + int n_rcus_per_ap = globalParameterSet()->getInt32(PARAM_N_RCUS_PER_AP); char tempString[200]; vector<string> childrenPIC,childrenRack,childrenSubRack,childrenBoard; diff --git a/MAC/APL/PIC/_RegisterAccess/src/ARAPropertyDefines.h b/MAC/APL/PIC/_RegisterAccess/src/ARAPropertyDefines.h index bf82f800dd6..94cdab7662e 100644 --- a/MAC/APL/PIC/_RegisterAccess/src/ARAPropertyDefines.h +++ b/MAC/APL/PIC/_RegisterAccess/src/ARAPropertyDefines.h @@ -36,10 +36,10 @@ const int STATUS_OK = 0; const int STATUS_ERROR = 1; /* -const int N_RACKS = 1; // 6 -const int N_SUBRACKS_PER_RACK = 1; // 4 -const int N_BOARDS_PER_SUBRACK = 1; -const int N_APS_PER_BOARD = 1; +const int N_RACKS = 3; // 6 +const int N_SUBRACKS_PER_RACK = 2; // 4 +const int N_BOARDS_PER_SUBRACK = 4; +const int N_APS_PER_BOARD = 4; const int N_RCUS_PER_AP = 2; const int N_RCUS = N_RCUS_PER_AP* N_APS_PER_BOARD* @@ -73,42 +73,42 @@ const char APC_MEPStatus[] = "ApcMEPStatusType"; const char APC_SYNCStatus[] = "ApcSYNCStatusType"; const char APC_BoardRCUStatus[] = "ApcBoardRCUStatusType"; -const char SCOPE_PIC[] = "PIC"; -const char SCOPE_PIC_RackN[] = "PIC_Rack%d"; -const char SCOPE_PIC_RackN_SubRackN[] = "PIC_Rack%d_SubRack%d"; -const char SCOPE_PIC_RackN_SubRackN_BoardN[] = "PIC_Rack%d_SubRack%d_Board%d"; -const char SCOPE_PIC_RackN_SubRackN_BoardN_MEPStatus[] = "PIC_Rack%d_SubRack%d_Board%d_MEPStatus"; -const char SCOPE_PIC_RackN_SubRackN_BoardN_ETH[] = "PIC_Rack%d_SubRack%d_Board%d_ETH"; -const char SCOPE_PIC_RackN_SubRackN_BoardN_BP[] = "PIC_Rack%d_SubRack%d_Board%d_BP"; -const char SCOPE_PIC_RackN_SubRackN_BoardN_APN[] = "PIC_Rack%d_SubRack%d_Board%d_AP%d"; -const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_SYNCStatus[] = "PIC_Rack%d_SubRack%d_Board%d_AP%d_SYNCStatus"; -const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_BoardRCUStatus[] = "PIC_Rack%d_SubRack%d_Board%d_AP%d_BoardRCUStatus"; -const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN[] = "PIC_Rack%d_SubRack%d_Board%d_AP%d_RCU%d"; -const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN_LFA[] = "PIC_Rack%d_SubRack%d_Board%d_AP%d_RCU%d_LFA"; -const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN_HFA[] = "PIC_Rack%d_SubRack%d_Board%d_AP%d_RCU%d_HFA"; -const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN_ADCStatistics[] = "PIC_Rack%d_SubRack%d_Board%d_AP%d_RCU%d_ADCStatistics"; -const char SCOPE_PIC_Maintenance[] = "PIC_Maintenance"; -const char SCOPE_PIC_RackN_Maintenance[] = "PIC_Rack%d_Maintenance"; -const char SCOPE_PIC_RackN_SubRackN_Maintenance[] = "PIC_Rack%d_SubRack%d_Maintenance"; -const char SCOPE_PIC_RackN_SubRackN_BoardN_Maintenance[] = "PIC_Rack%d_SubRack%d_Board%d_Maintenance"; -const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN_Maintenance[] = "PIC_Rack%d_SubRack%d_Board%d_AP%d_RCU%d_Maintenance"; -const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN_LFA_Maintenance[] = "PIC_Rack%d_SubRack%d_Board%d_AP%d_RCU%d_LFA_Maintenance"; -const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN_HFA_Maintenance[] = "PIC_Rack%d_SubRack%d_Board%d_AP%d_RCU%d_HFA_Maintenance"; -const char SCOPE_PIC_RackN_Alert[] = "PIC_Rack%d_Alert"; -const char SCOPE_PIC_RackN_SubRackN_Alert[] = "PIC_Rack%d_SubRack%d_Alert"; -const char SCOPE_PIC_RackN_SubRackN_BoardN_Alert[] = "PIC_Rack%d_SubRack%d_Board%d_Alert"; -const char SCOPE_PIC_Command[] = "PIC_Command"; -const char SCOPE_PIC_RackN_SubRackN_Command[] = "PIC_Rack%d_SubRack%d_Command"; -const char SCOPE_PIC_RackN_SubRackN_BoardN_Command[] = "PIC_Rack%d_SubRack%d_Board%d_Command"; -const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN_Command[] = "PIC_Rack%d_SubRack%d_Board%d_AP%d_RCU%d_Command"; -const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN_HFA_Command[] = "PIC_Rack%d_SubRack%d_Board%d_AP%d_RCU%d_HFA_Command"; - -const char TYPE_LCU_PIC[] = "TLcuPic"; -const char TYPE_LCU_PIC_Maintenance[] = "TLcuPicMaintenance"; -const char TYPE_LCU_PIC_Rack[] = "TLcuPicRack"; -const char TYPE_LCU_PIC_Alert[] = "TLcuPicAlert"; -const char TYPE_LCU_PIC_SubRack[] = "TLcuPicSubRack"; -const char TYPE_LCU_PIC_Board[] = "TLcuPicBoard"; +const char SCOPE_PIC[] = "LOFAR_PIC"; +const char SCOPE_PIC_RackN[] = "LOFAR_PIC_Cabinet%d"; +const char SCOPE_PIC_RackN_SubRackN[] = "LOFAR_PIC_Cabinet%d_SubRack%d"; +const char SCOPE_PIC_RackN_SubRackN_BoardN[] = "LOFAR_PIC_Cabinet%d_SubRack%d_RSPBoard%d"; +const char SCOPE_PIC_RackN_SubRackN_BoardN_MEPStatus[] = "LOFAR_PIC_Cabinet%d_SubRack%d_RSPBoard%d.MEPStatus"; +const char SCOPE_PIC_RackN_SubRackN_BoardN_ETH[] = "LOFAR_PIC_Cabinet%d_SubRack%d_RSPBoard%d.ETH"; +const char SCOPE_PIC_RackN_SubRackN_BoardN_BP[] = "LOFAR_PIC_Cabinet%d_SubRack%d_RSPBoard%d.BP"; +const char SCOPE_PIC_RackN_SubRackN_BoardN_APN[] = "LOFAR_PIC_Cabinet%d_SubRack%d_RSPBoard%d.AP%d"; +const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_SYNCStatus[] = "LOFAR_PIC_Cabinet%d_SubRack%d_RSPBoard%d.AP%d.SYNCStatus"; +const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_BoardRCUStatus[] = "LOFAR_PIC_Cabinet%d_SubRack%d_RSPBoard%d.AP%d.BoardRCUStatus"; +const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN[] = "LOFAR_PIC_Cabinet%d_SubRack%d_RSPBoard%d.AP%d.RCU%d"; +const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN_LFA[] = "LOFAR_PIC_Cabinet%d_SubRack%d_RSPBoard%d.AP%d.RCU%d.LFA"; +const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN_HFA[] = "LOFAR_PIC_Cabinet%d_SubRack%d_RSPBoard%d.AP%d.RCU%d.HFA"; +const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN_ADCStatistics[] = "LOFAR_PIC_Cabinet%d_SubRack%d_RSPBoard%d.AP%d.RCU%d.ADCStatistics"; +const char SCOPE_PIC_Maintenance[] = "LOFAR_PIC_Maintenance"; +const char SCOPE_PIC_RackN_Maintenance[] = "LOFAR_PIC_Cabinet%d_Maintenance"; +const char SCOPE_PIC_RackN_SubRackN_Maintenance[] = "LOFAR_PIC_Cabinet%d_SubRack%d_Maintenance"; +const char SCOPE_PIC_RackN_SubRackN_BoardN_Maintenance[] = "LOFAR_PIC_Cabinet%d_SubRack%d_RSPBoard%d.Maintenance"; +const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN_Maintenance[] = "LOFAR_PIC_Cabinet%d_SubRack%d_RSPBoard%d.AP%d.RCU%d.Maintenance"; +const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN_LFA_Maintenance[] = "LOFAR_PIC_Cabinet%d_SubRack%d_RSPBoard%d.AP%d.RCU%d.LFA.Maintenance"; +const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN_HFA_Maintenance[] = "LOFAR_PIC_Cabinet%d_SubRack%d_RSPBoard%d.AP%d.RCU%d.HFA.Maintenance"; +const char SCOPE_PIC_RackN_Alert[] = "LOFAR_PIC_Cabinet%d_Alert"; +const char SCOPE_PIC_RackN_SubRackN_Alert[] = "LOFAR_PIC_Cabinet%d_SubRack%d_Alert"; +const char SCOPE_PIC_RackN_SubRackN_BoardN_Alert[] = "LOFAR_PIC_Cabinet%d_SubRack%d_RSPBoard%d.Alert"; +const char SCOPE_PIC_Command[] = "LOFAR_PIC_Command"; +const char SCOPE_PIC_RackN_SubRackN_Command[] = "LOFAR_PIC_Cabinet%d_SubRack%d_Command"; +const char SCOPE_PIC_RackN_SubRackN_BoardN_Command[] = "LOFAR_PIC_Cabinet%d_SubRack%d_RSPBoard%d.Command"; +const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN_Command[] = "LOFAR_PIC_Cabinet%d_SubRack%d_RSPBoard%d.AP%d.RCU%d.Command"; +const char SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN_HFA_Command[] = "LOFAR_PIC_Cabinet%d_SubRack%d_RSPBoard%d.AP%d.RCU%d.HFA.Command"; + +const char TYPE_LCU_PIC[] = "PIC"; +const char TYPE_LCU_PIC_Maintenance[] = "Maintenance"; +const char TYPE_LCU_PIC_Rack[] = "Cabinet"; +const char TYPE_LCU_PIC_Alert[] = "Alert"; +const char TYPE_LCU_PIC_SubRack[] = "SubRack"; +const char TYPE_LCU_PIC_Board[] = "RSPBoard"; const char TYPE_LCU_PIC_MEPStatus[] = "TLcuPicMEPStatus"; const char TYPE_LCU_PIC_SYNCStatus[] = "TLcuPicSYNCStatus"; const char TYPE_LCU_PIC_BoardRCUStatus[]= "TLcuPicBoardRCUStatus"; @@ -145,7 +145,8 @@ const GCF::Common::TPSCategory PSCAT_LCU_PIC_Command = GCF::Common::PS_CAT #define PROPNAME_COMMAND "command" #define PROPNAME_RESULT "result" #define PROPNAME_RESULT_CODE "resultCode" -#define PROPNAME_VOLTAGE15 "voltage15" +#define PROPNAME_VOLTAGE12 "voltage12" +#define PROPNAME_VOLTAGE25 "voltage25" #define PROPNAME_VOLTAGE33 "voltage33" #define PROPNAME_FRAMESRECEIVED "packetsReceived" #define PROPNAME_FRAMESERROR "packetsError" @@ -252,7 +253,8 @@ PROPERTYCONFIG_END PROPERTYCONFIG_BEGIN(PROPS_Board) PROPERTYCONFIG_ITEM(PROPNAME_STATUS, GCF_READWRITE_PROP, "0") PROPERTYCONFIG_ITEM(PROPNAME_FUNCTIONALITY, GCF_READABLE_PROP, "true") -PROPERTYCONFIG_ITEM(PROPNAME_VOLTAGE15, GCF_READABLE_PROP, "0") +PROPERTYCONFIG_ITEM(PROPNAME_VOLTAGE12, GCF_READABLE_PROP, "0") +PROPERTYCONFIG_ITEM(PROPNAME_VOLTAGE25, GCF_READABLE_PROP, "0") PROPERTYCONFIG_ITEM(PROPNAME_VOLTAGE33, GCF_READABLE_PROP, "0") PROPERTYCONFIG_ITEM(PROPNAME_FFI0, GCF_READABLE_PROP, "0") PROPERTYCONFIG_ITEM(PROPNAME_FFI1, GCF_READABLE_PROP, "0") diff --git a/MAC/APL/PIC/_RegisterAccess/src/ARARegisterAccessTask.cc b/MAC/APL/PIC/_RegisterAccess/src/ARARegisterAccessTask.cc index 3860838f2dc..9afdc8c66b7 100644 --- a/MAC/APL/PIC/_RegisterAccess/src/ARARegisterAccessTask.cc +++ b/MAC/APL/PIC/_RegisterAccess/src/ARARegisterAccessTask.cc @@ -36,10 +36,11 @@ #include <time.h> #include <Common/lofar_string.h> #include <Common/lofar_vector.h> +#include <Common/LofarLocators.h> #include <boost/date_time/posix_time/posix_time.hpp> -#include <GCF/ParameterSet.h> +#include <APS/ParameterSet.h> #include <GCF/GCF_Defines.h> #include <GCF/GCF_PValue.h> #include <GCF/GCF_PVInteger.h> @@ -52,6 +53,7 @@ #include "ARAPropertyDefines.h" #include "ARAPhysicalModel.h" +using namespace LOFAR::ACC::APS; using namespace LOFAR::GCF::Common; using namespace LOFAR::GCF::TM; using namespace LOFAR::GCF::PAL; @@ -89,6 +91,7 @@ RegisterAccessTask::RegisterAccessTask(string name) m_n_aps_per_board(1), m_n_rcus_per_ap(2), m_n_rcus(2), + m_n_rspboards(1), m_status_update_interval(1), m_stats_update_interval(1), m_centralized_stats(false), @@ -109,10 +112,20 @@ RegisterAccessTask::RegisterAccessTask(string name) registerProtocol(RSP_PROTOCOL, RSP_PROTOCOL_signalnames); m_answer.setTask(this); - ParameterSet::instance()->adoptFile(GCF::ParameterSet::instance()->getSearchPath() + string("RegisterAccess.conf")); - m_status_update_interval = ParameterSet::instance()->getInt(PARAM_STATUS_UPDATE_INTERVAL); - m_stats_update_interval = ParameterSet::instance()->getInt(PARAM_STATISTICS_UPDATE_INTERVAL); - m_centralized_stats = (0!=ParameterSet::instance()->getInt(PARAM_STATISTICS_CENTRALIZED)); + try + { + ConfigLocator cl; + globalParameterSet()->adoptFile(cl.locate("RegisterAccess.conf")); + } + catch (Exception e) + { + LOG_ERROR_STR("Failed to load configuration files: " << e.text()); + exit(EXIT_FAILURE); + } + + m_status_update_interval = globalParameterSet()->getInt32(PARAM_STATUS_UPDATE_INTERVAL); + m_stats_update_interval = globalParameterSet()->getInt32(PARAM_STATISTICS_UPDATE_INTERVAL); + m_centralized_stats = (0!=globalParameterSet()->getInt32(PARAM_STATISTICS_CENTRALIZED)); } RegisterAccessTask::~RegisterAccessTask() @@ -234,9 +247,9 @@ GCFEvent::TResult RegisterAccessTask::connected_state(GCFEvent& e, GCFPortInterf { LOG_INFO("RSP_GETCONFIGACK received"); RSPGetconfigackEvent ack(e); - LOG_INFO(formatString("n_rcus =%d",ack.n_rcus)); - LOG_INFO(formatString("n_rspboards=%d",ack.n_rspboards)); - LOG_INFO(formatString("n_tdboards =%d",ack.n_tdboards)); + LOG_INFO(formatString("n_rcus =%d",ack.n_rcus)); + LOG_INFO(formatString("n_rspboards =%d",ack.n_rspboards)); + LOG_INFO(formatString("max_rspboards =%d",ack.max_rspboards)); char scopeString[300]; int rack; @@ -246,12 +259,13 @@ GCFEvent::TResult RegisterAccessTask::connected_state(GCFEvent& e, GCFPortInterf int rcu; int globalRcuNr(0); - m_n_racks = ParameterSet::instance()->getInt(PARAM_N_RACKS); - m_n_subracks_per_rack = ParameterSet::instance()->getInt(PARAM_N_SUBRACKS_PER_RACK); + m_n_racks = globalParameterSet()->getInt32(PARAM_N_RACKS); + m_n_subracks_per_rack = globalParameterSet()->getInt32(PARAM_N_SUBRACKS_PER_RACK); m_n_boards_per_subrack = (m_n_racks * m_n_subracks_per_rack) / ack.n_rspboards; - m_n_aps_per_board = ParameterSet::instance()->getInt(PARAM_N_APS_PER_BOARD); - m_n_rcus_per_ap = ParameterSet::instance()->getInt(PARAM_N_RCUS_PER_AP); + m_n_aps_per_board = globalParameterSet()->getInt32(PARAM_N_APS_PER_BOARD); + m_n_rcus_per_ap = globalParameterSet()->getInt32(PARAM_N_RCUS_PER_AP); m_n_rcus = ack.n_rcus; + m_n_rspboards = ack.n_rspboards; if(m_n_rcus != m_n_rcus_per_ap* m_n_aps_per_board* m_n_boards_per_subrack* @@ -502,31 +516,29 @@ GCFEvent::TResult RegisterAccessTask::getVersion_state(GCFEvent& e, GCFPortInter { char scopeString[300]; char version[20]; - for (int board = 0; board < ack.versions.rsp().extent(blitz::firstDim); board++) - { - int rackNr; - int subRackNr; - int relativeBoardNr; - getBoardRelativeNumbers(board,rackNr,subRackNr,relativeBoardNr); - sprintf(version,"%d.%d",ack.versions.rsp()(board) >> 4,ack.versions.rsp()(board) & 0xF); - LOG_INFO(formatString("board[%d].version = 0x%x",board,ack.versions.rsp()(board))); - sprintf(scopeString,SCOPE_PIC_RackN_SubRackN_BoardN,rackNr,subRackNr,relativeBoardNr); - updateVersion(scopeString,string(version),double(ack.timestamp)); - - sprintf(version,"%d.%d",ack.versions.bp()(board) >> 4,ack.versions.bp()(board) & 0xF); - LOG_INFO(formatString("bp[%d].version = 0x%x",board,ack.versions.bp()(board))); - sprintf(scopeString,SCOPE_PIC_RackN_SubRackN_BoardN_BP,rackNr,subRackNr,relativeBoardNr); - updateVersion(scopeString,string(version),double(ack.timestamp)); - - for (int ap = 0; ap < EPA_Protocol::N_AP; ap++) - { - sprintf(version,"%d.%d",ack.versions.ap()(board * EPA_Protocol::N_AP + ap) >> 4, - ack.versions.ap()(board * EPA_Protocol::N_AP + ap) & 0xF); - LOG_INFO(formatString("ap[%d][%d].version = 0x%x",board,ap,ack.versions.ap()(board * EPA_Protocol::N_AP + ap))); - sprintf(scopeString,SCOPE_PIC_RackN_SubRackN_BoardN_APN,rackNr,subRackNr,relativeBoardNr,ap); - updateVersion(scopeString,string(version),double(ack.timestamp)); - } - } + int board = 0; + int rackNr; + int subRackNr; + int relativeBoardNr; + getBoardRelativeNumbers(board,rackNr,subRackNr,relativeBoardNr); + sprintf(version,"%d.%d",ack.versions.bp()(board).rsp_version >> 4,ack.versions.bp()(board).rsp_version & 0xF); + LOG_INFO(formatString("board[%d].version = 0x%x",board,ack.versions.bp()(board).rsp_version)); + sprintf(scopeString,SCOPE_PIC_RackN_SubRackN_BoardN,rackNr,subRackNr,relativeBoardNr); + updateVersion(scopeString,string(version),double(ack.timestamp)); + + sprintf(version,"%d.%d",ack.versions.bp()(board).fpga_maj,ack.versions.bp()(board).fpga_min); + LOG_INFO(formatString("bp[%d].version = %s",version)); + sprintf(scopeString,SCOPE_PIC_RackN_SubRackN_BoardN_BP,rackNr,subRackNr,relativeBoardNr); + updateVersion(scopeString,string(version),double(ack.timestamp)); + + for (int ap = 0; ap < EPA_Protocol::N_AP; ap++) + { + sprintf(version,"%d.%d",ack.versions.ap()(board * EPA_Protocol::N_AP + ap).fpga_maj, + ack.versions.ap()(board * EPA_Protocol::N_AP + ap).fpga_min); + LOG_INFO(formatString("ap[%d][%d].version = %s",board,ap,version)); + sprintf(scopeString,SCOPE_PIC_RackN_SubRackN_BoardN_APN,rackNr,subRackNr,relativeBoardNr,ap); + updateVersion(scopeString,string(version),double(ack.timestamp)); + } } TRAN(RegisterAccessTask::subscribingStatus_state); @@ -604,7 +616,7 @@ GCFEvent::TResult RegisterAccessTask::subscribingStatus_state(GCFEvent& e, GCFPo // subscribe to status updates RSPSubstatusEvent substatus; substatus.timestamp.setNow(); - substatus.rcumask = std::bitset<MAX_N_RCUS>((1<<m_n_rcus)-1); + substatus.rspmask = std::bitset<MAX_N_RSPBOARDS>((1<<m_n_rspboards)-1); substatus.period = m_status_update_interval; m_RSPclient.send(substatus); @@ -1210,7 +1222,6 @@ GCFEvent::TResult RegisterAccessTask::handleUpdStatus(GCFEvent& e, GCFPortInterf updStatusEvent.handle)); blitz::Array<EPA_Protocol::BoardStatus, 1>& boardStatus = updStatusEvent.sysstatus.board(); - blitz::Array<EPA_Protocol::RCUStatus, 1>& rcuStatus = updStatusEvent.sysstatus.rcu(); int rackNr; int subRackNr; @@ -1224,24 +1235,27 @@ GCFEvent::TResult RegisterAccessTask::handleUpdStatus(GCFEvent& e, GCFPortInterf getBoardRelativeNumbers(boardNr,rackNr,subRackNr,relativeBoardNr); LOG_INFO(formatString("UpdStatus:Rack:%d:SubRack:%d:Board::%d\n",rackNr,subRackNr,relativeBoardNr)); - uint8 rspVoltage_1_5 = boardStatus(boardNr).rsp.voltage_1_5; + uint8 rspVoltage_1_2 = boardStatus(boardNr).rsp.voltage_1_2; uint8 rspVoltage_2_5 = boardStatus(boardNr).rsp.voltage_2_5; uint8 rspVoltage_3_3 = boardStatus(boardNr).rsp.voltage_3_3; - uint8 rspVoltage_12 = boardStatus(boardNr).rsp.voltage_12; - LOG_INFO(formatString("UpdStatus:RSP voltage_1_5:%d:voltage_2_5:%d:voltage_3_3:%d:voltage_12:%d",rspVoltage_1_5,rspVoltage_2_5,rspVoltage_3_3,rspVoltage_12)); + LOG_INFO(formatString("UpdStatus:RSP voltage_1_2:%d:voltage_2_5:%d:voltage_3_3:%d",rspVoltage_1_2,rspVoltage_2_5,rspVoltage_3_3)); sprintf(scopeString,SCOPE_PIC_RackN_SubRackN_BoardN,rackNr,subRackNr,relativeBoardNr); - updateBoardProperties(scopeString,rspVoltage_1_5,rspVoltage_2_5,rspVoltage_3_3,rspVoltage_12,timestamp); + updateBoardProperties(scopeString,rspVoltage_1_2,rspVoltage_2_5,rspVoltage_3_3,timestamp); - uint8 bpTemp = boardStatus(boardNr).fpga.bp_temp; - uint8 ap0Temp = boardStatus(boardNr).fpga.ap0_temp; - uint8 ap1Temp = boardStatus(boardNr).fpga.ap1_temp; - uint8 ap2Temp = boardStatus(boardNr).fpga.ap2_temp; - uint8 ap3Temp = boardStatus(boardNr).fpga.ap3_temp; + uint8 pcbTemp = boardStatus(boardNr).rsp.pcb_temp; + uint8 bpTemp = boardStatus(boardNr).rsp.bp_temp; + uint8 ap0Temp = boardStatus(boardNr).rsp.ap0_temp; + uint8 ap1Temp = boardStatus(boardNr).rsp.ap1_temp; + uint8 ap2Temp = boardStatus(boardNr).rsp.ap2_temp; + uint8 ap3Temp = boardStatus(boardNr).rsp.ap3_temp; + uint8 bpClock = boardStatus(boardNr).rsp.bp_clock; + LOG_INFO(formatString("UpdStatus:PCB temp:%d",pcbTemp)); LOG_INFO(formatString("UpdStatus:BP temp:%d",bpTemp)); LOG_INFO(formatString("UpdStatus:AP0 temp:%d",ap0Temp)); LOG_INFO(formatString("UpdStatus:AP1 temp:%d",ap1Temp)); LOG_INFO(formatString("UpdStatus:AP2 temp:%d",ap2Temp)); LOG_INFO(formatString("UpdStatus:AP3 temp:%d",ap3Temp)); + LOG_INFO(formatString("UpdStatus:BP clock:%d",bpClock)); sprintf(scopeString,SCOPE_PIC_RackN_SubRackN_BoardN,rackNr,subRackNr,relativeBoardNr); updateFPGAboardProperties(scopeString,timestamp); @@ -1302,15 +1316,11 @@ GCFEvent::TResult RegisterAccessTask::handleUpdStatus(GCFEvent& e, GCFPortInterf updateSYNCStatusProperties(scopeString,syncSample_offset,syncSync_count,syncSlice_count,timestamp); int apNr=0; - uint8 boardRCUstatusStatusX = boardStatus(boardNr).ap0_rcu.statusx; - uint8 boardRCUstatusStatusY = boardStatus(boardNr).ap0_rcu.statusy; - uint8 boardRCUstatusFFI0 = boardStatus(boardNr).ap0_rcu.ffi0; - uint8 boardRCUstatusFFI1 = boardStatus(boardNr).ap0_rcu.ffi1; - uint32 boardRCUstatusNofOverflowX = boardStatus(boardNr).ap0_rcu.nof_overflowx; - uint32 boardRCUstatusNofOverflowY = boardStatus(boardNr).ap0_rcu.nof_overflowy; - LOG_INFO(formatString("BoardRCUStatus ap0:statusX:%d:statusY:%d:ffi0:%d:ffi1:%d:nofOverflowX:%d:nofOverflowY:%d",boardRCUstatusStatusX,boardRCUstatusStatusY,boardRCUstatusFFI0,boardRCUstatusFFI1,boardRCUstatusNofOverflowX,boardRCUstatusNofOverflowY)); - sprintf(scopeString,SCOPE_PIC_RackN_SubRackN_BoardN_APN_BoardRCUStatus,rackNr,subRackNr,relativeBoardNr,apNr); - updateBoardRCUproperties(scopeString,boardRCUstatusFFI0,boardRCUstatusFFI1,timestamp); + uint8 boardRCUstatusStatusX = boardStatus(boardNr).blp0_rcu.pllx; + uint8 boardRCUstatusStatusY = boardStatus(boardNr).blp0_rcu.plly; + uint32 boardRCUstatusNofOverflowX = boardStatus(boardNr).blp0_rcu.nof_overflowx; + uint32 boardRCUstatusNofOverflowY = boardStatus(boardNr).blp0_rcu.nof_overflowy; + LOG_INFO(formatString("BoardRCUStatus ap0:statusX:%d:statusY:%d:nofOverflowX:%d:nofOverflowY:%d",boardRCUstatusStatusX,boardRCUstatusStatusY,boardRCUstatusNofOverflowX,boardRCUstatusNofOverflowY)); int rcuNr=0; sprintf(scopeString,SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN,rackNr,subRackNr,relativeBoardNr,apNr,rcuNr); updateBoardRCUproperties(scopeString,boardRCUstatusStatusX,boardRCUstatusNofOverflowX,timestamp); @@ -1319,15 +1329,11 @@ GCFEvent::TResult RegisterAccessTask::handleUpdStatus(GCFEvent& e, GCFPortInterf updateBoardRCUproperties(scopeString,boardRCUstatusStatusY,boardRCUstatusNofOverflowY,timestamp); apNr++; - boardRCUstatusStatusX = boardStatus(boardNr).ap1_rcu.statusx; - boardRCUstatusStatusY = boardStatus(boardNr).ap1_rcu.statusy; - boardRCUstatusFFI0 = boardStatus(boardNr).ap1_rcu.ffi0; - boardRCUstatusFFI1 = boardStatus(boardNr).ap1_rcu.ffi1; - boardRCUstatusNofOverflowX = boardStatus(boardNr).ap1_rcu.nof_overflowx; - boardRCUstatusNofOverflowY = boardStatus(boardNr).ap1_rcu.nof_overflowy; - LOG_INFO(formatString("BoardRCUStatus ap1:statusX:%d:statusY:%d:ffi0:%d:ffi1:%d:nofOverflowX:%d:nofOverflowY:%d",boardRCUstatusStatusX,boardRCUstatusStatusY,boardRCUstatusFFI0,boardRCUstatusFFI1,boardRCUstatusNofOverflowX,boardRCUstatusNofOverflowY)); - sprintf(scopeString,SCOPE_PIC_RackN_SubRackN_BoardN_APN_BoardRCUStatus,rackNr,subRackNr,relativeBoardNr,apNr); - updateBoardRCUproperties(scopeString,boardRCUstatusFFI0,boardRCUstatusFFI1,timestamp); + boardRCUstatusStatusX = boardStatus(boardNr).blp1_rcu.pllx; + boardRCUstatusStatusY = boardStatus(boardNr).blp1_rcu.plly; + boardRCUstatusNofOverflowX = boardStatus(boardNr).blp1_rcu.nof_overflowx; + boardRCUstatusNofOverflowY = boardStatus(boardNr).blp1_rcu.nof_overflowy; + LOG_INFO(formatString("BoardRCUStatus ap0:statusX:%d:statusY:%d:nofOverflowX:%d:nofOverflowY:%d",boardRCUstatusStatusX,boardRCUstatusStatusY,boardRCUstatusNofOverflowX,boardRCUstatusNofOverflowY)); rcuNr=0; sprintf(scopeString,SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN,rackNr,subRackNr,relativeBoardNr,apNr,rcuNr); updateBoardRCUproperties(scopeString,boardRCUstatusStatusX,boardRCUstatusNofOverflowX,timestamp); @@ -1336,15 +1342,11 @@ GCFEvent::TResult RegisterAccessTask::handleUpdStatus(GCFEvent& e, GCFPortInterf updateBoardRCUproperties(scopeString,boardRCUstatusStatusY,boardRCUstatusNofOverflowY,timestamp); apNr++; - boardRCUstatusStatusX = boardStatus(boardNr).ap2_rcu.statusx; - boardRCUstatusStatusY = boardStatus(boardNr).ap2_rcu.statusy; - boardRCUstatusFFI0 = boardStatus(boardNr).ap2_rcu.ffi0; - boardRCUstatusFFI1 = boardStatus(boardNr).ap2_rcu.ffi1; - boardRCUstatusNofOverflowX = boardStatus(boardNr).ap2_rcu.nof_overflowx; - boardRCUstatusNofOverflowY = boardStatus(boardNr).ap2_rcu.nof_overflowy; - LOG_INFO(formatString("BoardRCUStatus ap2:statusX:%d:statusY:%d:ffi0:%d:ffi1:%d:nofOverflowX:%d:nofOverflowY:%d",boardRCUstatusStatusX,boardRCUstatusStatusY,boardRCUstatusFFI0,boardRCUstatusFFI1,boardRCUstatusNofOverflowX,boardRCUstatusNofOverflowY)); - sprintf(scopeString,SCOPE_PIC_RackN_SubRackN_BoardN_APN_BoardRCUStatus,rackNr,subRackNr,relativeBoardNr,apNr); - updateBoardRCUproperties(scopeString,boardRCUstatusFFI0,boardRCUstatusFFI1,timestamp); + boardRCUstatusStatusX = boardStatus(boardNr).blp2_rcu.pllx; + boardRCUstatusStatusY = boardStatus(boardNr).blp2_rcu.plly; + boardRCUstatusNofOverflowX = boardStatus(boardNr).blp2_rcu.nof_overflowx; + boardRCUstatusNofOverflowY = boardStatus(boardNr).blp2_rcu.nof_overflowy; + LOG_INFO(formatString("BoardRCUStatus ap0:statusX:%d:statusY:%d:nofOverflowX:%d:nofOverflowY:%d",boardRCUstatusStatusX,boardRCUstatusStatusY,boardRCUstatusNofOverflowX,boardRCUstatusNofOverflowY)); rcuNr=0; sprintf(scopeString,SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN,rackNr,subRackNr,relativeBoardNr,apNr,rcuNr); updateBoardRCUproperties(scopeString,boardRCUstatusStatusX,boardRCUstatusNofOverflowX,timestamp); @@ -1353,15 +1355,11 @@ GCFEvent::TResult RegisterAccessTask::handleUpdStatus(GCFEvent& e, GCFPortInterf updateBoardRCUproperties(scopeString,boardRCUstatusStatusY,boardRCUstatusNofOverflowY,timestamp); apNr++; - boardRCUstatusStatusX = boardStatus(boardNr).ap3_rcu.statusx; - boardRCUstatusStatusY = boardStatus(boardNr).ap3_rcu.statusy; - boardRCUstatusFFI0 = boardStatus(boardNr).ap3_rcu.ffi0; - boardRCUstatusFFI1 = boardStatus(boardNr).ap3_rcu.ffi1; - boardRCUstatusNofOverflowX = boardStatus(boardNr).ap3_rcu.nof_overflowx; - boardRCUstatusNofOverflowY = boardStatus(boardNr).ap3_rcu.nof_overflowy; - LOG_INFO(formatString("BoardRCUStatus ap3:statusX:%d:statusY:%d:ffi0:%d:ffi1:%d:nofOverflowX:%d:nofOverflowY:%d",boardRCUstatusStatusX,boardRCUstatusStatusY,boardRCUstatusFFI0,boardRCUstatusFFI1,boardRCUstatusNofOverflowX,boardRCUstatusNofOverflowY)); - sprintf(scopeString,SCOPE_PIC_RackN_SubRackN_BoardN_APN_BoardRCUStatus,rackNr,subRackNr,relativeBoardNr,apNr); - updateBoardRCUproperties(scopeString,boardRCUstatusFFI0,boardRCUstatusFFI1,timestamp); + boardRCUstatusStatusX = boardStatus(boardNr).blp3_rcu.pllx; + boardRCUstatusStatusY = boardStatus(boardNr).blp3_rcu.plly; + boardRCUstatusNofOverflowX = boardStatus(boardNr).blp3_rcu.nof_overflowx; + boardRCUstatusNofOverflowY = boardStatus(boardNr).blp3_rcu.nof_overflowy; + LOG_INFO(formatString("BoardRCUStatus ap0:statusX:%d:statusY:%d:nofOverflowX:%d:nofOverflowY:%d",boardRCUstatusStatusX,boardRCUstatusStatusY,boardRCUstatusNofOverflowX,boardRCUstatusNofOverflowY)); rcuNr=0; sprintf(scopeString,SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN,rackNr,subRackNr,relativeBoardNr,apNr,rcuNr); updateBoardRCUproperties(scopeString,boardRCUstatusStatusX,boardRCUstatusNofOverflowX,timestamp); @@ -1369,19 +1367,6 @@ GCFEvent::TResult RegisterAccessTask::handleUpdStatus(GCFEvent& e, GCFPortInterf sprintf(scopeString,SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN,rackNr,subRackNr,relativeBoardNr,apNr,rcuNr); updateBoardRCUproperties(scopeString,boardRCUstatusStatusY,boardRCUstatusNofOverflowY,timestamp); } - - for(int rcuNr=rcuStatus.lbound(blitz::firstDim); rcuNr <= rcuStatus.ubound(blitz::firstDim); ++rcuNr) - { - uint8 rcuStatusBits = rcuStatus(rcuNr).status; - LOG_INFO(formatString("UpdStatus:RCU[%d] status:0x%x",rcuNr,rcuStatusBits)); - - int rackRelativeNr,subRackRelativeNr,boardRelativeNr,apRelativeNr,rcuRelativeNr; - getRCURelativeNumbers(rcuNr,rackRelativeNr,subRackRelativeNr,boardRelativeNr,apRelativeNr,rcuRelativeNr); - - sprintf(scopeString,SCOPE_PIC_RackN_SubRackN_BoardN_APN_RCUN,rackRelativeNr,subRackRelativeNr,boardRelativeNr,apRelativeNr,rcuRelativeNr); - LOG_DEBUG(formatString("RCU[%d]= %s",rcuNr,scopeString)); - updateRCUproperties(scopeString,rcuStatusBits,timestamp); - } } return status; @@ -1426,10 +1411,9 @@ GCFEvent::TResult RegisterAccessTask::handleUpdXcStats(GCFEvent& e, GCFPortInter } void RegisterAccessTask::updateBoardProperties(string scope, - uint8 voltage_15, - uint8 voltage_33, - uint8 ffi0, - uint8 ffi1, + uint8 voltage_1_2, + uint8 voltage_2_5, + uint8 voltage_3_3, double timestamp) { LOG_TRACE_LIFETIME(TRACE_LEVEL_FLOW,getName().c_str()); @@ -1441,20 +1425,17 @@ void RegisterAccessTask::updateBoardProperties(string scope, } else { - double v15 = static_cast<double>(voltage_15) * (2.5/192.0); - GCFPVDouble pvDouble15(v15); - it->second->setValueTimed(string(PROPNAME_VOLTAGE15),pvDouble15,timestamp); + double v12 = static_cast<double>(voltage_1_2) * (2.5/192.0); + GCFPVDouble pvDouble12(v12); + it->second->setValueTimed(string(PROPNAME_VOLTAGE12),pvDouble12,timestamp); + + double v25 = static_cast<double>(voltage_2_5) * (3.3/192.0); + GCFPVDouble pvDouble25(v25); + it->second->setValueTimed(string(PROPNAME_VOLTAGE25),pvDouble25,timestamp); - double v33 = static_cast<double>(voltage_33) * (5.0/192.0); + double v33 = static_cast<double>(voltage_3_3) * (5.0/192.0); GCFPVDouble pvDouble33(v33); it->second->setValueTimed(string(PROPNAME_VOLTAGE33),pvDouble33, timestamp); - - GCFPVUnsigned pvTemp; - pvTemp.setValue(ffi0); - it->second->setValueTimed(string(PROPNAME_FFI0),pvTemp, timestamp); - - pvTemp.setValue(ffi1); - it->second->setValueTimed(string(PROPNAME_FFI1),pvTemp, timestamp); } } @@ -2215,9 +2196,11 @@ void RegisterAccessTask::handleRCUSettings(string propName, const int bitnr, con setrcu.rcumask.set(rcu); setrcu.settings().resize(1); - setrcu.settings()(0).value = rcucontrol; - - m_RSPclient.send(setrcu); + /* setrcu.settings()(0).value = rcucontrol; + * + * m_RSPclient.send(setrcu); + */ + LOG_FATAL("TODO: RCU Settings"); } else { @@ -2770,7 +2753,7 @@ int RegisterAccessTask::_isDefect(char* scopeString) } else { - if(pvStatus->getValue()==APLCommon::RS_DEFECT) + if(pvStatus->getValue()==-3/*APLCommon::RS_DEFECT*/) { isDefect=1; } diff --git a/MAC/APL/PIC/_RegisterAccess/src/ARARegisterAccessTask.h b/MAC/APL/PIC/_RegisterAccess/src/ARARegisterAccessTask.h index c5ccbd9399c..2a9ac9d82ab 100644 --- a/MAC/APL/PIC/_RegisterAccess/src/ARARegisterAccessTask.h +++ b/MAC/APL/PIC/_RegisterAccess/src/ARARegisterAccessTask.h @@ -143,10 +143,9 @@ namespace ARA GCF::PAL::GCFMyPropertySet::TDefaultUse defaultUse = GCF::PAL::GCFMyPropertySet::USE_MY_DEFAULTS); void updateBoardProperties(string scope, - uint8 voltage_15, - uint8 voltage_33, - uint8 ffi0, - uint8 ffi1, + uint8 voltage_1_2, + uint8 voltage_2_5, + uint8 voltage_3_3, double timestamp); /** * update eth properties based on status bits @@ -249,6 +248,7 @@ namespace ARA int m_n_aps_per_board; int m_n_rcus_per_ap; int m_n_rcus; + int m_n_rspboards; int m_status_update_interval; int m_stats_update_interval; bool m_centralized_stats; diff --git a/MAC/APL/PIC/_RegisterAccess/test/ARATestDriverTask.cc b/MAC/APL/PIC/_RegisterAccess/test/ARATestDriverTask.cc index ff96d6c47d9..f816563fb79 100644 --- a/MAC/APL/PIC/_RegisterAccess/test/ARATestDriverTask.cc +++ b/MAC/APL/PIC/_RegisterAccess/test/ARATestDriverTask.cc @@ -23,6 +23,7 @@ #undef VERSION #include <lofar_config.h> #include <Common/LofarLogger.h> +#include <Common/LofarLocators.h> #include <APL/RSP_Protocol/RSP_Protocol.ph> @@ -36,9 +37,10 @@ #include <Common/lofar_sstream.h> #include <time.h> -#include <GCF/ParameterSet.h> +#include <APS/ParameterSet.h> #include <GCF/PAL/GCF_PVSSInfo.h> +using namespace LOFAR::ACC::APS; using namespace LOFAR::GCF::Common; using namespace LOFAR::GCF::TM; using namespace LOFAR::GCF::PAL; @@ -85,13 +87,22 @@ ARATestDriverTask::ARATestDriverTask() : registerProtocol(RSP_PROTOCOL, RSP_PROTOCOL_signalnames); m_answer.setTask(this); - ParameterSet::instance()->adoptFile("RegisterAccess.conf"); + try + { + ConfigLocator cl; + globalParameterSet()->adoptFile(cl.locate("RegisterAccess.conf")); + } + catch (Exception e) + { + LOG_ERROR_STR("Failed to load configuration files: " << e.text()); + exit(EXIT_FAILURE); + } - n_racks = ParameterSet::instance()->getInt(PARAM_N_RACKS); - n_subracks_per_rack = ParameterSet::instance()->getInt(PARAM_N_SUBRACKS_PER_RACK); - n_boards_per_subrack = ParameterSet::instance()->getInt(PARAM_N_BOARDS_PER_SUBRACK); - n_aps_per_board = ParameterSet::instance()->getInt(PARAM_N_APS_PER_BOARD); - n_rcus_per_ap = ParameterSet::instance()->getInt(PARAM_N_RCUS_PER_AP); + n_racks = globalParameterSet()->getInt32(PARAM_N_RACKS); + n_subracks_per_rack = globalParameterSet()->getInt32(PARAM_N_SUBRACKS_PER_RACK); + n_boards_per_subrack = globalParameterSet()->getInt32(PARAM_N_BOARDS_PER_SUBRACK); + n_aps_per_board = globalParameterSet()->getInt32(PARAM_N_APS_PER_BOARD); + n_rcus_per_ap = globalParameterSet()->getInt32(PARAM_N_RCUS_PER_AP); n_rcus = n_rcus_per_ap* n_aps_per_board* n_boards_per_subrack* @@ -99,7 +110,6 @@ ARATestDriverTask::ARATestDriverTask() : n_racks; m_systemStatus.board().resize(n_boards_per_subrack); - m_systemStatus.rcu().resize(n_rcus); EPA_Protocol::BoardStatus boardStatus; memset(&boardStatus,0,sizeof(boardStatus)); @@ -107,7 +117,6 @@ ARATestDriverTask::ARATestDriverTask() : EPA_Protocol::RCUStatus rcuStatus; memset(&rcuStatus,0,sizeof(rcuStatus)); - m_systemStatus.rcu()(blitz::Range::all()) = rcuStatus; m_stats().resize(n_rcus,MEPHeader::N_BEAMLETS); m_xcstats().resize(n_pols,n_pols,n_racks*n_subracks_per_rack*n_boards_per_subrack*n_aps_per_board,n_racks*n_subracks_per_rack*n_boards_per_subrack*n_aps_per_board); @@ -573,8 +582,6 @@ void ARATestDriverTask::updateAPstatus(string& propName,const GCFPValue* pvalue) LOG_INFO(formatString("updateAPstatus hier?? %d (rack=%d,subrack=%d,board=%d,ap=%d)", ++testI,rack,subrack,board,ap)); - EPA_Protocol::FPGAStatus fpgaStatus = m_systemStatus.board()(board-1).fpga; - // layout fpga status: // 15..9 8 7........0 // ----- alive temperature @@ -585,13 +592,13 @@ void ARATestDriverTask::updateAPstatus(string& propName,const GCFPValue* pvalue) else if(propName.find(string(PROPNAME_TEMPERATURE),0) != string::npos) { if(ap==1) - m_systemStatus.board()(board-1).fpga.ap0_temp = (uint8)(pvDouble.getValue()*100); + m_systemStatus.board()(board-1).rsp.ap0_temp = (uint8)(pvDouble.getValue()*100); else if(ap==2) - m_systemStatus.board()(board-1).fpga.ap1_temp = (uint8)(pvDouble.getValue()*100); + m_systemStatus.board()(board-1).rsp.ap1_temp = (uint8)(pvDouble.getValue()*100); else if(ap==3) - m_systemStatus.board()(board-1).fpga.ap2_temp = (uint8)(pvDouble.getValue()*100); + m_systemStatus.board()(board-1).rsp.ap2_temp = (uint8)(pvDouble.getValue()*100); else - m_systemStatus.board()(board-1).fpga.ap3_temp = (uint8)(pvDouble.getValue()*100); + m_systemStatus.board()(board-1).rsp.ap3_temp = (uint8)(pvDouble.getValue()*100); } if(propName.find(string(PROPNAME_VERSION),0) != string::npos) { @@ -615,8 +622,6 @@ void ARATestDriverTask::updateBPstatus(string& propName,const GCFPValue* pvalue) // int subrack = hardwareIndexes[1]; int board = hardwareIndexes[2]; - EPA_Protocol::FPGAStatus fpgaStatus = m_systemStatus.board()(board-1).fpga; - // layout fpga status: // 15..9 8 7........0 // ----- alive temperature @@ -626,7 +631,7 @@ void ARATestDriverTask::updateBPstatus(string& propName,const GCFPValue* pvalue) } else if(propName.find(string(PROPNAME_TEMPERATURE),0) != string::npos) { - m_systemStatus.board()(board-1).fpga.bp_temp = (uint8)(pvDouble.getValue()*100); + m_systemStatus.board()(board-1).rsp.bp_temp = (uint8)(pvDouble.getValue()*100); } if(propName.find(string(PROPNAME_VERSION),0) != string::npos) { @@ -634,10 +639,11 @@ void ARATestDriverTask::updateBPstatus(string& propName,const GCFPValue* pvalue) } } -void ARATestDriverTask::updateRCUstatus(string& propName,const GCFPValue* pvalue) +void ARATestDriverTask::updateRCUstatus(string& propName,const GCFPValue* /*pvalue*/) { LOG_INFO(formatString("updateRCUstatus %s", propName.c_str())); +/* GCFPVBool pvBool; GCFPVUnsigned pvUnsigned; pvBool.copy(*pvalue); @@ -732,6 +738,7 @@ void ARATestDriverTask::updateRCUstatus(string& propName,const GCFPValue* pvalue m_systemStatus.rcu()(rcuNumber-1).status = tempStatus; } } +*/ } void ARATestDriverTask::sendToAll(GCFEvent& event) @@ -752,7 +759,6 @@ void ARATestDriverTask::updateSystemStatus() updStatusEvent.status=SUCCESS; updStatusEvent.handle=1; // ignore updStatusEvent.sysstatus.board().reference(m_systemStatus.board().copy()); - updStatusEvent.sysstatus.rcu().reference(m_systemStatus.rcu().copy()); sendToAll(updStatusEvent); } @@ -971,16 +977,12 @@ GCFEvent::TResult ARATestDriverTask::initial(GCFEvent& event, GCFPortInterface& ack.status = SUCCESS; ack.sysstatus.board().resize(1); - ack.sysstatus.rcu().resize(8); BoardStatus boardinit; - RCUStatus rcuinit; memset(&boardinit, 0, sizeof(BoardStatus)); - memset(&rcuinit, 0, sizeof(RCUStatus)); ack.sysstatus.board() = boardinit; - ack.sysstatus.rcu() = rcuinit; port.send(ack); break; @@ -1127,18 +1129,17 @@ GCFEvent::TResult ARATestDriverTask::initial(GCFEvent& event, GCFPortInterface& RSPGetversionEvent getversion(event); RSP_Protocol::Versions versions; - versions.rsp().resize(n_racks*n_subracks_per_rack*n_boards_per_subrack); versions.bp().resize(n_racks*n_subracks_per_rack*n_boards_per_subrack); versions.ap().resize(n_racks*n_subracks_per_rack*n_boards_per_subrack*n_aps_per_board); for(int board=0;board<n_racks*n_subracks_per_rack*n_boards_per_subrack;board++) { - versions.rsp()(board) = (board+1); - LOG_INFO(formatString("board[%d].version = 0x%x",board,versions.rsp()(board))); - versions.bp()(board) = (board+1)*8; + versions.bp()(board).fpga_min = (board+1)*8; + versions.bp()(board).fpga_maj = (board+1)*8; LOG_INFO(formatString("bp[%d].version = 0x%x",board,versions.bp()(board))); for(int ap=0;ap<EPA_Protocol::N_AP; ap++) { - versions.ap()(board * EPA_Protocol::N_AP + ap) = ((board+1)<<4)+ap; + versions.ap()(board * EPA_Protocol::N_AP + ap).fpga_min = ((board+1)<<4)+ap; + versions.ap()(board * EPA_Protocol::N_AP + ap).fpga_maj = ((board+1)<<4)+ap; LOG_INFO(formatString("ap[%d][%d].version = 0x%x",board,ap,versions.ap()(board * EPA_Protocol::N_AP + ap))); } } @@ -1146,7 +1147,6 @@ GCFEvent::TResult ARATestDriverTask::initial(GCFEvent& event, GCFPortInterface& RSPGetversionackEvent ack; ack.timestamp.setNow(600.0); ack.status = SUCCESS; - ack.versions.rsp().reference(versions.rsp().copy()); ack.versions.bp().reference(versions.bp().copy()); ack.versions.ap().reference(versions.ap().copy()); @@ -1159,11 +1159,12 @@ GCFEvent::TResult ARATestDriverTask::initial(GCFEvent& event, GCFPortInterface& RSPGetconfigackEvent ack; ack.n_rcus=n_rcus; ack.n_rspboards=n_boards_per_subrack*n_subracks_per_rack*n_racks; - ack.n_tdboards=1; + ack.max_rspboards=1; port.send(ack); break; } +/* case RSP_SETCLOCKS: { RSPSetclocksackEvent ack; @@ -1172,6 +1173,7 @@ GCFEvent::TResult ARATestDriverTask::initial(GCFEvent& event, GCFPortInterface& port.send(ack); break; } +*/ case RSP_SETRCU: { diff --git a/MAC/APL/PIC/_RegisterAccess/test/ARATestTask.cc b/MAC/APL/PIC/_RegisterAccess/test/ARATestTask.cc index d03d3eec6a0..9c227c0dcfd 100644 --- a/MAC/APL/PIC/_RegisterAccess/test/ARATestTask.cc +++ b/MAC/APL/PIC/_RegisterAccess/test/ARATestTask.cc @@ -712,19 +712,10 @@ GCFEvent::TResult ARATestTask::test8(GCFEvent& event, GCFPortInterface& /*p*/) EPA_Protocol::BoardStatus boardStatus; memset(&boardStatus,0,sizeof(boardStatus)); - boardStatus.fpga.ap0_temp = 2850; - boardStatus.fpga.ap1_temp = 2902; - boardStatus.fpga.ap2_temp = 2953; - boardStatus.fpga.ap3_temp = 3005; - - EPA_Protocol::RCUStatus rcuStatus; - std::bitset<8> rcuBitStatus; - rcuBitStatus[7] = 1; // overflow - rcuStatus.status = rcuBitStatus.to_ulong(); - updStatusEvent.sysstatus.board().resize(1); - updStatusEvent.sysstatus.board()(0) = boardStatus; - updStatusEvent.sysstatus.rcu().resize(1); - updStatusEvent.sysstatus.rcu()(0) = rcuStatus; + boardStatus.rsp.ap0_temp = 2850; + boardStatus.rsp.ap1_temp = 2902; + boardStatus.rsp.ap2_temp = 2953; + boardStatus.rsp.ap3_temp = 3005; m_RSPserver.send(updStatusEvent); @@ -788,19 +779,10 @@ GCFEvent::TResult ARATestTask::test9(GCFEvent& event, GCFPortInterface& /*p*/) EPA_Protocol::BoardStatus boardStatus; memset(&boardStatus,0,sizeof(boardStatus)); - boardStatus.fpga.ap0_temp = 28; - boardStatus.fpga.ap1_temp = 29; - boardStatus.fpga.ap2_temp = 30; - boardStatus.fpga.ap3_temp = 31; - - EPA_Protocol::RCUStatus rcuStatus; - std::bitset<8> rcuBitStatus; - rcuBitStatus[7] = 0; // no overflow - rcuStatus.status = rcuBitStatus.to_ulong(); - updStatusEvent.sysstatus.board().resize(1); - updStatusEvent.sysstatus.board()(0) = boardStatus; - updStatusEvent.sysstatus.rcu().resize(1); - updStatusEvent.sysstatus.rcu()(0) = rcuStatus; + boardStatus.rsp.ap0_temp = 28; + boardStatus.rsp.ap1_temp = 29; + boardStatus.rsp.ap2_temp = 30; + boardStatus.rsp.ap3_temp = 31; m_RSPserver.send(updStatusEvent); @@ -869,24 +851,10 @@ GCFEvent::TResult ARATestTask::test10(GCFEvent& event, GCFPortInterface& /*p*/) EPA_Protocol::BoardStatus boardStatus; memset(&boardStatus,0,sizeof(boardStatus)); - boardStatus.fpga.ap0_temp = 28; - boardStatus.fpga.ap1_temp = 29; - boardStatus.fpga.ap2_temp = 30; - boardStatus.fpga.ap3_temp = 31; - - EPA_Protocol::RCUStatus rcuStatus; - std::bitset<8> rcuBitStatus; - rcuBitStatus[7] = 1; // overflow - rcuStatus.status = rcuBitStatus.to_ulong(); - updStatusEvent.sysstatus.board().resize(1); - updStatusEvent.sysstatus.board()(0) = boardStatus; - updStatusEvent.sysstatus.rcu().resize(6); - updStatusEvent.sysstatus.rcu()(0) = rcuStatus; - updStatusEvent.sysstatus.rcu()(1) = rcuStatus; - updStatusEvent.sysstatus.rcu()(2) = rcuStatus; - updStatusEvent.sysstatus.rcu()(3) = rcuStatus; - updStatusEvent.sysstatus.rcu()(4) = rcuStatus; - updStatusEvent.sysstatus.rcu()(5) = rcuStatus; + boardStatus.rsp.ap0_temp = 28; + boardStatus.rsp.ap1_temp = 29; + boardStatus.rsp.ap2_temp = 30; + boardStatus.rsp.ap3_temp = 31; m_RSPserver.send(updStatusEvent); -- GitLab