사물 인터넷 기술
DDS용 최신 C++ API를 도입한 이후로 고객의 많은 관심을 받았습니다. 그들 중 몇몇은 C++11에서 완전히 새로운 시스템을 개발하기 시작했습니다. 또한 API를 지속적으로 개선해 왔으며 크고 작은 몇 가지 새로운 기능에 대해 이야기하고 싶습니다.
C++에 대한 향상된 IDL 매핑. 코드 생성기는 최신 C++에 대한 새롭고 향상된 매핑을 제공합니다. 새로운 옵션 -stl , -언어와 결합 C++03 또는 언어 C++11 가능합니다.
이 옵션은 다음 IDL 유형의 매핑을 변경합니다.
<울>std::vector
에 매핑됩니다. (이를 위해서는 -unboundedSupport가 필요합니다. )rti::core::
에 매핑됩니다. bounded_sequencestd::vector
에 매핑하도록 선택할 수 있습니다. 새로운 @use_vector IDL 주석도 함께 제공됩니다.std::string,
에 매핑됩니다. 및 std::wstring
각각.dds::core::external,
shared_ptr.
과(와) 유사합니다. 이 래퍼는 원시 포인터에 대한 이전 매핑에 대한 보다 안전한 대안을 제공합니다. 미들웨어에서 메모리를 대여할 때 외부 멤버를 덮어쓸 수 없습니다(예:LoanedSamples
컨테이너).예를 들어, 다음 IDL 유형이 주어진 경우:
<사전>구조 MyType {이것은 생성된 C++11 유형이 "-stl"로 표시되는 방식입니다.
(전체 명령어:rtiddsgen -language C++11 -stl -unboundedSupport MyType.idl )
클래스 MyType {
공공의:
내 취향();
...
MyType(MyType&&) =기본값;
MyType&연산자=(MyType&&) =기본값;
MyType&operator=(const MyType&) =기본값;
MyType(const MyType&) =기본값;
std::vector&my_unbounded_seq() noexcept;
const std::vector&my_unbounded_seq() const noexcept;
무효 my_unbounded_seq(const std::vector&값);
rti::core::bounded_sequence&my_bounded_seq() noexcept;
const rti::core::bounded_sequence&my_bounded_seq() const noexcept;
무효 my_bounded_seq(const rti::core::bounded_sequence&값);
std::vector&my_other_bounded_seq() noexcept;
const std::vector&my_other_bounded_seq() const noexcept;
무효 my_other_bounded_seq(const std::vector&값);
std::string&my_str() noexcept;
const std::string&my_str() const noexcept;
무효 my_str(const std::string&값);
dds::core::external&my_external() noexcept;
const dds::core::external&my_external() const noexcept;
무효 my_external(dds::core::external값);
...
};
요청-응답 API. 최신 C++용 새로운 요청-회신 API는 rti::request::Requester
두 개의 엔터티로 DDS API를 확장합니다. 및 rti::request::Replier
. 이 API는 이미 다른 언어로 제공되었으며 현재 최신 C++에서 5.3의 프로토타입으로 제공되고 5.3.0.7의 프로덕션 준비가 완료되었습니다.
여기에서 간단한 코드 예제를 볼 수 있습니다.
소규모 개선이 추가되었습니다. API를 더 쉽게 사용할 수 있도록 합니다. 예를 들어 WaitSet에서 Condition을 전달하기 위해 핸들러를 사용하는 방법을 단순화했습니다. 이전에는 핸들러가 인수가 없는 펑터여야 했습니다. 이제 조건을 인수로 사용할 수 있습니다.
<사전>condition.handler([]() {
또한 새로운 연결 기능으로 API를 최신 상태로 유지했습니다. , 5.3에서 소개한 TopicQuery와 같은. 주제 쿼리는 애플리케이션이 요청 시 기록 데이터를 수신할 수 있는 확장 가능한 메커니즘을 제공합니다.
최신 C++ API에서는 다음과 같이 DataReader에서 TopicQuery 인스턴스를 만들 수 있습니다.
rti::sub::TopicQuery my_topic_query(
my_reader,
rti::sub::TopicQuerySelection(dds::topic::Filter("x <10")));
이제 my_reader를 사용하여 필터를 통과하는 일치하는 모든 DataWriter에서 기록 데이터 샘플을 가져올 수 있습니다. 평소와 같이 "라이브" 데이터를 계속 읽을 수도 있습니다.
C++17이 승인되고 C++20이 곧 출시됨에 따라 흥미로운 기능으로 C++ API를 계속 업데이트하고 현대화하고 있습니다. 최신 업데이트를 모두 보려면 계속 지켜봐 주시거나 RTI 블로그를 구독하십시오!
사물 인터넷 기술
C++이란 무엇입니까? C++는 범용 프로그래밍 언어에서 널리 사용됩니다. 언어를 사용하면 고급 및 저급 언어 기능을 캡슐화할 수 있습니다. 따라서 중급 언어로 간주됩니다. 또한 하드웨어 수준 코딩이 필요한 복잡한 시스템을 개발하는 데 사용되었습니다. 이 자습서에서는 다음을 배우게 됩니다. C++이란 무엇입니까? 파이썬이란 무엇입니까? 왜 파이썬인가? 왜 C++인가? C++의 기능 파이썬의 기능 C++ 응용 프로그램 파이썬 응용 프로그램 파이썬 대 C++ C++의 단점 파이썬의 단점 파이썬이란 무엇입니까?
새로운 컨트롤과 CAD/CAM 기술이 생산성을 크게 향상시키고 있습니다. 컨트롤은 현대적인 제조를 가능하게 합니다. 컨트롤은 작업 현장 직원이 인더스트리 4.0 기술을 모니터링하는 데 도움이 됩니다. 컨트롤은 또한 작업 현장의 생산성을 향상시킵니다. 기술 회사들은 첨단 기술의 전진 모멘텀을 유지하기 위해 고안된 개선 사항을 강조하고 있습니다. 신세대 TNC 640 컨트롤 일리노이주 샴버그에 있는 Heidenhain Corp.는 TNC 640 기계 제어 장치의 새로운 Gen 3 버전을 강조하고 있습니다. 이 제어 기능은 3축 밀