blob: d82a13adc9cf3fa25db56fecd7bc9b453e328c5f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2016 - 2017 fortiss GmbH
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Ben Schneider
* - initial implementation and documentation
*******************************************************************************/
#include "ROSManager.h"
#include <ros/ros.h>
//------------------------- CROSLayer::CROSManager -------------------------
DEFINE_HANDLER(CROSManager);
CROSManager::CROSManager(CDeviceExecution& paDeviceExecution) : CExternalEventHandler(paDeviceExecution),
CThread(/* long stacksize , 3500*/){
start();
}
CROSManager::~CROSManager(){
end();
}
void CROSManager::enableHandler(){
}
void CROSManager::disableHandler(){
ros::shutdown();
}
void CROSManager::setPriority(int){
//FIXME adjust thread priority correctly
}
int CROSManager::getPriority() const{
return 0;
}
void CROSManager::startChain(CEventSourceFB *pa_poECStartF){
if(0 != pa_poECStartF){
startNewEventChain(pa_poECStartF);
}
}
void CROSManager::run(){
while(isAlive() && ros::ok()){
ros::spinOnce();
}
}
std::string CROSManager::ciecStringToStdString(const CIEC_STRING &pa_DataInput){
return std::string(pa_DataInput.getValue());
}
CIEC_STRING CROSManager::stdStringToCiecString(const std::string &pa_inputString){
int stringLength = static_cast<int>(std::strlen(pa_inputString.c_str()));
CIEC_STRING tmpString;
tmpString.assign(pa_inputString.c_str(), static_cast<TForteUInt16>(stringLength));
return tmpString;
}