1

payloadmodGNURadio で変数を変更する際に問題があります。私は GNURadio をリモートで実行し、実行時に変数を変更しています。これは、XMLRPC サーバー ブロックによってサポートされています。

まず、次の XML のバリエーションを使用して、ランタイム シナリオの変数をリモートで簡単に変更できます(各変数名の前に必ず指定してfreqください) 。packetlenbandwidthipaddressgainset_

<?xml version="1.0"?>
<methodCall><methodName>set_bandwidth</methodName><params><param><value><int>200000</int></value></param></params></methodCall>

ただし、set_payloadmod変数に問題があります。

gnuradio-companion には、次の変数セットがあります。

id=payloadmod
value=digital.constellation_qpsk()

次の XML を送信してpayloadmod変数を変更します。

<?xml version="1.0"?>
<methodCall><methodName>set_payloadmod</methodName><params><param><value><string>digital.constellation_bpsk()</string></value></param></params></methodCall>

そして、次のエラーが表示されます。

<?xml version='1.0'?>
<methodResponse>
<fault>
<value><struct>
<member>
<name>faultCode</name>
<value><int>1</int></value>
</member>
<member>
<name>faultString</name>
<value><string>&lt;type 'exceptions.AttributeError'&gt;:'str' object has no attribute 'bits_per_symbol'</string></value>
</member>
</struct></value>
</fault>
</methodResponse>

XML 文字列タグは好きではありません。XML タグを次のように変更しようとしましたが、成功しませんでした。

<int>digital.constellation_bpsk()</int>
<value>digital.constellation_bpsk()</value>
<any>digital.constellation_bpsk()</any>

gnuradio-companion では、次のように 2 つの変数も作成してみました。

id=payloadmodfrnt
value=‘digital.constellation_qpsk()’

id=payloadmod
value=eval(str(payloadmodfrnt).replace("'",""))

in payloadmod 変数はeval(str(……).replace("'","")、次の XML で渡された payloadmodfrnt 変数文字列から一重引用符を削除します。

<?xml version="1.0"?>
<methodCall><methodName>set_payloadmodfrnt</methodName><params><param><value><string>digital.constellation_bpsk()</string></value></param></params></methodCall>

変数はpayloadmodfrntpayloadmod(GUI で表示可能) の両方で変化します。ただし、payloadmod 変数は bpsk に変更されません。bpsk ではなく qpsk を送信し続けます (受信機でコンスタレーションが変更されていないことがわかります)。

戻る/入力するか、何かを押す必要があります。基本的に、ペイロード変数をキックするか、何かを変更する必要があります。または (最も単純なオプション)、payloadmod 変数を正しく変更するには、適切な XML タグが必要ですか?

4

0 に答える 0