Line | |
---|
1 | function pktNoTx = warplab_writeSMWO(udpSock, SMWO_id, TxData) |
---|
2 | |
---|
3 | pktNoTx = 1; |
---|
4 | |
---|
5 | if(length(TxData) > 2^14) |
---|
6 | disp('ERROR: TxData must contain 16384 (2^14) samples maximum!'); |
---|
7 | return; |
---|
8 | end |
---|
9 | |
---|
10 | maxPayloadBytesPerPkt = 1024; |
---|
11 | |
---|
12 | TxData_I_fi = int16(real(TxData)*2^15); |
---|
13 | TxData_Q_fi = int16(imag(TxData)*2^15); |
---|
14 | |
---|
15 | TxPktData = 2^16.*int32(TxData_I_fi) + int32(typecast(TxData_Q_fi,'uint16')); |
---|
16 | |
---|
17 | %length(TxPktData) is the number of samples, each of which is a 32-bit value |
---|
18 | %We'll send UDP packets with payloads of 1024 bytes, or 256 samples |
---|
19 | %This results in a maximum of 64 UDP packets to download a full TxData |
---|
20 | |
---|
21 | numPkts = ceil(length(TxPktData)*4/maxPayloadBytesPerPkt); |
---|
22 | |
---|
23 | for n = 0:numPkts-1 |
---|
24 | indexStart = ((n*maxPayloadBytesPerPkt/4)+1); |
---|
25 | indexEnd = min(length(TxPktData),((n+1)*maxPayloadBytesPerPkt/4)); |
---|
26 | dataToSendTx = [pktNoTx SMWO_id indexStart-1 TxPktData(indexStart:indexEnd)]; |
---|
27 | datarec = warplab_pktSend(udpSock, dataToSendTx); |
---|
28 | |
---|
29 | pktNoTx = pktNoTx+1; |
---|
30 | end |
---|
Note: See
TracBrowser
for help on using the repository browser.