All pastes #110431 Raw Edit

Unnamed

public text v1 · immutable
·published 2006-08-01 17:37 UTC
rendered paste body
/*THIS IS THE PORT_IMPL.CPP FILE*/
void dataIn_complexShort_i::pushPacket(const PortTypes::ShortSequence &I,const PortTypes::ShortSequence &Q)
{//addition 4 lines

cout << "Pushpacket received, length " << I.length() << endl;
for (unsigned int i =0; i < I.length(); ++i) {
cout << "NRZ Receiver: " << I[i] << endl ;
nrz_data->bufferI[i]=I[i];
//cout <<"buffer data"<<nrz_data->bufferI[i]<<endl;
//addition
//nrz_data->start_processing.signal();
//processing_thread = new omni_thread(process_data, (void *) this);
//nrzdata_active = true;
//processing_thread->start();
	
}// end for

/*THIS IS THE nrz_DATA.CPP FILE*/
NRZ_data_i::NRZ_data_i(const char *uuid, omni_condition *con) : Resource_impl(uuid)
{
    component_running = con;

    inPort0_servant = new dataIn_complexShort_i(this);
    inPort0_var = inPort0_servant->_this();

    outPort0_servant = new dataOut_complexShort_i(this);
    outPort0_var = outPort0_servant->_this();
    outPort0_active = false;

    component_alive = true;
	// addition
	bufferI.length(16);
cout<<"in NRZ.cpp"<< endl;
//processing_thread = new omni_thread(process_data, (void *) this);
//nrzdata_active = true;
//processing_thread->start();
	

}


NRZ_data_i::~NRZ_data_i(void)
{
    delete inPort0_servant;

    delete outPort0_servant;

}

CORBA::Object_ptr NRZ_data_i::getPort( const char* _id ) throw (CORBA::SystemException, CF::PortSupplier::UnknownPort)
{
    if (strcmp(_id,"in") == 0) {
        return inPort0_var;
    }

    if (strcmp(_id,"out") == 0) {
        outPort0_active = true;
        return CF::Port::_duplicate(outPort0_var);
    }

    return NULL;
}

void NRZ_data_i::start() throw (CORBA::SystemException, CF::Resource::StartError)
{// addition 3 lines

cout << "starting NRZ process" <<endl;
processing_thread2 = new omni_thread(process_data, (void *) this);
nrzdata_active = true;
//processing_thread2->start();
	

}

void NRZ_data_i::stop() throw (CORBA::SystemException, CF::Resource::StopError) { nrzdata_active = false; }

void NRZ_data_i::releaseObject() throw (CORBA::SystemException, CF::LifeCycle::ReleaseError)
{
    // Clear the component running condition so main shuts down everything
    component_alive = false;
    component_running->signal();
}

void NRZ_data_i::initialize() throw (CF::LifeCycle::InitializeError, CORBA::SystemException)
{

}

void NRZ_data_i::configure(const CF::Properties& props) throw (CORBA::SystemException, CF::PropertySet::InvalidConfiguration, CF::PropertySet::PartialConfiguration)
{

}

//Addition to generated code - whole function

void process_data(void *data)
{
    NRZ_data_i *tx = (NRZ_data_i *) data;

    CORBA::ULong packet_size = (CORBA::ULong) 16;
    
    PortTypes::ShortSequence nrzdataI;
    PortTypes::ShortSequence Q;
  //int I[10];
//int Q[10];
  nrzdataI.length(packet_size);
    Q.length(packet_size);

    while(tx->nrzdata_active){
cout <<"processing incoming data"<< endl;
      /* for ( int i = 0; i < packet_size ; i ++) {
            I[i] = (CORBA::Short) (rand() % 2);
          //  I[i] = abs(I[i]);
           Q[i] = (CORBA::Short) i*2;
        cout << "I data: " << I[i] <<  endl;
      


  }// end for loop*/

       //tx->outPort0_servant->send_data(nrzdataI,Q);

        //sleep(1);

    } //end while 
//cout << "I data: " <<I[i]<< endl;
    tx->processing_thread2->exit();
} // end function



//nrz_data->start();
nrz_data->process_data(void *data);
}