Closed Nobu19800 closed 1 year ago
上記のご指摘なのですが,どこを修正すれば良いのかが不明でした.
DataConnectorCreaterDialog内では,ポートプロファイルを取得する際に,SDOUtilのgetValueListを呼び出しており,こちらのメソッドの中で,valueの内容にスペースが含まれている場合には,削除するようにしています. (DataConnectorCreaterDialogでは,okPressed関数を呼び出す前に,loadData関数でポートプロファイルを取得しており,こちらで上記の関数を呼び出しています)
ご指摘の内容から,DataConnectorCreaterDialogのokPressed関数内に何か処理を追加しようとされたのでしょうか? もしもそうであれば,loadData関数内で行っているような処理を実行して頂けば,空白が入っていない情報が取得できると思います. (ご指摘の内容を勘違いしておりましたら,申し訳ございません)
okPressed関数に処理を追加しようとはしてません。念のため、OpenRTPのmasterブランチのソースコードを使って動作確認しました。以下のようにokPressed関数内でpropertyList
を確認しました。
protected void okPressed() {
String ifType = interfaceTypeCombo.getText();
for (String key : propertyList.keySet()) {
System.out.println("\""+key+"\"");
}
その結果は以下の通りで、corba_cdr
以外にはスペースが入っています。
" direct"
" data_service"
"corba_cdr"
" csp_channel"
" shared_memory"
おそらく、SDOUtilのgetValueList関数で削除している空白は、全てのインターフェース型(corba_cdr, csp_channel, data_service, direct, shared_memory
の文字列)の先頭の空白だと思いますので、コンマで区切った後の文字列の空白は削除されていないようです。
ご説明ありがとうございました. SDOUtilのgetValueList関数では,前後の空白ともに削除できておりました. ただ,別の箇所でポートプロファイルを取得する際に,スペースを削除していなかったので,その部分を修正させて頂きました.
Is your feature request related to a problem? Please describe. OpenRTM-aist Python版では、ポートプロファイルの
dataport.interface_type
等を取得すると、以下のように型名の前にスペースが入る。RT System Editorでの接続時に、DataConnectorCreaterDialog.okPressed関数で、連想配列にスペースが入っている名前でキーを設定して、スペースが入っていない名前で要素を取得しようとしてエラーになる。
Describe the solution you'd like エラーが出ないようにする。
Describe alternatives you've considered Python版についてはスペースが入らないように修正を加えるが、最初期のリリースからスペースが入っていたようなので、RT System Editor側で空白を削除するように変更する。 念のため、インターフェース型以外の項目でも問題が無いかを確認する。
Additional context