DSC/dc_trial1: dsc-h3.rb

File dsc-h3.rb, 4.1 KB (added by seskar, 4 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}