Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial Internet of Things >> Tecnologia da Internet das Coisas

Principais Aprimoramentos na API Modern C++ DDS do RTI Connext

Principais Aprimoramentos na API Modern C++ DDS do RTI Connext

Desde que introduzimos a API modern C++ para DDS, vimos interesse significativo de nossos clientes. Muitos começaram a construir novos sistemas usando C++11, e continuamos refinando a API com diversos aprimoramentos impactantes.

Mapeamento IDL Aprimorado para Modern C++

Code Generator da RTI agora oferece nova opção -stl, usada em conjunto com -language C++03 ou -language C++11. Esta opção atualiza mapeamento de vários tipos IDL:

Por exemplo, dado o seguinte tipo IDL:

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; };

Usando comando rtiddsgen -language C++11 -stl -unboundedSupport MyType.idl, a classe C++11 gerada parece assim:

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); ... };

API Request-Reply para Modern C++

A API agora inclui duas novas entidades: rti::request::Requester e rti::request::Replier. Estas fornecem padrão nativo request-reply, já disponível em outras linguagens e introduzido em protótipo na versão 5.3 e production-ready em 5.3.0.7.

Exemplo de código conciso disponível aqui.

Pequenos Aprimoramentos da API

Simplificamos várias tarefas comuns:

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

TopicQuery para Dados Históricos On-Demand

TopicQuery, introduzido na 5.3, permite aplicações recuperarem dados históricos on-demand. Na API modern C++ você pode criar TopicQuery de um DataReader assim:

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

Você pode então take historical samples que match o filter enquanto ainda recebe dados live normalmente.

Olhando Adiante

Com C++17 agora aprovado e C++20 no horizonte, RTI Connext continuará evoluindo API C++ com features de linguagem moderna e melhorias de performance. Fique ligado ou assine RTI Blog para últimas atualizações.

Tecnologia da Internet das Coisas

  1. IoT: Impulsionando o Renascimento Digital do Varejo Físico
  2. Processamento de Stream de Terceira Geração: Transformando Dados IoT em Ação em Tempo Real
  3. Por que o Lançamento do 5G Está Lento: Custos, Espectro e Desafios de Cobertura
  4. Edge Computing: Desbloqueando Dados em Tempo Real, Aumentando Eficiência e Impulsionando Nova Receita
  5. G.hn: Impulsionando a Revolução IIoT Industrial para Conectividade Custo-Efetiva e Fiável
  6. Repensando Manufatura Inteligente para o Novo Normal: Estratégias Data-Driven para Resiliência
  7. Dados: O Novo Petróleo — Como Refinarias Transformam Informação Bruta em Valor de Negócio
  8. Conheça o Profissional Híbrido TI/OT: Unindo Data Centers e Automação Industrial
  9. Microsoft Revela Incubadora de Pesquisa em IA Focada em Inteligência de Propósito Geral
  10. Dominando std::list em C++: Sintaxe, Funções e Exemplos Práticos