DSC/dc_trial1: dsc-h3.rb

File dsc-h3.rb, 4.1 KB (added by seskar, 11 years ago)

OEDL script for DSC H3-like tutorial

Line 
1defProperty('rxnode', 'node1-1.grid.orbit-lab.org', "Receive node")
2defProperty('txnode', 'node20-20.grid.orbit-lab.org', "Transmit node")
3defProperty('rate', '1.25M', "Bitrate")
4defProperty('modulation','bpsk',"Modulation")
5defProperty('freq', '1900000000', "Center frequency")
6defProperty('runtime', 100, "Run time (s)")
7
8defApplication('test:app:benchmark_rx3', 'benchmark_rx3.py') { |a|
9 a.version(2, 0, 4)
10 a.shortDescription = ""
11 a.description = ""
12 a.path = "export LC_ALL=C;/root/gnuradio/gr-digital/examples/narrowband/benchmark_rx3.py"
13 a.defProperty('args', "Argument list", nil,
14 {:dynamic => false, :type => :string})
15 a.defProperty('freq', "center frequency in Hz", '-f',
16 {:dynamic => false, :type => :string})
17 a.defProperty('rx-gain', "receive gain in dB", '--rx-gain',
18 {:dynamic => false, :type => :string})
19 a.defProperty('bitrate', "specify bitrate", '-r',
20 {:dynamic => false, :type => :string})
21 a.defProperty('modulation', "modulation: psk, cpm, qpsk, dqpsk, gfsk,qam, dbpsk, bpsk, gmsk [default=psk]", '-m',
22 {:dynamic => false, :type => :string})
23 a.defProperty('constellation-points', "set constellation - power of two for psk, power of 4 for QAM [default=16]", '-p',
24 {:dynamic => false, :type => :string})
25}
26
27defApplication('test:app:benchmark_tx3', 'benchmark_tx3.py') { |a|
28 a.version(2, 0, 4)
29 a.shortDescription = ""
30 a.description = ""
31 a.path = "export LC_ALL=C;/root/gnuradio/gr-digital/examples/narrowband/benchmark_tx3.py"
32 a.defProperty('args', "Argument list", nil,
33 {:dynamic => false, :type => :string})
34 a.defProperty('freq', "center frequency in Hz", '-f',
35 {:dynamic => false, :type => :string})
36 a.defProperty('tx-gain', "transmit gain in dB", '--tx-gain',
37 {:dynamic => false, :type => :string})
38 a.defProperty('tx-amplitude', "transmitter digital amplitude [0,1) [default=0.25", '--tx-amplitude',
39 {:dynamic => false, :type => :string})
40 a.defProperty('bitrate', "specify bitrate", '-r',
41 {:dynamic => false, :type => :string})
42 a.defProperty('modulation', "modulation: psk, cpm, qpsk, dqpsk, gfsk,qam, dbpsk, bpsk, gmsk [default=psk]", '-m',
43 {:dynamic => false, :type => :string})
44 a.defProperty('constellation-points', "set constellation - power of two for psk, power of 4 for QAM [default=16]", '-p',
45 {:dynamic => false, :type => :string})
46}
47
48defGroup('rx_node', property.rxnode) { |n|
49 n.addApplication('test:app:benchmark_rx3') { |app|
50 app.setProperty('freq', property.freq)
51 app.setProperty('modulation',property.modulation)
52 app.setProperty('bitrate',property.rate)
53 app.setProperty('rx-gain','30')
54 }
55}
56
57defGroup('tx_node', property.txnode) { |n|
58 n.addApplication('test:app:benchmark_tx3') { |app|
59 app.setProperty('freq', property.freq)
60 app.setProperty('modulation',property.modulation)
61 app.setProperty('bitrate',property.rate)
62 app.setProperty('tx-gain','30')
63 app.setProperty('tx-amplitude','0.5')
64 }
65}
66
67onEvent(:ALL_UP_AND_INSTALLED) { |event|
68 info "Give machines some time to warm up :-)"
69 wait 2
70 info "Starting the packet server"
71 consoleExec("/usr/local/bin/pkt_server --oml-exp-id #{Experiment.ID} --duration #{property.runtime} &")
72 info "Configuring interference"
73 consoleHttp("http://instrument1.orbit-lab.org:5054/interference/initialize")
74 consoleHttp("http://instrument1.orbit-lab.org:5054/interference/set?frequency=#{property.freq}&power=-40")
75 consoleHttp("http://instrument1.orbit-lab.org:5054/interference/train?bandwidth=2.5&duration=#{property.runtime}")
76 info "Starting interference"
77 consoleHttp("http://instrument1.orbit-lab.org:5054/interference/start")
78 info "Starting benchmark_rx"
79 group("rx_node").startApplications
80 info "Starting benchmark_tx"
81 group("tx_node").startApplications
82 info "Runing for #{property.runtime} seconds..."
83 wait property.runtime
84 info "Done! Stop eveything"
85 allGroups.stopApplications
86 consoleHttp("http://instrument1.orbit-lab.org:5054/interference/stop")
87 wait 5
88 consoleExec("pkill pkt_server")
89 Experiment.done
90}