Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial Internet of Things >> Internet der Dinge-Technologie

Wesentliche Verbesserungen in RTI Connexts Modern C++ DDS API

Wesentliche Verbesserungen in RTI Connexts Modern C++ DDS API

Seit wir die Modern C++ API für DDS eingeführt haben, sehen wir signifikantes Interesse von unseren Kunden. Viele haben begonnen, neue Systeme mit C++11 zu bauen, und wir haben die API mit einer Reihe wirkungsvoller Verbesserungen kontinuierlich verfeinert.

Verbessertes IDL-Mapping zu Modern C++

RTIs Code Generator bietet nun eine neue -stl Option, verwendet in Kombination mit -language C++03 oder -language C++11. Diese Option aktualisiert das Mapping mehrerer IDL-Typen:

Beispiel: Gegeben der folgende IDL-Typ:

struct MyType { sequence<long> my_unbounded_seq; sequence<long, 10> my_bounded_seq; @use_vector sequence<long, 10> my_other_bounded_seq string my_str; @external long my_external; };

Mit dem Kommando rtiddsgen -language C++11 -stl -unboundedSupport MyType.idl sieht die generierte C++11-Klasse so aus:

class MyType { public: MyType(); ... MyType (MyType&&) = default; MyType& operator=(MyType&&) = default; MyType& operator=(const MyType&) = default; MyType(const MyType&) = default; std::vector<int32_t>& my_unbounded_seq() noexcept; const std::vector<int32_t>& my_unbounded_seq() const noexcept; void my_unbounded_seq(const std::vector<int32_t>& value); rti::core::bounded_sequence<int32_t, 10>& my_bounded_seq() noexcept; const rti::core::bounded_sequence<int32_t, 10>& my_bounded_seq() const noexcept; void my_bounded_seq(const rti::core::bounded_sequence<int32_t, 10>& value); std::vector<int32_t>& my_other_bounded_seq() noexcept; const std::vector<int32_t>& my_other_bounded_seq() const noexcept; void my_other_bounded_seq(const std::vector<int32_t>& value); std::string& my_str() noexcept; const std::string& my_str() const noexcept; void my_str(const std::string& value); dds::core::external<int32_t>& my_external() noexcept; const dds::core::external<int32_t>& my_external() const noexcept; void my_external(dds::core::external<int32_t> value); ... };

Request-Reply API für Modern C++

Die API umfasst nun zwei neue Entitäten: rti::request::Requester und rti::request::Replier. Diese bieten ein natives Request-Reply-Pattern, das bereits in anderen Sprachen verfügbar ist und in Version 5.3 als Prototyp eingeführt sowie in 5.3.0.7 production-ready gemacht wurde.

Ein prägnantes Code-Beispiel ist hier verfügbar.

Kleinere API-Verbesserungen

Wir haben mehrere häufige Aufgaben vereinfacht:

condition.handler([]() { // do something }); // or, with the new signature condition.handler([](dds::core::cond::Condition c) { // do something (condition == c) });

TopicQuery für On-Demand-Historische Daten

TopicQuery, eingeführt in 5.3, erlaubt Applikationen, historische Daten on-demand abzurufen. In der Modern C++ API können Sie einen TopicQuery von einem DataReader so erstellen:

rti::sub::TopicQuery my_topic_query( my_reader, rti::sub::TopicQuerySelection(dds::topic::Filter("x < 10")) );

Sie können dann historische Samples, die den Filter matchen, entnehmen, während Sie Live-Daten normal weiter empfangen.

Ausblick

Mit C++17 nun approbiert und C++20 am Horizont, wird RTI Connext die C++ API kontinuierlich mit modernen Sprachfeatures und Performance-Verbesserungen weiterentwickeln. Bleiben Sie dran oder abonnieren Sie den RTI Blog für die neuesten Updates.

Internet der Dinge-Technologie

  1. IoT: Treiber der digitalen Renaissance der High Street
  2. Third-Generation Stream Processing: IoT-Daten in Echtzeit-Action verwandeln
  3. Warum der 5G-Rollout stockt: Kosten, Spektrum und Abdeckungsherausforderungen
  4. Edge Computing: Echtzeit-Daten freisetzen, Effizienz steigern, neue Revenue treiben
  5. G.hn: Die Industrial IoT Revolution für kosteneffiziente, zuverlässige Konnektivität antreiben
  6. Smart Manufacturing für das New Normal neu denken: Datengetriebene Strategien für Resilienz
  7. Daten: Das neue Öl – Wie Raffinerien rohe Information in Business Value verwandeln
  8. Der IT/OT-Hybrid-Profi: Brückenbauer zwischen Rechenzentren und Industrieautomation
  9. Microsoft eröffnet KI-Forschungsinkubator für General-Purpose-Intelligenz
  10. std::list in C++ meistern: Syntax, Funktionen & praktische Beispiele