Memperkenalkan Lab RTI dan Konektor untuk Connext DDS dengan Python
Banyak yang telah terjadi sejak ini posting awalnya diterbitkan. Tahukah Anda bahwa sekarang Anda dapat mengakses DDS menggunakan Python atau Javascript? Anda dapat berterima kasih kepada penguji beta program RTI Labs kami karena telah meningkatkan permintaannya sebagai Konektor RTI untuk Connext
®
DDS sekarang tersedia sebagai bagian dari rangkaian produk Connext.
Minggu ini kami sangat senang mengumumkan RTI Labs, program gratis yang memberi pelanggan kami akses awal ke teknologi baru yang kami kembangkan untuk IoT Industri. Kami menyebutnya proyek eksperimental. Pelanggan yang memanfaatkan RTI Labs memiliki kesempatan untuk memanfaatkan teknologi generasi berikutnya dan memengaruhi peta jalan produk kami dengan memberikan umpan balik tentang fitur eksperimental. Ini adalah situasi yang saling menguntungkan!
Kami meluncurkan program dengan tiga proyek eksperimental baru, yang pertama adalah Konektor RTI (R) untuk Connext DDS. Jika Anda telah mengunduh RTI Connext 5.3.0 dan memulai Peluncur RTI, Anda akan melihat beberapa ikon baru di tab 'Lab'. Salah satu ikon ini adalah untuk Konektor.
Mengeklik ikon Konektor akan membawa Anda ke halaman Konektor RTI di Portal Komunitas. Konektor dikembangkan oleh Tim Riset RTI untuk membantu membuat demo dan pengujian cepat. Konektor dimulai dengan antarmuka Lua ke RTI Prototyper, dan kemudian kami terbawa dan menambahkan dukungan untuk bahasa skrip, seperti Python dan JavaScript/node.js.
Tapi Apa itu Konektor RTI?
Konektor RTI untuk Connext DDS adalah cara cepat dan mudah untuk mengakses kekuatan dan fungsionalitas RTI Connext DDS dari berbagai bahasa skrip yang berbeda termasuk JavaScript, Python, dan Lua. Itu dibangun di atas beberapa kemampuan kuat dari Connext DDS, termasuk Pembuatan Aplikasi XML dan Data Dinamis.
Pos blog ini berfokus pada antarmuka python dari RTI Connector, tetapi sebagian besar konsep dapat diterapkan dengan mudah ke JavaScript/node.js dan lua/prototyper.
Kasus Penggunaan
Ada banyak kasus penggunaan untuk Konektor RTI. Beberapa kasus penggunaan dari pengguna awal meliputi:
- Pengujian : seringkali ketika Anda mengembangkan sistem terdistribusi yang kompleks, beberapa komponen mungkin belum siap; Dalam hal ini, Konektor digunakan untuk meniru perilaku komponen DDS yang akan diselesaikan nanti atau oleh grup lain. Ini memungkinkan Anda menguji komponen secara terpisah – yang berharga baik saat Anda bekerja dalam tim terdistribusi, atau saat Anda tidak ingin menunggu hingga setiap komponen dibuat sebelum pengujian.
- Pembuatan prototipe: Dalam pengembangan perangkat lunak, seringkali diperlukan untuk memvalidasi sebuah ide sebelum semua detail tersedia. Menggunakan bahasa scripting seperti python dan API DDS yang disederhanakan, membuatnya sangat sederhana dan cepat untuk mengembangkan demo atau bukti konsep – menggunakan kode urutan yang lebih kecil!
- Antarmuka pengguna: mengembangkan UI sederhana (memvisualisasikan atau mengirim data DDS menggunakan tombol dan pemicu sederhana) menjadi sangat mudah saat Konektor RTI dipasangkan dengan teknologi UI yang tersedia untuk python, seperti python QT.
- Integrasi: Python, dan bahasa skrip lainnya, hadir dengan ekosistem yang sangat besar. Pada saat blog ini ditulis, PyPl memiliki 112.439 paket. Jika Anda mencoba mengintegrasikan sesuatu, kemungkinan besar ada paket python yang akan membantu Anda dan sekarang Anda dapat menggunakan Konektor untuk berbicara DDS!
- Kasus penggunaan Anda di sini: beri tahu kami jika Anda menggunakan Konektor RTI dengan cara yang berbeda di forum kami!
Memulai RTI
Dalam posting blog ini kami menganggap Anda sudah familiar dengan python. Konektor RTI bekerja baik dengan python 3 dan <3. Ini didukung di semua sistem perusahaan besar dan juga di papan seperti Raspberry Pi. Anda dapat melihat daftar platform yang tersedia di sini. Jika Anda membutuhkan dukungan untuk hal lain jangan ragu untuk bertanya di forum. Untuk menginstal RTI Connector untuk Connext DDS dengan python Anda dapat menggunakan paket yang tersedia di PyPI:
pip install rticonnextdds_connector
Cara lain adalah dengan mengkloning repositori:
git clone https://github.com/rticommunity/rticonnextdds-connector.git
Dalam repositori, Anda juga akan menemukan beberapa contoh untuk memulai:
- simple/writer.js:menunjukkan cara membuat penulis, menyetel instance, dan memublikasikan sampel.
- simple/reader.js:mendemonstrasikan cara mendapatkan pembaca, mendapatkan sampel, dan mengakses kontennya.
- simple/read_and_write.py:menunjukkan cara menulis sampel untuk setiap kolom yang diterima setelah membalik dua kolom.
- campuran/:contoh ini diperbarui secara berkala dan berisi contoh berbeda tentang cara mengakses panjang urutan, cara menggunakan wait() dan banyak lagi.
Ikhtisar API
Mari kita lihat seperti apa API itu. Jika Anda menginginkan informasi lebih detail, Anda dapat melihat README di repositori GitHub kami.
Hal pertama yang harus dilakukan adalah mengimpor perpustakaan Konektor RTI:
impor rticonnextdds_connector sebagai rti
Setelah Anda memiliki referensi ke Konektor RTI, Anda dapat memanggil API untuk membuat Konektor baru:
konektor =rti.Connector("MyParticipantLibrary::Zero","./ShapeExample.xml");
String pertama adalah nama konfigurasi yang ingin Anda gunakan, sedangkan string kedua adalah file XML yang berisi konfigurasi XML-Base App Creation. Anda dapat melihat contoh file tersebut di sini.
Setelah konektor dibuat, Anda dapat mengakses semua Penulis Data menggunakan API getOutput:
output =connector.getOutput("MyPublisher::MySquareWriter")
atau Anda dapat mengakses Pembaca Data dengan cara yang sama:
input =connector.getInput("MySubscriber::MySquareReader");
Kedua API mendapatkan satu string sebagai parameter yang mewakili nama entitas seperti yang didefinisikan dalam file XML.
Setelah Anda memiliki referensi ke Penulis Data (output dalam contoh kami), Anda dapat mengatur bidang instance terkait. Anda dapat melakukannya melalui kamus:
output.instance.setDictionary(contoh);
atau dengan menyetel setiap bidang satu per satu:
output.instance.setNumber("y", 2);
Di sisi Pembaca Data (masukkan dalam contoh ini), Anda dapat memanggil read atau take:
input.read();
atau
input.take();
Kemudian, Anda dapat mengulangi melalui sampel yang diterima:
numOfSamples =input.samples.getLength();
untuk j dalam rentang (1, numOfSamples+1):
jika input.infos.isValid(j):
x =input.samples.getNumber(j, "x");
y =input.samples.getNumber(j, "y");
....
Sampel dapat diakses dengan dua cara. Sebagai kamus:
sample =input.samples.getDictionary(j);
atau bidang demi bidang:
y =input.samples.getNumber(j, "y");
size =input.samples.getNumber(j, "shapesize");
Ingatlah untuk melindungi akses ke Konektor Anda jika Anda menggunakan pustaka multithreading. Anda dapat menemukan contoh tentang cara melakukannya di sini.
Semua Kekuatan Ini Ada Batasannya
Konektor RTI sangat bagus dan dapat memecahkan banyak tantangan! Tapi, seperti segalanya, itu tidak sempurna untuk semuanya. Ini memiliki kumpulan API yang terbatas:beberapa hal yang dapat Anda lakukan dengan Connext DDS Pro tidak dapat dilakukan dengan Konektor RTI. Ini hanya berfungsi dengan Data Dinamis dan tidak dengan tipe yang dikompilasi. Untuk membuatnya mudah digunakan dan untuk port, kami membuat beberapa asumsi dengan mempertimbangkan kasus penggunaan tertentu, ini mungkin tidak menyelesaikan kasus penggunaan spesifik Anda atau mungkin bukan cara yang paling efisien untuk menyelesaikannya, tetapi kami mungkin memiliki alat atau layanan lain untuk masalah spesifik Anda:tanyakan saja kepada kami!
Berapa?
Anda mungkin bertanya-tanya berapa biaya teknologi ini … gratis!! Anda bisa mendapatkannya dan bereksperimen dengannya. Yang kami minta hanyalah Anda memberi kami umpan balik dan saran Anda. Umpan balik ini akan dipertimbangkan saat kami memprioritaskan pembaruan dan fitur untuk disertakan dalam rilis produk kami di masa mendatang – sehingga Anda dapat membantu memengaruhi pet
[1] [2] 下一页