WARP Project Forums - Wireless Open-Access Research Platform

You are not logged in.

#1 2015-Jun-06 23:41:23

kanchan
Member
Registered: 2015-Feb-24
Posts: 22

Enable continuous transmission mode in WARPLab

Hi,
I am using WARP v3 and trying to to enable the continuous transmission mode in WARPLab_Reference_Design_7.5.1.I have already experiment with all M_Code_Examples on this reference design and understand all of them.Now I am wondering is it possible to enable continuous transmission mode in WARPLab for mimo_txrx and siso_txrx. Please help.

Thanks,
Kanchan

Offline

 

#2 2015-Jun-07 10:47:12

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: Enable continuous transmission mode in WARPLab

WARPLab's continuous Tx mode can be enabled with the command "wl_basebandCmd(nodes, 'continuous_tx', 1)". This configures the Tx state machine to repeat the Tx buffer contents over and over once a trigger is received.

Offline

 

#3 2015-Jul-23 06:47:41

arinz
Member
Registered: 2015-Jul-06
Posts: 7

Re: Enable continuous transmission mode in WARPLab

Hello,

When I enable continuous tx mode for the siso_txrx example, I got the errors below:

Error:  Node returned 'SAMPLE_IQ_ERROR'.  Check that node is not currently transmitting in continuous TX mode.
   Socket Error Code: 0
Error using wl_mex_udp_transport
Error:  See description above.

