Commit d8603021 authored by LorenzoMonti's avatar LorenzoMonti
Browse files

Qband Receiver working component (in beta). Add FeedValues struct in...

Qband Receiver working component (in beta). Add FeedValues struct in ReceiverControl.h and add a new function (feedValues()) in order to read data correctly (LNA with a single stage)
parent 535feac2
Loading
Loading
Loading
Loading
+29 −1
Original line number Original line Diff line number Diff line
@@ -138,6 +138,16 @@ public:
        std::vector<double> right_channel;
        std::vector<double> right_channel;
    };
    };


    /**
     * The left_channel member stores all the left channel values of a specific
     * fet quantity (VD, ID or VG), and the right one stores the values for
     * the right channel.
     */
    struct FeedValues {
        std::vector<double> left_channel;
        std::vector<double> right_channel;
    };



    enum FetValue {DRAIN_VOLTAGE, DRAIN_CURRENT, GATE_VOLTAGE};
    enum FetValue {DRAIN_VOLTAGE, DRAIN_CURRENT, GATE_VOLTAGE};


@@ -770,6 +780,24 @@ public:
             double (*converter)(double voltage)=NULL
             double (*converter)(double voltage)=NULL
    ) throw (ReceiverControlEx);
    ) throw (ReceiverControlEx);


    /** 
     *
     *  @param quantity a FetValue: DRAIN_VOLTAGE, DRAIN_CURRENT or GATE_CURRENT 
     *  @param feed_number the feed number (from 1 to 5) in a single pcb (Qband style)
     *  @param converter pointer to the function that performs the conversion from
     *  voltage to the right unit or just with a scale factor; default value is NULL, and in this 
     *  case the value returned is without conversion.
     *  @return the StageValues for a given fet ``quantity`` and ``feed_number``. The StageValues
     *  is a struct of two members std::vector<double>, one member for the left channel and one for 
     *  the right one. That members contain the related quantities of all the feeds.
     *  @throw ReceiverControlEx
     */
     FeedValues feedValues(
             FetValue quantity, 
             unsigned short feed_number, 
             double (*converter)(double voltage)=NULL
    ) throw (ReceiverControlEx);
    
    
    
    /** Turn the LNAs of the left channels ON
    /** Turn the LNAs of the left channels ON
     *  @param data_type the type of the data; the default type is 1 bit
     *  @param data_type the type of the data; the default type is 1 bit
+242 −3
Original line number Original line Diff line number Diff line
@@ -1149,6 +1149,9 @@ ReceiverControl::FetValues ReceiverControl::fetValues(
    
    
    FetValues values;
    FetValues values;
	 
	 
	 cout << "feed number " << feed_number << endl;
	 cout << "m_number_of_feeds " << m_number_of_feeds << endl;
	 cout << "stage_number " << stage_number << endl;
    if(feed_number >= m_number_of_feeds)
    if(feed_number >= m_number_of_feeds)
        throw ReceiverControlEx("ReceiverControl error: invalid feed number.");
        throw ReceiverControlEx("ReceiverControl error: invalid feed number.");


@@ -1373,6 +1376,10 @@ ReceiverControl::StageValues ReceiverControl::stageValues(
    std::string vg_selector;               // A03: it allows to select the value requested for a given stadium
    std::string vg_selector;               // A03: it allows to select the value requested for a given stadium
    std::string quantity_selector;         // A03: it allows to select the value requested for a given stadium
    std::string quantity_selector;         // A03: it allows to select the value requested for a given stadium
    
    
    cout << "m_number_of_feeds " << m_number_of_feeds << endl;
    //cout << "stage_number " << stage_number << endl;
    //cout << "quantity" << quantity << endl;
    
    if(m_number_of_feeds == 1)
    if(m_number_of_feeds == 1)
        column_selectors.push_back("0001");
        column_selectors.push_back("0001");
    else if(m_number_of_feeds <= 8)  {
    else if(m_number_of_feeds <= 8)  {
@@ -1391,6 +1398,10 @@ ReceiverControl::StageValues ReceiverControl::stageValues(
        column_selectors.push_back("0100");
        column_selectors.push_back("0100");
    }
    }
    
    
    for (std::size_t x = 0; x < column_selectors.size(); x++){
	   cout << "column_sel " << column_selectors[x] << endl;	
	 }
	
    switch(stage_number) {
    switch(stage_number) {
        case 1:
        case 1:
            vd_selector = "0000"; 
            vd_selector = "0000"; 
@@ -1421,6 +1432,11 @@ ReceiverControl::StageValues ReceiverControl::stageValues(
            throw ReceiverControlEx("ReceiverControl error: invalid stage number.");
            throw ReceiverControlEx("ReceiverControl error: invalid stage number.");
    }
    }
    
    
    cout << "vd_selector " << vd_selector << endl;
    cout << "id_selector " << id_selector << endl;
    cout << "vg_selector " << vg_selector << endl;
    cout << "quantity " << quantity << endl;
    
    switch(quantity) {
    switch(quantity) {
        case DRAIN_VOLTAGE:
        case DRAIN_VOLTAGE:
            quantity_selector = vd_selector;
            quantity_selector = vd_selector;
@@ -1469,7 +1485,7 @@ ReceiverControl::StageValues ReceiverControl::stageValues(
                    MCB_PORT_NUMBER_00_07   // Port Number from 08 to 15
                    MCB_PORT_NUMBER_00_07   // Port Number from 08 to 15
            );
            );
            pthread_mutex_unlock(&m_lna_mutex); 
            pthread_mutex_unlock(&m_lna_mutex); 

				//cout << "parameters.size() " << parameters.size() << endl;
            if(parameters.size() != AD24_LEN * AD24_TYPE_LEN)
            if(parameters.size() != AD24_LEN * AD24_TYPE_LEN)
                throw MicroControllerBoardEx("Error: wrong number of parameters received.");
                throw MicroControllerBoardEx("Error: wrong number of parameters received.");


@@ -1521,7 +1537,14 @@ ReceiverControl::StageValues ReceiverControl::stageValues(
                rvalues.push_back(rdvalues[offset+idx+4]); // Add the item of the fourth column
                rvalues.push_back(rdvalues[offset+idx+4]); // Add the item of the fourth column
            }
            }
        }
        }
    cout << "lvalues.size() " << lvalues.size() << endl;
	 cout << "rvalues.size() " << rvalues.size() << endl;
	 cout << "m_number_of_feeds " << m_number_of_feeds << endl;
    
    
    for(std::size_t i = 0; i < lvalues.size(); i++)
    	cout << i << " lvalues " << lvalues[i] << endl;
    for(std::size_t j = 0; j < rvalues.size(); j++)
    	cout  << j << "rvalues " << rvalues[j] << endl;


    if(lvalues.size() < m_number_of_feeds || rvalues.size() < m_number_of_feeds)
    if(lvalues.size() < m_number_of_feeds || rvalues.size() < m_number_of_feeds)
        throw ReceiverControlEx("Error: the vector size doesn't match the number of feeds.");
        throw ReceiverControlEx("Error: the vector size doesn't match the number of feeds.");
@@ -1541,6 +1564,222 @@ ReceiverControl::StageValues ReceiverControl::stageValues(
    return values;
    return values;
}
}


ReceiverControl::FeedValues ReceiverControl::feedValues(
        FetValue quantity, 
        unsigned short feed_number,
        double (*converter)(double voltage)
        ) throw (ReceiverControlEx)
{
	 IRA::CString quant;
    // Each item is a EN03 value: the signal that addresses the column multiplexing of AD24
    std::vector<std::string> column_selectors;  
    std::string vd_selector;               // A03: it allows to select the value requested for a given stadium
    std::string id_selector;               // A03: it allows to select the value requested for a given stadium
    std::string vg_selector;               // A03: it allows to select the value requested for a given stadium
    std::string quantity_selector;         // A03: it allows to select the value requested for a given stadium
    
    //cout << "m_number_of_feeds " << m_number_of_feeds << endl;
    //cout << "stage_number " << stage_number << endl;
    //cout << "quantity" << quantity << endl;
    
	 if(m_number_of_feeds <= 10)
        column_selectors.push_back("0001");
    else if(m_number_of_feeds <= 40)  {
        column_selectors.push_back("0001");
        column_selectors.push_back("0010");
    }
    else if(m_number_of_feeds <= 50) {
        column_selectors.push_back("0001");
        column_selectors.push_back("0010");
        column_selectors.push_back("0011");
    }
    else if(m_number_of_feeds > 50) {
        column_selectors.push_back("0001");
        column_selectors.push_back("0010");
        column_selectors.push_back("0011");
        column_selectors.push_back("0100");
    }
    
   /* for (std::size_t x = 0; x < column_selectors.size(); x++){
	   cout << "column_sel " << column_selectors[x] << endl;	
	 }*/
	
    switch(feed_number) {
        case 1:
            vd_selector = "0000"; 
            id_selector = "0001";
            vg_selector = "0010";
            break;
        case 2:
            vd_selector = "0011";
            id_selector = "0100";
            vg_selector = "0101";
            break;
        case 3:
            vd_selector = "0110";
            id_selector = "0111";
            vg_selector = "1000";
            break;
        case 4:
            vd_selector = "1001";
            id_selector = "1010";
            vg_selector = "1011";
            break;
        case 5:
            vd_selector = "1100";
            id_selector = "1101";
            vg_selector = "1110";
            break;
        default:
            throw ReceiverControlEx("ReceiverControl error: invalid stage number.");
    }
    
    /*cout << "vd_selector " << vd_selector << endl;
    cout << "id_selector " << id_selector << endl;
    cout << "vg_selector " << vg_selector << endl;
    cout << "quantity " << quantity << endl;*/
    
    switch(quantity) {
        case DRAIN_VOLTAGE:
            quantity_selector = vd_selector;
            quant="VD";
            break;
        case DRAIN_CURRENT:
            quantity_selector = id_selector;
            quant="ID";
            break;
        case GATE_VOLTAGE:
        		quant="VG";
            quantity_selector = vg_selector;
            break;
        default:
            throw ReceiverControlEx("ReceiverControl::stageValues(): the quantity requested does not exist.");
    }

    // Left channel values, right channel values, left channel disorderly values, right channel disorderly values
    std::vector<double> lvalues, rvalues, ldvalues, rdvalues;
    std::vector<BYTE> parameters;

    try {
        pthread_mutex_lock(&m_lna_mutex); 
        for(std::vector<std::string>::iterator iter=column_selectors.begin(); iter!=column_selectors.end(); iter++) {
            std::bitset<8> value(*iter + quantity_selector);

            makeRequest(
                    m_lna_board_ptr,                           // Pointer to the LNA board socket
                    MCB_CMD_SET_DATA,                          // Command to send
                    4,                                         // Number of parameters
                    MCB_CMD_DATA_TYPE_U08,                     // Data type: unsigned 08 bit
                    MCB_PORT_TYPE_DIO,                         // Port type: Digital IO
                    MCB_PORT_NUMBER_00_07,                     // Port Number from 00 to 07
                    static_cast<BYTE>(value.to_ulong())        // Value to set                   
            );

            usleep(m_guard_time);

            parameters = makeRequest(
                    m_lna_board_ptr,        // Pointer to the LNA board
                    MCB_CMD_GET_DATA,       // Command to send
                    3,                      // Number of parameters
                    MCB_CMD_DATA_TYPE_F32,  // Data type: 32 bit floating point
                    MCB_PORT_TYPE_AD24,     // Port type: AD24
                    MCB_PORT_NUMBER_00_07   // Port Number from 08 to 15
            );
            pthread_mutex_unlock(&m_lna_mutex); 
				//cout << "parameters.size() " << parameters.size() << endl;
            if(parameters.size() != AD24_LEN * AD24_TYPE_LEN)
                throw MicroControllerBoardEx("Error: wrong number of parameters received.");

          for(std::vector<BYTE>::size_type idx=0; idx<AD24_LEN; idx+=2) {
                ldvalues.push_back(get_value(parameters, idx));    // Push the left value channel
                rdvalues.push_back(get_value(parameters, idx+1));  // Push the right value channel
            }

            if(ldvalues.empty() || rdvalues.empty())
                throw MicroControllerBoardEx("Error: no data received.");
        }
        pthread_mutex_unlock(&m_lna_mutex); 
    }
    catch(MicroControllerBoardEx& ex) {
        pthread_mutex_unlock(&m_lna_mutex); 
        std::string error_msg = "ReceiverControl: error getting LNA values.\n";
        throw ReceiverControlEx(error_msg + ex.what());
    }	 
	 
    if(m_number_of_feeds <= 10) { // just one column (BRD Selection 0 and 2)
    	  cout << "feeds <=10" << endl;
        cout << "ldvalues.size()" << ldvalues.size() << endl;
        cout << "rdvalues.size()" << rdvalues.size() << endl;
        if(ldvalues.size() != 4 || rdvalues.size() != 4)  // Just five feeds means just one column 
            throw ReceiverControlEx("Error: mismatch between number of feeds and number of parameters");
        lvalues.push_back(ldvalues.front());
        rvalues.push_back(rdvalues.front());
    }
    else // In this case we are sure we must add at least the first 8 items (2 columns)
        for(std::vector<BYTE>::size_type idx=0; idx<=3; idx++) {
            lvalues.push_back(ldvalues[idx]);   // Add the item of the first column
            lvalues.push_back(ldvalues[idx+4]); // Add the item of the second column
            rvalues.push_back(rdvalues[idx]);   // Add the item of the first column
            rvalues.push_back(rdvalues[idx+4]); // Add the item of the second column
        }

    if(m_number_of_feeds >= 41 && m_number_of_feeds <= 50) { // third column if we have from 41 to 50 feeds
        cout << "feeds >=41 to <=50" << endl;
        cout << "ldvalues.size()" << ldvalues.size() << endl;
        cout << "rdvalues.size()" << rdvalues.size() << endl;
        if(ldvalues.size() != 12 || rdvalues.size() != 12)  // Nine feeds means three columns
            throw ReceiverControlEx("Error: mismatch between number of feeds and number of parameters");
        lvalues.push_back(ldvalues[8]);
        rvalues.push_back(rdvalues[8]);
    }
    else 
        if(ldvalues.size() > 50) {
        	   cout << "feeds > 50" << endl;
            cout << "ldvalues.size()" << ldvalues.size() << endl;
            cout << "rdvalues.size()" << rdvalues.size() << endl;
            if(ldvalues.size() != 16 || rdvalues.size() != 16)  // More than nine feeds means four columns
                throw ReceiverControlEx("Error: mismatch between number of feeds and number of parameters");
            std::vector<BYTE>::size_type offset=8;
            for(std::vector<BYTE>::size_type idx=0; idx<=3; idx++) {
                lvalues.push_back(ldvalues[offset+idx]);   // Add the item of the third column
                lvalues.push_back(ldvalues[offset+idx+4]); // Add the item of the fourth column
                rvalues.push_back(rdvalues[offset+idx]);   // Add the item of the third column
                rvalues.push_back(rdvalues[offset+idx+4]); // Add the item of the fourth column
            }
        }
    
	     
    cout << "lvalues.size() " << lvalues.size() << endl;
	 cout << "rvalues.size() " << rvalues.size() << endl;
	 cout << "m_number_of_feeds " << m_number_of_feeds << endl;
    
    for(std::size_t i = 0; i < lvalues.size(); i++)
    	cout << i << " lvalues " << lvalues[i] << endl;
    for(std::size_t j = 0; j < rvalues.size(); j++)
    	cout  << j << "rvalues " << rvalues[j] << endl;
    /*
    if(lvalues.size() < m_number_of_feeds || rvalues.size() < m_number_of_feeds)
        throw ReceiverControlEx("Error: the vector size doesn't match the number of feeds.");
	*/
    // Add the first "number_of_feeds" converted items of lvalues and rvalues
    FeedValues values;
    try {
        for(size_t idx=0; idx<m_number_of_feeds; idx++) {
            (values.left_channel).push_back(converter != NULL ? converter(lvalues[idx]) : lvalues[idx]);
            (values.right_channel).push_back(converter != NULL ? converter(rvalues[idx]) : rvalues[idx]);                   
        }
        
        
        cout << "values.left_channel " << values.left_channel.size() << endl;
        cout << "values.right_channel " << values.right_channel.size() << endl;
        
    }
    catch(...) {
        throw ReceiverControlEx("ReceiverControl error: unexpected exception occurs performing the conversion.");
    }

    return values;
}


