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

Was ist neu in der modernen C++-API?

Seit wir die moderne C++ API für DDS eingeführt haben, haben wir großes Interesse bei unseren Kunden festgestellt. Einige von ihnen haben damit begonnen, brandneue Systeme in C++11 zu entwickeln. Wir haben auch die API ständig verbessert und es gibt ein paar neue Funktionen, große und kleine, über die ich hier sprechen wollte.

Verbesserte IDL-Zuordnung zu C++. Der Code Generator bietet eine neue, verbesserte Zuordnung zu modernem C++. Eine neue Option, -stl , kombiniert mit -Sprache C++03 oder -Sprache C++11 aktiviert es.

Diese Option ändert die Zuordnung der folgenden IDL-Typen:

Zum Beispiel bei folgendem IDL-Typ:

struct MyType { 
Sequenz my_unbounded_seq;
Sequence my_bounded_seq;
@use_vector sequence my_other_bounded_seq
Zeichenfolge my_str;
@external long my_external;
};

So sieht der generierte C++11-Typ mit „-stl“ aus

(Vollständiger Befehl:rtiddsgen -language C++11 -stl -unboundedSupport MyType.idl )

Klasse MyType { 

allgemein:
Mein Typ();
...

MyType (MyType&&) =Standard;
MyType&operator=(MyType&&) =Standard;
MyType&operator=(const MyType&) =Standard;
MyType(const MyType&) =Standard;

std::vector&my_unbounded_seq() noexcept;
const std::vector&my_unbounded_seq() const noexcept;
void my_unbounded_seq(const std::vector&Wert);

rti::core::bounded_sequence&my_bounded_seq() noexcept;
const rti::core::bounded_sequence&my_bounded_seq() const noexcept;
void my_bounded_seq(const rti::core::bounded_sequence&Wert);

std::vector&my_other_bounded_seq() noexcept;
const std::vector&my_other_bounded_seq() const noexcept;
void my_other_bounded_seq(const std::vector&Wert);

std::string&my_str() noaußer;
const std::string&my_str() const noexcept;
void my_str(const std::string&value);

dds::core::external&my_external() noexcept;
const dds::core::external&my_external() const noexcept;
void my_external(dds::core::external Wert);

...
};

Anfrage-Antwort-API. Die neue Request-Reply-API für modernes C++ erweitert die DDS-API um zwei Entitäten:rti::request::Requester undrti::request::Replier . Diese API war bereits in anderen Sprachen verfügbar und ist jetzt in modernem C++ als Prototyp in 5.3 und produktionsreif in 5.3.0.7 verfügbar.

Ein einfaches Codebeispiel finden Sie hier.

Wir haben zusätzliche kleine Verbesserungen vorgenommen um die Verwendung der API zu vereinfachen. Zum Beispiel haben wir die Verwendung von Handlern zum Versenden von Bedingungen in einem WaitSet vereinfacht. Zuvor mussten Handler argumentlose Funktoren sein. Jetzt können sie die Bedingung als Argument verwenden.

condition.handler([]() { 
// etwas tun
});

// jetzt unterstützen wir auch
condition.handler([](dds::core::cond::Condition c) {
// etwas tun (Bedingung ==c)
});

Außerdem haben wir die API mit neuen Konnektivitätsfunktionen auf dem neuesten Stand gehalten , wie zum Beispiel TopicQuery, das wir in 5.3 eingeführt haben. Themenabfragen bieten einen skalierbaren Mechanismus für Anwendungen, um Verlaufsdaten bei Bedarf zu empfangen.
In der modernen C++-API können Sie eine TopicQuery-Instanz aus einem DataReader wie folgt erstellen:

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

Jetzt können Sie my_reader verwenden, um die historischen Datenproben von allen übereinstimmenden DataWritern zu entnehmen, die den Filter passieren. Sie können auch wie gewohnt „Live“-Daten lesen.

Mit C++17 gerade genehmigt und C++20 um die Ecke, aktualisieren und modernisieren wir unsere C++-API weiterhin mit aufregenden Funktionen. Bleiben Sie auf dem Laufenden oder abonnieren Sie einfach den RTI-Blog für die neuesten Updates!


Internet der Dinge-Technologie

  1. IoT läutet eine neue Ära für die High Street ein
  2. Datenstreaming eröffnet neue Möglichkeiten im IoT-Zeitalter
  3. Was wird die 5G-Einführung stoppen?
  4. Es ist Zeit für Veränderungen:Eine neue Ära am Rande
  5. G.hn öffnet die Tür zu neuen industriellen Möglichkeiten
  6. Intelligente Fertigung für die neue Normalität überdenken
  7. Wenn Daten das neue Öl sind, wer ist dann Ihre Raffinerie?
  8. Das Aufkommen einer neuen IT-Spezies:Der IT/OT-Hybridprofi
  9. Ist das Büro geschlossen? Microsoft kündigt neuen Inkubator für KI-Forschung an
  10. std::list in C++ mit Beispiel