static bool wait_for_readers(DDS.DataWriter writer, int howmany_dr)
        {
            SensorDataDataWriter sensor_data_writer = (SensorDataDataWriter)writer;

            DDS.InstanceHandleSeq sub_handle_seq = new DDS.InstanceHandleSeq();
            int interval_milisec = 100;

            Console.WriteLine("waiting for discovery");

            for (var i = 0; i <= 200; i++)
            {
                sensor_data_writer.get_matched_subscriptions(sub_handle_seq);

                if (sub_handle_seq.length >= howmany_dr)
                {
                    return(true);
                }

                System.Threading.Thread.Sleep(interval_milisec);
            }
            Console.WriteLine("Discovery not complete");
            return(false);
        }
        static bool wait_for_readers(DDS.DataWriter writer, int howmany_dr)
        {
            SensorDataDataWriter sensor_data_writer = (SensorDataDataWriter)writer;
            DDS.InstanceHandleSeq sub_handle_seq=new DDS.InstanceHandleSeq();
            int interval_milisec = 100;

            Console.WriteLine("waiting for discovery");

            for (var i = 0; i <= 200; i++)
            {
            sensor_data_writer.get_matched_subscriptions(sub_handle_seq);

            if (sub_handle_seq.length >= howmany_dr)
                return true;

            System.Threading.Thread.Sleep(interval_milisec);
            }
            Console.WriteLine("Discovery not complete");
            return false;
        }