Error in wl_transport_eth_udp_mex/read_buffers (line 545)
                    [num_rcvd_samples, cmds_used, rx_samples]  =
                    wl_mex_udp_transport('read_iq', obj.sock, data8,
                    length(data8), obj.address, obj.port, num_samples,
                    buffer_ids, start_sample, obj.maxS
Error in wl_baseband_buffers>readIQ (line 1393)
        rxSamples_IQ = node.transport.read_buffers('IQ', numSamps, buffSel,
        offset, myCmd, 0);

Error in wl_baseband_buffers/procCmd (line 576)
                    out = readIQ(obj, node, buffSel, cmdStr, varargin{:});

Error in wl_baseband_buffers/subsref (line 112)
            varargout{:} = builtin('subsref', obj, S);

Error in wl_node/wl_basebandCmd (line 296)
                    out(n) = currNode.baseband.procCmd(n, currNode,
                    varargin{:});

Error in wl_example_siso_txrx (line 231)
rx_IQ    = wl_basebandCmd(node_rx, [RF_RX], 'read_IQ', 0, RXLength);

How can I solve this?  I really appreciate any help you can provide.

Offline

 

#4 2015-Jul-23 08:14:46

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: Enable continuous transmission mode in WARPLab

This error usually indicates that you're attempting to enable Tx on an interface that is already in Tx mode. Does your script disable the Tx interface sometime after enabling it?

Code:

wl_interfaceCmd(node_tx, RF_TX, 'tx_en');
wl_basebandCmd(node_tx, RF_TX, 'tx_buff_en');

%Wait a while
pause(10);

wl_basebandCmd(node_tx, RF_TX, 'tx_rx_buff_dis');
wl_interfaceCmd(node_tx, RF_TX, 'tx_rx_dis');

Offline

 

#5 2015-Jul-23 08:52:28

arinz
Member
Registered: 2015-Jul-06
Posts: 7

Re: Enable continuous transmission mode in WARPLab

Thanks for the quick response, I didn't change anything except setting the NUMNODES = 1 in siso_txrx example. Actually, now I am trying to design a basic jammer using Warp v3 kit based on a siso_txrx example. I will use RFA and RFB to transmit data continuously with different center frequencies. Where should I enable continuous tx mode ( wl_basebandCmd(nodes, 'continuous_tx', 1) ) in the script?

Offline

 

#6 2015-Jul-23 09:31:41

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: Enable continuous transmission mode in WARPLab

You should call "wl_basebandCmd(nodes, 'continuous_tx', 1)" before calling 'tx_en' and 'tx_buff_en'. The node will begin transmitting continuously at this point. You must then disable the Tx interface (i.e. call 'tx_rx_buff_dis' and 'tx_rx_dis') before starting again.

Offline

 

#7 2015-Jul-27 05:30:08

arinz
Member
Registered: 2015-Jul-06
Posts: 7

Re: Enable continuous transmission mode in WARPLab

I already called wl_basebandCmd(nodes, 'continuous_tx', 1) before calling 'tx_en' and 'tx_buff_en', however the error I listed above still persist. Can you guide me how to proceed?

Offline

 

#8 2015-Jul-27 08:54:10

welsh
Administrator
From: Mango Communications
Registered: 2013-May-15
Posts: 612

Re: Enable continuous transmission mode in WARPLab

In WARPLab 7.5.1, you cannot perform a Read IQ while the node is transmitting or receiving.  We added this restriction in WARPLab 7.5.x since we could not guarantee correct performance due to the implementation of the larger buffer sizes.  You can see in the code, that we check the "status" of the node (i.e. if we are transmitting or receiving) and then based on that will either inform the host that it needs to wait for the IQ samples or send back an IQ Error in the case that the node is in continuous transmit mode, since we do not want the host to wait forever.  Just as a note, we are attempting to remove this restriction in the next version of WARPLab but this requires re-designing the transport in order to guarantee correct operation. 

For your experiment, you have to stop the node transmitting or receiving before reading the IQ samples from the node.

Offline

 

#9 2015-Jul-28 07:21:27

arinz
Member
Registered: 2015-Jul-06
Posts: 7

Re: Enable continuous transmission mode in WARPLab

Thank you very much for your response, disabling the buffers before reading IQ samples solved the problem. I have another question regarding to my experiment. I want to use RFA and RFB to transmit data continuously with different center frequencies in order to occupy larger bandwidth. In siso_txrx example, RFA is used for transmit and RFB is used for receive operation.  Can I use both of them for continuous transmission?
     -

Offline

 

#10 2015-Jul-28 08:51:55

welsh
Administrator
From: Mango Communications
Registered: 2013-May-15
Posts: 612

Re: Enable continuous transmission mode in WARPLab

Yes.  Each RF interface is independent.  You can see in the SISO example, we set both radios to the same channel by using the 'RF_ALL' keyword.  You can set each interface independently by instead using the appropriate RF interface ID.  Just remember that you will need to use multiple receive RF interfaces to capture the larger bandwidth. 

Also, please take a look at this post to better understand the RX frequency response of the hardware.  There are some edge affects due to the underlying RF hardware.

Offline

 

#11 2015-Jul-28 09:19:01

arinz
Member
Registered: 2015-Jul-06
Posts: 7

Re: Enable continuous transmission mode in WARPLab

Thanks for your help welsh, much appreciated.  just another quick question, I tried to set each RF interface independently by the lines below:

wl_interfaceCmd(nodes, 'RFA', 'channel', 2.4, 6);
wl_interfaceCmd(nodes, 'RFB', 'channel', 2.4, 10);

However, I got the errors listed below:

Undefined function 'bitand' for input arguments of type 'char'.

Error in wl_interface_group_X245/procCmd (line 91)
            if(bitand(rfSel,sum(obj.ID))~=rfSel)

Error in wl_node/wl_interfaceCmd (line 471)
                    out(nodeIndex) =
                    currNode.interfaceGroups{ifcIndex}.procCmd(nodeIndex,
                    currNode, rfSel, varargin{:});

Error in cooont (line 96)
wl_interfaceCmd(nodes, 'RFA', 'channel', 2.4, 11);

There is no problem when both RF interfaces are set to the same channel by using "RF_ALL", but I could not set them independently.

Kind Regards.

Offline

 

#12 2015-Jul-28 10:16:40

welsh
Administrator
From: Mango Communications
Registered: 2013-May-15
Posts: 612

Re: Enable continuous transmission mode in WARPLab

'RF_ALL' is a string keyword.  The RF interface IDs are variables in the M-script.  You can see the parsing code here.  So, you should just use:

Code:

wl_interfaceCmd(nodes, RFA, 'channel', 2.4, 6); 
wl_interfaceCmd(nodes, RFB, 'channel', 2.4, 10);

i.e. there are no single quotes around the RFA / RFB variable names.  As you can see from the error message, the code expects a numeric value but was given a 'char'.

Offline

 

Board footer