wiki:WARPLab/Porting

Version 4 (modified by murphpo, 11 years ago) (diff)

--

WARPLab 7: Porting Code from old WARPLab

Coming soon... For now see the new WARPLab 7 examples


Initialization: WARPLab 7 provides a utility script wl_initNodes which simplifies the process of establishing a connection from MATLAB to multiple WARP nodes running the WARPLab reference design. The array returned by wl_initNodes replaces the individual socket handles used in WARPLab 6.

%WARPLab 6
warplab_defines
[socketHandles, packetNum] = warplab_initialize(2);
udp_Sync = socketHandles(1);
udp_node1 = socketHandles(2);
udp_node2 = socketHandles(3);
%WARPLab 7
nodes = wl_initNodes(2);
[RFA, RFB] = wl_getInterfaceIDs(nodes(1));

Setting Parameters: WARPLab 7 enables setting the same RF and baseband parameters as previous versions. However the syntax for sending commands to nodes has changed. The new syntax allows the same command to be sent to multiple nodes in one line. Each node can be assigned the same parameter value, or multiple values (one per node) can be passed as an array argument. The example below shows equivalent code for setting a few parameters for two nodes.

%WARPLab 6
warplab_writeRegister(udp_node1, TX_DELAY, 0);
warplab_writeRegister(udp_node1, TX_LENGTH, 2^14);

warplab_writeRegister(udp_node2, TX_DELAY, 0);
warplab_writeRegister(udp_node2, TX_LENGTH, 2^14);

warplab_setRadioParameter(udp_node1, CARRIER_CHANNEL, 11);
warplab_setRadioParameter(udp_node2, CARRIER_CHANNEL, 11);
%WARPLab 7
wl_basebandCmd(nodes, 'tx_delay', 0);
wl_basebandCmd(nodes, 'tx_length', 2^14);
wl_interfaceCmd(nodes, 'RF_ALL', 'channel', 2.4, 11);