BOOST help again ...

Jim REMOVEjimdon at sympatico.caREMOVE
Mon Mar 24 08:04:17 EST 2003


Perfect ... thank you very much!

Jim

David Abrahams wrote:
> Jim <REMOVEjimdon at sympatico.caREMOVE> writes:
> 
> 
>>Hi ...
>>I have a new boost question ... how do convert a tuple to a c struct
>>... my half brained attempt is below ... but it has some obvious
>>compile problems ...
> 
> 
> Please post Boost.Python questions to the c++-sig:
> http://mail.python.org/mailman/listinfo/c++-sig
> 
> 
>>void BOOSTED_cosim_define_board(boost::python::tuple t)
>>{
>>   double x60_clk, pwm_clk, utx_clk, urx_clk, local_ref_clk,
>>   pcr_ref_clk, mod_ref_clk, demod_ref_clk;
>>   long mod_utopia, demod_utopia, dac_type, adc_type;
>>
>>   if (!PyArg_ParseTuple(t, "(ddddddddllll)",
>>     &x60_clk,
>>     &pwm_clk,
>>     &utx_clk,
>>     &urx_clk,
>>
>>     &local_ref_clk,
>>     &pcr_ref_clk,
>>     &mod_ref_clk,
>>     &demod_ref_clk,
>>
>>     &mod_utopia,
>>     &demod_utopia,
>>
>>     &dac_type,
>>     &adc_type))
>>   {
>>     PyErr_SetString( PyCosim_Error, "invalid args" );
>>     return;
>>   }
> 
> 
> use 
> 
>     extract<double>(t[0])
>     extract<long>(t[8])
> 
> etc., to get the values out.  Your approach won't interact properly
> with exception-handling.
> 
> 
>>   theboard.x60_clk=x60_clk*1e6;
>>   theboard.pwm_clk=pwm_clk*1e6;
>>   theboard.utx_clk=utx_clk*1e6;
>>   theboard.urx_clk=urx_clk*1e6;
>>
>>   theboard.local_ref_clk=local_ref_clk*1e6;
>>   theboard.pcr_ref_clk=pcr_ref_clk*1e6;
>>   theboard.mod_ref_clk=mod_ref_clk*1e6;
>>   theboard.demod_ref_clk=demod_ref_clk*1e6;
>>
>>   theboard.mod_utopia=static_cast<ATM_INFO>(mod_utopia);
>>   theboard.demod_utopia=static_cast<ATM_INFO>(demod_utopia);
>>
>>   theboard.dac_type=static_cast<DACADC_TYPE>(dac_type);
>>   theboard.adc_type=static_cast<DACADC_TYPE>(adc_type);
>>
>>   return;
>>}
> 
> 
> Your compile problems are not "obvious" from what you posted.
> If you need help with compilation errors, it helps to show us a few.
> Reproducible test cases are also good.
> 





More information about the Python-list mailing list