void ReceiverControl::turnLeftLNAsOn(
void ReceiverControl::turnLeftLNAsOn(
            const BYTE data_type,
            const BYTE data_type,
+0 −1
Original line number Original line Diff line number Diff line
@@ -32,7 +32,6 @@ void CComponentCore::initialize(maci::ContainerServices* services)
    m_statusWord=0;
    m_statusWord=0;
    m_ioMarkError = false;
    m_ioMarkError = false;
    m_calDiode=false;
    m_calDiode=false;
    printf("ciao");
}
}


CConfiguration const * const  CComponentCore::execute() throw (
CConfiguration const * const  CComponentCore::execute() throw (
+43 −14
Original line number Original line Diff line number Diff line
#include "SRTQBandCore.h"
#include "SRTQBandCore.h"


#define NUMBER_OF_STAGES 1 // Amplification stages
#define NUMBER_OF_FEEDS 5 // Number of feeds per AD24 port


SRTQBandCore::SRTQBandCore() {
SRTQBandCore::SRTQBandCore() {
    voltage2mbar=voltage2mbarF;
    voltage2mbar=voltage2mbarF;
@@ -15,9 +15,9 @@ SRTQBandCore::~SRTQBandCore() {}


void SRTQBandCore::initialize(maci::ContainerServices* services)
void SRTQBandCore::initialize(maci::ContainerServices* services)
{
{
    m_vdStageValues = std::vector<IRA::ReceiverControl::StageValues>(NUMBER_OF_STAGES);
    m_vdStageValues = std::vector<IRA::ReceiverControl::StageValues>(NUMBER_OF_FEEDS);
    m_idStageValues = std::vector<IRA::ReceiverControl::StageValues>(NUMBER_OF_STAGES);
    m_idStageValues = std::vector<IRA::ReceiverControl::StageValues>(NUMBER_OF_FEEDS);
    m_vgStageValues = std::vector<IRA::ReceiverControl::StageValues>(NUMBER_OF_STAGES);
    m_vgStageValues = std::vector<IRA::ReceiverControl::StageValues>(NUMBER_OF_FEEDS);


    CComponentCore::initialize(services);
    CComponentCore::initialize(services);
}
}
@@ -28,10 +28,35 @@ ACS::doubleSeq SRTQBandCore::getStageValues(const IRA::ReceiverControl::FetValue


    ACS::doubleSeq values;
    ACS::doubleSeq values;
    values.length(getFeeds());
    values.length(getFeeds());
    cout << "getFeeds() " << getFeeds() << endl;
	 cout << "ifs " << ifs  << endl;
    cout << "stage " << stage << endl;
	 cout << "m_configuration.getIFs() " << m_configuration.getIFs()  << endl;
	 cout << "m_configuration.getFeeds()" << m_configuration.getFeeds() << endl;
    for(size_t i=0; i<getFeeds(); i++)
    for(size_t i=0; i<getFeeds(); i++)
        values[i] = 0.0;
        values[i] = 0.0;
    if (ifs >= m_configuration.getIFs() || stage > NUMBER_OF_STAGES || stage < 1)
    if (ifs >= m_configuration.getIFs() || stage > NUMBER_OF_FEEDS || stage < 1)
        return values;
        return values;
    cout << "m_polarization[ifs] " << m_polarization[ifs] << endl;
	 cout << "Receivers::RCV_LCP " << Receivers::RCV_LCP << endl;
    cout << "control " << control << endl;
    cout << "IRA::ReceiverControl::DRAIN_VOLTAGE " << IRA::ReceiverControl::DRAIN_VOLTAGE << endl;
    cout << "IRA::ReceiverControl::DRAIN_CURRENT " << IRA::ReceiverControl::DRAIN_CURRENT << endl;
        cout << "IRA::ReceiverControl::GATE_VOLTAGE " << IRA::ReceiverControl::GATE_VOLTAGE << endl;
	 cout << "m_vdStageValues[stage-1].left_channel.size() " << m_vdStageValues[stage-1].left_channel.size() << endl;
    //cout << "m_vdStageValues[stage-1].left_channel " << m_vdStageValues[stage-1].left_channel << endl;	 
	 cout << "m_idStageValues[stage-1].left_channel.size() " << m_idStageValues[stage-1].left_channel.size() << endl;
    //cout << "m_idStageValues[stage-1].left_channel " << m_idStageValues[stage-1].left_channel << endl;	 
	 cout << "m_vgStageValues[stage-1].left_channel.size() " << m_vgStageValues[stage-1].left_channel.size() << endl;
	 //cout << "m_vgStageValues[stage-1].left_channel " << m_vgStageValues[stage-1].left_channel << endl;
	 
	 cout << "m_vdStageValues[stage-1].right_channel.size() " << m_vdStageValues[stage-1].right_channel.size() << endl;
    //cout << "m_vdStageValues[stage-1].right_channel " << m_vdStageValues[stage-1].right_channel << endl;	 
	 cout << "m_idStageValues[stage-1].right_channel.size() " << m_idStageValues[stage-1].right_channel.size() << endl;
    //cout << "m_idStageValues[stage-1].right_channel " << m_idStageValues[stage-1].right_channel << endl;	 
	 cout << "m_vgStageValues[stage-1].right_channel.size() " << m_vgStageValues[stage-1].right_channel.size() << endl;
	 //cout << "m_vgStageValues[stage-1].right_channel " << m_vgStageValues[stage-1].right_channel << endl;
    
    // Left Channel
    // Left Channel
    if(m_polarization[ifs] == (long)Receivers::RCV_LCP) {
    if(m_polarization[ifs] == (long)Receivers::RCV_LCP) {
        if (control == IRA::ReceiverControl::DRAIN_VOLTAGE) {
        if (control == IRA::ReceiverControl::DRAIN_VOLTAGE) {
@@ -80,6 +105,9 @@ ACS::doubleSeq SRTQBandCore::getStageValues(const IRA::ReceiverControl::FetValue
       }
       }
    }
    }
    
    
    for(size_t j = 0; j < getFeeds(); j++){
      cout << "values " << values[j] << endl;
    }    
    return values;
    return values;
}
}


@@ -101,7 +129,7 @@ void SRTQBandCore::setMode(const char * mode) throw (
	cmdMode.MakeUpper();
	cmdMode.MakeUpper();


    _EXCPT(ReceiversErrors::ModeErrorExImpl,impl,"CConfiguration::setMode()");
    _EXCPT(ReceiversErrors::ModeErrorExImpl,impl,"CConfiguration::setMode()");
    
    cout << "cmdMode " << cmdMode << endl;
    // Set the operating mode to the board
    // Set the operating mode to the board
    try {
    try {
        if(cmdMode == "SINGLEDISH")
        if(cmdMode == "SINGLEDISH")
@@ -170,8 +198,9 @@ void SRTQBandCore::updateVdLNAControls() throw (ReceiversErrors::ReceiverControl
{
{
    // Not under the mutex protection because the m_control object is thread safe (at the micro controller board stage)
    // Not under the mutex protection because the m_control object is thread safe (at the micro controller board stage)
    try {
    try {
        for(size_t i=0; i<NUMBER_OF_STAGES; i++)
    	cout << "Number of feeds per pcb " << NUMBER_OF_FEEDS << endl;
            m_vdStageValues[i] = m_control->stageValues(IRA::ReceiverControl::DRAIN_VOLTAGE, i+1, SRTQBandCore::voltageConverter);
        for(size_t i=0; i<NUMBER_OF_FEEDS; i++)
            m_vdStageValues[i] = m_control->feedValues(IRA::ReceiverControl::DRAIN_VOLTAGE, i+1, SRTQBandCore::voltageConverter);
    }
    }
    catch (IRA::ReceiverControlEx& ex) {
    catch (IRA::ReceiverControlEx& ex) {
        _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl, "SRTQBandCore::updateVdLNAControls()");
        _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl,impl, "SRTQBandCore::updateVdLNAControls()");
@@ -187,8 +216,8 @@ void SRTQBandCore::updateIdLNAControls() throw (ReceiversErrors::ReceiverControl
{
{
    // Not under the mutex protection because the m_control object is thread safe (at the micro controller board stage)
    // Not under the mutex protection because the m_control object is thread safe (at the micro controller board stage)
    try {
    try {
        for(size_t i=0; i<NUMBER_OF_STAGES; i++)
        for(size_t i=0; i<NUMBER_OF_FEEDS; i++)
            m_idStageValues[i] = m_control->stageValues(IRA::ReceiverControl::DRAIN_CURRENT, i+1, SRTQBandCore::currentConverter);
            m_idStageValues[i] = m_control->feedValues(IRA::ReceiverControl::DRAIN_CURRENT, i+1, SRTQBandCore::currentConverter);
    }
    }
    catch (IRA::ReceiverControlEx& ex) {
    catch (IRA::ReceiverControlEx& ex) {
        _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl, impl, "SRTQBandCore::updateIdLNAControls()");
        _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl, impl, "SRTQBandCore::updateIdLNAControls()");
@@ -204,8 +233,8 @@ void SRTQBandCore::updateVgLNAControls() throw (ReceiversErrors::ReceiverControl
{
{
    // Not under the mutex protection because the m_control object is thread safe (at the micro controller board stage)
    // Not under the mutex protection because the m_control object is thread safe (at the micro controller board stage)
    try {
    try {
        for(size_t i=0; i<NUMBER_OF_STAGES; i++)
        for(size_t i=0; i<NUMBER_OF_FEEDS; i++)
            m_vgStageValues[i] = m_control->stageValues(IRA::ReceiverControl::GATE_VOLTAGE, i+1, SRTQBandCore::voltageConverter);
            m_vgStageValues[i] = m_control->feedValues(IRA::ReceiverControl::GATE_VOLTAGE, i+1, SRTQBandCore::voltageConverter);
    }
    }
    catch (IRA::ReceiverControlEx& ex) {
    catch (IRA::ReceiverControlEx& ex) {
        _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl, impl, "SRTQBandCore::updateVgLNAControls()");
        _EXCPT(ReceiversErrors::ReceiverControlBoardErrorExImpl, impl, "SRTQBandCore::updateVgLNAControls()");
+3 −3

File changed.

Contains only whitespace changes.