dds

所属分类:其他
开发工具:C++
文件大小:0KB
下载次数:1
上传日期:2024-01-13 01:48:53
上 传 者sh-1993
说明:  通过DDS连接分布式C++应用程序。网络服务器
(Connecting distributed C++ applications through DDS.Net Server)

文件列表:
.assets/
src/
dds.net-connector-cpp.sln

            # DDS.Net C++ Connector - v1.3.2 *DDS.Net C++ Connector* intends to be a lightweight and performant connector for connecting distributed C++ applications through *DDS.Net Server*. The supported data types are: | Main type | Sub-type | Represented data | |----------------------------------------------------|-------------------|-----------------------------------------------------| | ***Primitive***           | *String* | Sequence of characters in Unicode | | | *Boolean* | A boolean (True or False) | | | *Byte* | 1-byte Signed Integer | | | *Word* | 2-byte Signed Integer | | | *DWord* | 4-byte Signed Integer | | | *QWord* | 8-byte Signed Integer | | | *Unsigned Byte* | 1-byte Unsigned Integer | | | *Unsigned Word* | 2-byte Unsigned Integer | | | *Unsigned DWord* | 4-byte Unsigned Integer | | | *Unsigned QWord* | 8-byte Unsigned Integer | | | *Single* | A single precision (4-byte) Floating-point number | | | *Double* | A double precision (8-byte) Floating-point number | | ***Raw Bytes*** | - | Sequence of bytes |   > Data transfer with the server is only done when there is change in value > Value subscribers are only invoked upon corresponding value changes   ## Providers and Consumers In this context, ***Providers*** are functions that provide data to the library for transferring to the target *DDS.Net Server* for onward sharing with corresponding consumers; and ***Consumers*** are functions that consume delivered data from connected *DDS.Net Server* through the library. Function signatures and their corresponding library registration functions are enlisted here. ### String > Provider: *     Registration function:     dds::net::connector::DdsConnector::***registerStringProvider*** *     Function signature:     ***std::string*** (\*provider)(const std::string& ***varName***) > Consumer: *     Registration function:     dds::net::connector::DdsConnector::***registerStringConsumer*** *     Function signature:     void (\*consumer)(const std::string& ***varName***, const std::string& ***value***) ### Boolean > Provider: *     Registration function:     dds::net::connector::DdsConnector::***registerBooleanProvider*** *     Function signature:     ***bool*** (\*provider)(const std::string& ***varName***) > Consumer: *     Registration function:     dds::net::connector::DdsConnector::***registerBooleanConsumer*** *     Function signature:     void (\*consumer)(const std::string& ***varName***, bool ***value***) ### Byte > Provider: *     Registration function:     dds::net::connector::DdsConnector::***registerByteProvider*** *     Function signature:     ***char*** (\*provider)(const std::string& ***varName***) > Consumer: *     Registration function:     dds::net::connector::DdsConnector::***registerByteConsumer*** *     Function signature:     void (\*consumer)(const std::string& ***varName***, char ***value***) ### Word > Provider: *     Registration function:     dds::net::connector::DdsConnector::***registerWordProvider*** *     Function signature:     ***short*** (\*provider)(const std::string& ***varName***) > Consumer: *     Registration function:     dds::net::connector::DdsConnector::***registerWordConsumer*** *     Function signature:     void (\*consumer)(const std::string& ***varName***, short ***value***) ### DWord > Provider: *     Registration function:     dds::net::connector::DdsConnector::***registerDWordProvider*** *     Function signature:     ***long*** (\*provider)(const std::string& ***varName***) > Consumer: *     Registration function:     dds::net::connector::DdsConnector::***registerDWordConsumer*** *     Function signature:     void (\*consumer)(const std::string& ***varName***, long ***value***) ### QWord > Provider: *     Registration function:     dds::net::connector::DdsConnector::***registerQWordProvider*** *     Function signature:     ***long long*** (\*provider)(const std::string& ***varName***) > Consumer: *     Registration function:     dds::net::connector::DdsConnector::***registerQWordConsumer*** *     Function signature:     void (\*consumer)(const std::string& ***varName***, long long ***value***) ### Unsigned Byte > Provider: *     Registration function:     dds::net::connector::DdsConnector::***registerUnsignedByteProvider*** *     Function signature:     ***unsigned char*** (\*provider)(const std::string& ***varName***) > Consumer: *     Registration function:     dds::net::connector::DdsConnector::***registerUnsignedByteConsumer*** *     Function signature:     void (\*consumer)(const std::string& ***varName***, unsigned char ***value***) ### Unsigned Word > Provider: *     Registration function:     dds::net::connector::DdsConnector::***registerUnsignedWordProvider*** *     Function signature:     ***unsigned short*** (\*provider)(const std::string& ***varName***) > Consumer: *     Registration function:     dds::net::connector::DdsConnector::***registerUnsignedWordConsumer*** *     Function signature:     void (\*consumer)(const std::string& ***varName***, unsigned short ***value***) ### Unsigned DWord > Provider: *     Registration function:     dds::net::connector::DdsConnector::***registerUnsignedDWordProvider*** *     Function signature:     ***unsigned long*** (\*provider)(const std::string& ***varName***) > Consumer: *     Registration function:     dds::net::connector::DdsConnector::***registerUnsignedDWordConsumer*** *     Function signature:     void (\*consumer)(const std::string& ***varName***, unsigned long ***value***) ### Unsigned QWord > Provider: *     Registration function:     dds::net::connector::DdsConnector::***registerUnsignedQWordProvider*** *     Function signature:     ***unsigned long long*** (\*provider)(const std::string& ***varName***) > Consumer: *     Registration function:     dds::net::connector::DdsConnector::***registerUnsignedQWordConsumer*** *     Function signature:     void (\*consumer)(const std::string& ***varName***, unsigned long long ***value***) ### Single > Provider: *     Registration function:     dds::net::connector::DdsConnector::***registerSingleProvider*** *     Function signature:     ***float*** (\*provider)(const std::string& ***varName***) > Consumer: *     Registration function:     dds::net::connector::DdsConnector::***registerSingleConsumer*** *     Function signature:     void (\*consumer)(const std::string& ***varName***, float ***value***) ### Double > Provider: *     Registration function:     dds::net::connector::DdsConnector::***registerDoubleProvider*** *     Function signature:     ***double*** (\*provider)(const std::string& ***varName***) > Consumer: *     Registration function:     dds::net::connector::DdsConnector::***registerDoubleConsumer*** *     Function signature:     void (\*consumer)(const std::string& ***varName***, double ***value***) ### Raw Bytes > Provider: *     Registration function:     dds::net::connector::DdsConnector::***registerRawBytesProvider*** *     Function signature:     ***int*** (\*provider)(const std::string& ***varName***, unsigned char\* ***in_buff***, int ***size***) > Consumer: *     Registration function:     dds::net::connector::DdsConnector::***registerRawBytesConsumer*** *     Function signature:     void (\*consumer)(const std::string& ***varName***, unsigned char\* ***in_buff***, int ***size***)   ## Sample application Sample use of the library is done in following simple application: ```cpp #include #include #include #include #include "ddsconnector.h" using namespace std; using namespace dds::net::connector; void wait_for_exit_key(); void my_double_consumer(std::string& variableName, double variableValue); int main() { string appName = "DDS.Net C++ Connected App"; string serverIP = "127.0.0.1"; unsigned short serverPort = 44556; cout << appName << endl; cout << "-----" << endl; cout << "Press Ctrl+C / input 'C' to exit." << endl << endl; try { DdsConnector connector( appName, serverIP, serverPort, new ConsoleLogger()); connector.registerDoubleConsumer("TESTX", my_double_consumer, ON_CHANGE); connector.registerDoubleConsumer("TESTY", my_double_consumer, ON_CHANGE); connector.start(); wait_for_exit_key(); connector.stop(); } catch (exception& ex) { cout << "Error! " << ex.what() << endl; } cout << endl << endl << endl; } void wait_for_exit_key() { char ch; while ((ch = getc(stdin)) != 'C'); } static double x, y; void my_double_consumer(std::string& variableName, double variableValue) { if (variableName == "TESTX") { x = variableValue; } else if (variableName == "TESTY") { y = variableValue; cout << x << ", " << y << endl; } } ```

近期下载者

相关文件


收藏者