[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Re:Re: [Discuss-gnuradio] PACKET FORMAT "error"
From: |
meco1982 |
Subject: |
RE: Re:Re: [Discuss-gnuradio] PACKET FORMAT "error" |
Date: |
Thu, 13 May 2010 07:29:35 -0700 (PDT) |
Thanks so much
I'm deeply sorry but i have to disturb u again...
I changed the file "db_dbsrx.c" in "/gnuradio/usrp2/firmaware/lib" to
insert a new method and c++ compiling at command window is not my best
asset....Which are the command to type...?
$ gcc db_dbsrx.c......and what else? which option have i to add to
compile it?
The python file is in a different folder cause i have to recall a new method
in usrp2.source_32fc() that now is not defined....
Thanks
Domenico
Kuntal-2 wrote:
>
> HI Domenico,
> You can 'make'(from terminal) the folder in which you have modified .cc
> and
> .py files.
>
> It should work fine if there are not errors in your modifications..
>
> Regards,
> Kuntal Ray
>
> -----Original Message-----
> From: address@hidden
> [mailto:address@hidden On Behalf Of
> meco1982
> Sent: Thursday, May 13, 2010 8:46 AM
> To: address@hidden
> Subject: Re: Re:Re: [Discuss-gnuradio] PACKET FORMAT "error"
>
>
> Hi, can u help me?
> I want to know which are the step and the file to recompile after a
> changing
> in .cc code....After add the printf code in .cc what have u done?
> I have to modify a .cc code to use this modification in a py script as a
> new
> method....but i don't get on with the job....
> Thanks,
> Domenico
>
>
>
>
> zzw.1012 wrote:
>>
>> Hi, Thomas
>> thanks for your help ! you are right!
>> I add printf code in the function of usrp_basic.cc like this:
>> int usrp_basic_tx::write(const void *buf, int len, bool *underrun)
>> {
>> ...
>> printf ("len = %d\n", len);
>> if (len < 0 || (len % 512) != 0)
>> {
>> fprintf(stderr, "usrp_basic_tx::write: invalid length= %d\n", len);
>> }
>> }
>> then I run the example of benchmark_tx.py :
>> ./benchmark_tx.py -f 2500M -s 1500 -M 0.001
>> it really send 194560 bytes = 190k for the default case using 4 samples
>> per symbol and it send 380k with -M 0.002.
>> but , I still have some question. first , after making packet with 1520
>> bytes, then whether is it going on gmsk(default) modulation? I think the
>> 1520-bytes packet changes to 190kbytes occur in the process of gmsk. Is
>> it
>> right? how to calculate the number from 1520 to 194560?
>> second, in the process of sending packet, the printf information as
>> follow:
>> (./benchmark_tx.py -f 2500M -s 1500 -M 0.001)
>> len = 16384
>> len = 15872
>> len = 16384
>> len = 16384
>> len = 16384
>> len = 15872
>> len = 16384
>> len = 512
>> len = 16384
>> len = 16384
>> len = 16384
>> len = 16384
>> len = 14848
>> Is there have some discipline in sending data? I find it seems unorderly.
>>
>> thank you again
>>
>> best wishes
>>
>>
>>>
>>> On Sun, May 9, 2010 at 11:28 PM, zzw.1012 <address@hidden> wrote:
>>> > Hi,
>>> > I'm studying benchmark_tx.py now. I find that the packet size is
>>> not
>>> > right (at least I'd like to think so) in the process of making packet,
>>> which
>>> > can be seen in pkt.py and packet_utils.py. In the packet consist of 2
>>> bytes
>>> > packed_preamble, 8 bytes packed_access_code, 4 bytes header, 4 bytes
>>> > outband_crc with default 1500 bytes size, padding bytes and
>>> endbyte"\x55" .
>>> > I use default gmsk modulatiom. So, the packet have 2 + 8 + 4 + 1504 +
>>> 1
>>> + 1
>>> > = 1520bytes.
>>> > However, in the function of _npadding_bytes(pkt_bytes_len,
>>> > samples_per_symbol, bits_per_symbol) , there have such description:
>>> > "generate sufficient padding such that each packet ultimately ends up
>>> being
>>> > a multiple of 512 bytes when sent across the USB, we send 4-byte
>>> samples
>>> > across the USB (16-bit I and 16-bit Q), thus we want to pad so that
>>> after
>>> > modulation the resulting packet is a multiple of 128 samples". Also ,
>>> in the
>>> > function "int usrp_basic_tx::write(const void *buf, int len, bool
>>> > *underrun)"in the usrp_basic.cc, there have similar code like "if
>>> (len
>>> < 0
>>> > || (len % 512) != 0){fprintf(stderr, "usrp_basic_tx::write: invalid
>>> length
>>> > = %d\n", len}".
>>> > they both tell me that the data across the USB must be a multiple
>>> of 512
>>> > bytes .but in the example of benchmark_tx.py, the packet size is 1520
>>> > bytes. what's wrong ?
>>>
>>> 1520 bytes only refers to the packet size. The transmitted sample
>>> stream at the physical layer includes a number of other factors
>>> including conversion to bits, samples per symbol, and sample size. So
>>> for the default case, a 1520 byte packet using 4 samples per symbol
>>> yields 48640 samples or 194560 bytes, which is a multiple of 512.
>>>
>>> Thomas
>>
>> _______________________________________________
>> Discuss-gnuradio mailing list
>> address@hidden
>> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
>>
>
> --
> View this message in context:
> http://old.nabble.com/PACKET-FORMAT-%22error%22-tp28507552p28547711.html
> Sent from the GnuRadio mailing list archive at Nabble.com.
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
--
View this message in context:
http://old.nabble.com/PACKET-FORMAT-%22error%22-tp28507552p28548281.html
Sent from the GnuRadio mailing list archive at Nabble.com.