Beispiel #1
0
        static void Main(String[] args)
        {
            RplidarNative rplidar = new RplidarNative();
            long          driver  = RplidarNative.createDriver();

            if (driver == 0)
            {
                Console.WriteLine("Failed to create driver...");
                return;
            }

            StringBuilder serialPort   = new StringBuilder("\\\\.\\COM3");
            bool          is_connected = RplidarNative.connect(driver, serialPort);

            if (!is_connected)
            {
                Console.WriteLine("Failed to bind " + serialPort);
                RplidarNative.disposeDriver(driver);
                return;
            }

            bool is_healthy = RplidarNative.checkHealth(driver);

            if (!is_healthy)
            {
                Console.WriteLine("RpLidar is not healthy.");
                RplidarNative.disposeDriver(driver);
                return;
            }

            RplidarNative.startScan(driver);
            MeasurementNode[] nodes = RplidarNative.getScanData(driver);
            if (nodes == null)
            {
                Console.WriteLine("No scan result.");
            }
            else
            {
                foreach (MeasurementNode node in nodes)
                {
                    Console.WriteLine(node.angle + " " + node.distance + " " + node.sync_quality);
                }
            }
            RplidarNative.stopScan(driver);
            RplidarNative.disposeDriver(driver);
        }
Beispiel #2
0
 public void close()
 {
     try
     {
         semaphoreDriver.WaitOne();
         if (rplidar != null && driver > 0)
         {
             RplidarNative.stopScan(driver);
             RplidarNative.disposeDriver(driver);
         }
         rplidar = null;
         driver  = 0;
         semaphoreDriver.Release();
     }
     catch (ThreadInterruptedException e)
     {
         Console.WriteLine(e.Message);
     }
     isRunning = false;
 }