操作
機能 #3395
未完了⑪ 共有メモリ型データポート接続機能
開始日:
2015/12/11
期日:
進捗率:
100%
予定工数:
説明
同一ノード内のコンポーネント間のデータポート接続において、マーシャリング後のデータのPutを共有メモリ経由で行うことで、TCP/IPスタックを経由することなく高速にデータ転送する機能を実装すること。
win-ei さんが約8年前に更新
動作確認¶
ConsoluOut と ConsoluIn で動作確認
- Java版同士の接続確認
- 別々のターミナルで ConsoleOut(Java版) ConsoleIn(Java版) を起動する。
- rtcon でポートが接続する
$ rtcon ./localhost/ConsoleIn0.rtc:out ./localhost/ConsoleOut0.rtc:in --property dataport.interface_type=shared_memory --roperty dataport.dataflow_type=pull $ rtact ./localhost/ConsoleIn0.rtc $ rtact ./localhost/ConsoleOut0.rtc
$ rtcon ./localhost/ConsoleIn0.rtc:out ./localhost/ConsoleOut0.rtc:in --property dataport.interface_type=shared_memory --roperty dataport.dataflow_type=push $ rtact ./localhost/ConsoleIn0.rtc $ rtact ./localhost/ConsoleOut0.rtc
- Java版とpython版との接続確認
- 別々のターミナルで ConsoleOut(python版) ConsoleIn(Java版) を起動する。
$ rtcon ./localhost/ConsoleIn0.rtc:out ./localhost/ConsoleOut0.rtc:in --property dataport.interface_type=shared_memory --property dataport.dataflow_type=push --property dataport.serializer.cdr.endian=little $ rtact ./localhost/ConsoleIn0.rtc $ rtact ./localhost/ConsoleOut0.rtc
$ rtcon ./localhost/ConsoleIn0.rtc:out ./localhost/ConsoleOut0.rtc:in --property dataport.interface_type=shared_memory --property dataport.dataflow_type=push --property dataport.serializer.cdr.endian=big $ rtact ./localhost/ConsoleIn0.rtc $ rtact ./localhost/ConsoleOut0.rtc
- 別々のターミナルで ConsoleOut(Java版) ConsoleIn(Python版) を起動する。
$ rtcon ./localhost/ConsoleIn0.rtc:out ./localhost/ConsoleOut0.rtc:in --property dataport.interface_type=shared_memory --property dataport.dataflow_type=push --property dataport.serializer.cdr.endian=little $ rtact ./localhost/ConsoleIn0.rtc $ rtact ./localhost/ConsoleOut0.rtc
$ rtcon ./localhost/ConsoleIn0.rtc:out ./localhost/ConsoleOut0.rtc:in --property dataport.interface_type=shared_memory --property dataport.dataflow_type=push --property dataport.serializer.cdr.endian=big $ rtact ./localhost/ConsoleIn0.rtc $ rtact ./localhost/ConsoleOut0.rtc
- 別々のターミナルで ConsoleOut(python版) ConsoleIn(Java版) を起動する。
win-ei さんが約8年前に更新
Windowsの場合¶
Java Native Access (JNA) を使用して、WindowsAPI(CreateFileMappingA、MapViewOfFile、UnmapViewOfFile、CloseHandle) を使用します。JNA を使用するために、以下のライブラリを追加。
- jna-4.2.2.jar
- jna-platform-4.2.2.jar
動作確認¶
ConsoluOut と ConsoluIn で動作確認
- Java版同士の接続確認
- 別々のターミナルで ConsoleOut(Java版) ConsoleIn(Java版) を起動する。
- RTSystemEditorRCP でポートを接続(interface_typeはshared_memory)して、ConsoleOut と ConsoleIn を Activate する。
- Java版とpython版との接続確認
- 別々のターミナルで ConsoleOut(python版) ConsoleIn(Java版) を起動する。
- RTSystemEditorRCP でポートを接続(interface_typeはshared_memory)して、ConsoleOut と ConsoleIn を Activate する。
- Java版とpython版との接続確認
- 別々のターミナルで ConsoleOut(Java版) ConsoleIn(Python版) を起動する。
- RTSystemEditorRCP でポートを接続(interface_typeはshared_memory)して、ConsoleOut と ConsoleIn を Activate する。
操作