summaryrefslogtreecommitdiff
path: root/dds_io_pub/Writer.cpp
diff options
context:
space:
mode:
authorguest <guest@c30cbac5-9f56-4f76-8ed5-5c34e48a65ae>2007-10-10 15:01:48 +0000
committerguest <guest@c30cbac5-9f56-4f76-8ed5-5c34e48a65ae>2007-10-10 15:01:48 +0000
commite768f895bdd96b06761bea9a359580eb23997173 (patch)
treeb068f0d8424c57a915f74d3209c6c1943c9fc87d /dds_io_pub/Writer.cpp
parent6b370d6a7ecdc7c144d3f29372f64deebaa8e582 (diff)
git-svn-id: svn+ssh://mecka.net/home/svn/dds@7 c30cbac5-9f56-4f76-8ed5-5c34e48a65ae
Diffstat (limited to 'dds_io_pub/Writer.cpp')
-rw-r--r--dds_io_pub/Writer.cpp44
1 files changed, 24 insertions, 20 deletions
diff --git a/dds_io_pub/Writer.cpp b/dds_io_pub/Writer.cpp
index 82d5173..f0b16f0 100644
--- a/dds_io_pub/Writer.cpp
+++ b/dds_io_pub/Writer.cpp
@@ -76,39 +76,43 @@ Writer::svc ()
cout<<"Writer thread, DataWriter Cast ok\n";
struct timespec t_sleep;
- t_sleep.tv_sec = 1;
- t_sleep.tv_nsec = 500000;
+ t_sleep.tv_sec = 0;
+ t_sleep.tv_nsec = 10000;
IOTest::Port port_obj;
::DDS::InstanceHandle_t handle = port_dw->_cxx_register (port_obj);
port_obj.no = 1;
- port_obj.value = 0xff;
ACE_DEBUG((LM_DEBUG,
ACE_TEXT("%T (%P|%t) Writer::svc starting to write.\n")));
+
+ int actval, lastval = 0;
+
while(1) {
- ::DDS::ReturnCode_t ret = port_dw->write(port_obj, handle);
-
- if (ret != ::DDS::RETCODE_OK) {
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT("(%P|%t)ERROR Writer::svc, ")
- ACE_TEXT ("write() returned %d.\n"),
- ret));
- if (ret == ::DDS::RETCODE_TIMEOUT) {
- timeout_writes_ ++;
- }
- cout<<"?\n";
+
+ actval = io.get();
+
+ if ( lastval != actval ){
+
+ lastval = actval;
+ port_obj.value = actval;
+
+ ::DDS::ReturnCode_t ret = port_dw->write(port_obj, handle);
+
+ if (ret != ::DDS::RETCODE_OK)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT("(%P|%t)ERROR Writer::svc, ")
+ ACE_TEXT ("write() returned %d.\n"),
+ ret));
+
+ if (ret == ::DDS::RETCODE_TIMEOUT)
+ timeout_writes_ ++;
}
- if( port_obj.value == 0xff )
- port_obj.value = 0x00;
- else
- port_obj.value = 0xff;
-
nanosleep(&t_sleep, NULL);
- cout<<".\n";
+ //cout<<".\n";
}
} catch (CORBA::Exception& e) {