binary_serialize_monitored_items.cpp
Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 #include "common.h"
00012 
00013 #include <opc/ua/protocol/extension_identifiers.h>
00014 #include <opc/ua/protocol/message_identifiers.h>
00015 #include <opc/ua/protocol/monitored_items.h>
00016 #include <opc/ua/protocol/binary/stream.h>
00017 #include <opc/ua/protocol/types.h>
00018 
00019 #include <algorithm>
00020 #include <stdexcept>
00021 class MonitoredItemsSerialization : public OpcUaBinarySerialization
00022 {
00023 };
00024 
00025 class MonitoredItemsDeserialization : public OpcUaBinaryDeserialization
00026 {
00027 };
00028 
00029 
00030 //-------------------------------------------------------
00031 // std::vector<MonitoredItemCreateResult>
00032 //-------------------------------------------------------
00033 
00034 // TEST_F(MonitoredItemsSerialization, DISABLED_std::vector<MonitoredItemCreateResult>)
00035 // {
00036 //   using namespace OpcUa;
00037 //   using namespace OpcUa::Binary;
00038 //
00039 //   MonitoredItemCreateResult monitoringResult;
00040 //   monitoringResult.Status = StatusCode::BadNotImplemented;
00041 //   monitoringResult.MonitoredItemId = 1;
00042 //   monitoringResult.RevisedSamplingInterval = 1200000;
00043 //   monitoringResult.RevisedQueueSize = 3;
00044 //   //monitoringResult.ExtensionObjectHeader FilterResult;
00045 //
00046 //   std::vector<MonitoredItemCreateResult> data;
00047 //   data.push_back(monitoringResult);
00048 //
00049 //   GetStream() << data << flush;
00050 //
00051 //   const std::vector<char> expectedData = {
00052 //     1,0,0,0,         // Results count
00053 //     0,0,(char)0x40,(char)0x80,   // StatusCode
00054 //     1,0,0,0,         // MonitoredItemId
00055 //     0,0,0,0,(char)0x80,(char)0x4f,(char)0x32,(char)0x41, // RevisedSamplingInterval
00056 //     3,0,0,0,         // RevisedQueueSize
00057 //     0,0,0,           // FilterResult (empty Extension object)
00058 //
00059 //     0,0,0,0  // Diagnostics Count
00060 //   };
00061 //
00062 //   EXPECT_EQ(expectedData, GetChannel().SerializedData) <<
00063 //       "Expected:" << std::endl <<
00064 //       PrintData(expectedData) << std::endl <<
00065 //       "Serialized:" << std::endl <<
00066 //       PrintData(GetChannel().SerializedData) <<
00067 //       std::endl;
00068 //
00069 //   EXPECT_EQ(expectedData.size(), RawSize(data));
00070 // }
00071 
00072 TEST_F(MonitoredItemsSerialization, DISABLED_CreateMonitoredItemsResponse)
00073 {
00074   using namespace OpcUa;
00075   using namespace OpcUa::Binary;
00076 
00077   CreateMonitoredItemsResponse response;
00078 
00079   MonitoredItemCreateResult monitoringResult;
00080   monitoringResult.Status = StatusCode::BadNotImplemented;
00081   monitoringResult.MonitoredItemId = 1;
00082   monitoringResult.RevisedSamplingInterval = 1200000;
00083   monitoringResult.RevisedQueueSize = 3;
00084   //monitoringResult.ExtensionObjectHeader FilterResult;
00085 
00086   response.Results.push_back(monitoringResult);
00087 
00088 
00089   ASSERT_EQ(response.TypeId.Encoding, EV_FOUR_BYTE);
00090   ASSERT_EQ(response.TypeId.FourByteData.NamespaceIndex, 0);
00091   ASSERT_EQ(response.TypeId.FourByteData.Identifier, OpcUa::CREATE_MONITORED_ITEMS_RESPONSE);
00092 
00093   FILL_TEST_RESPONSE_HEADER(response.Header);
00094 
00095   GetStream() << response << flush;
00096 
00097   const std::vector<char> expectedData = {
00098     1, 0, (char)0xF2, 0x2, // TypeId
00099     // RequestHeader
00100     TEST_RESPONSE_HEADER_BINARY_DATA,
00101 
00102     1,0,0,0,         // Results count
00103     0,0,(char)0x40,(char)0x80,   // StatusCode
00104     1,0,0,0,         // MonitoredItemId
00105     0,0,0,0,(char)0x80,(char)0x4f,(char)0x32,(char)0x41, // RevisedSamplingInterval
00106     3,0,0,0,         // RevisedQueueSize
00107     0,0,0,           // FilterResult (empty Extension object)
00108 
00109     0,0,0,0  // Diagnostics Count
00110   };
00111 
00112   ASSERT_EQ(expectedData, GetChannel().SerializedData) <<
00113       "Expected: " << std::endl << PrintData(expectedData) << std::endl <<
00114       "Serialized: " << std::endl << PrintData(GetChannel().SerializedData) << std::endl;
00115   ASSERT_EQ(expectedData.size(), RawSize(response));
00116 }
00117 


ros_opcua_impl_freeopcua
Author(s): Denis Štogl
autogenerated on Sat Jun 8 2019 18:24:39