text: // Copyright (c) 2020 Skarv Technologies AS
  // All rights reserved.
  //
  // Licensed under the Apache License, Version 2.0 (the "License");
  // you may not use this file except in compliance with the License.
  // You may obtain a copy of the License at
  //
  //     http://www.apache.org/licenses/LICENSE-2.0
  //
  // Unless required by applicable law or agreed to in writing, software
  // distributed under the License is distributed on an "AS IS" BASIS,
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  // See the License for the specific language governing permissions and
  // limitations under the License.
  //
  // Project: UWROSYS
  //          RobMoSys, Horizon 2020
  //
  // Author: Petter Norgren
  //
  
  #ifndef _SONARTASK_HH
  #define _SONARTASK_HH
  
  #include "SonarTaskCore.hh"
  
  #include "Queue.hh"
  
  #include <sensor_msgs/LaserScan.h>
  
  #include <mutex>
  
  class SonarTask  : public SonarTaskCore
  {
  private:
  	unsigned long int m_counter;
  	bool m_objectDetected;
  	Queue* m_queue;
  	std::mutex m_mtx;
  	CommBasicObjects::CommMobileLaserScan m_commMobileLaserScan;
  public:
  	SonarTask(SmartACE::SmartComponent *comp);
  	virtual ~SonarTask();
  	
  	virtual int on_entry();
  	virtual int on_execute();
  	virtual int on_exit();
  
  	void _sonar_cb (const sensor_msgs::LaserScan::ConstPtr &msg);
  	//void onMsg (const CommBasicObjects::CommBaseState &input);
  };
  
  #endif
  