Skip to content
Snippets Groups Projects
Commit 36d15874 authored by Johann Mantel's avatar Johann Mantel
Browse files

make Parameters optional by providing default values

parent dc03cebf
No related branches found
No related tags found
No related merge requests found
......@@ -31,9 +31,11 @@ find_path(sick_scan_base_INCLUDE_DIR_2 NAMES tinystr.h PATHS ${HEADER_SEARCH_PAT
find_path(sick_scan_base_INCLUDE_DIR_3 NAMES sick_scan/SickScanConfig.h PATHS ${HEADER_SEARCH_PATHS} NO_DEFAULT_PATH)
find_path(sick_scan_base_INCLUDE_DIR_4 NAMES dynamic_reconfigure/config_tools.h PATHS ${HEADER_SEARCH_PATHS} NO_DEFAULT_PATH)
find_path(sick_scan_base_INCLUDE_DIR_5 NAMES sick_scan/SickScanConfig.h PATHS ${HEADER_SEARCH_PATHS} NO_DEFAULT_PATH)
find_path(sick_scan_base_INCLUDE_DIR_6 NAMES sick_scan/rosconsole_simu.hpp PATHS ${HEADER_SEARCH_PATHS} NO_DEFAULT_PATH)
if(sick_scan_base_INCLUDE_DIR_0 AND sick_scan_base_INCLUDE_DIR_1 AND sick_scan_base_INCLUDE_DIR_2 AND sick_scan_base_INCLUDE_DIR_3 AND sick_scan_base_INCLUDE_DIR_4 AND sick_scan_base_INCLUDE_DIR_4)
set(sick_scan_base_INCLUDE_DIRS ${sick_scan_base_INCLUDE_DIR_0} ${sick_scan_base_INCLUDE_DIR_1} ${sick_scan_base_INCLUDE_DIR_2} ${sick_scan_base_INCLUDE_DIR_3} ${sick_scan_base_INCLUDE_DIR_4} ${sick_scan_base_INCLUDE_DIR_5})
if(sick_scan_base_INCLUDE_DIR_0 AND sick_scan_base_INCLUDE_DIR_1 AND sick_scan_base_INCLUDE_DIR_2 AND sick_scan_base_INCLUDE_DIR_3 AND sick_scan_base_INCLUDE_DIR_4 AND sick_scan_base_INCLUDE_DIR_5 AND sick_scan_base_INCLUDE_DIR_6)
set(sick_scan_base_INCLUDE_DIRS ${sick_scan_base_INCLUDE_DIR_0} ${sick_scan_base_INCLUDE_DIR_1} ${sick_scan_base_INCLUDE_DIR_2} ${sick_scan_base_INCLUDE_DIR_3} ${sick_scan_base_INCLUDE_DIR_4} ${sick_scan_base_INCLUDE_DIR_5} ${sick_scan_base_INCLUDE_DIR_6})
endif()
message(STATUS "sick_scan_base_INCLUDE_DIRS:${sick_scan_base_INCLUDE_DIRS}")
......
......@@ -143,7 +143,7 @@
# ArmarX.SickLaserUnit.ObjectName = ""
# ArmarX.SickLaserUnit.angleOffset: Offset to the LaserScanner Angle
# ArmarX.SickLaserUnit.angleOffset: offset to the scanning angle
# Attributes:
# - Default: 0
# - Case sensitivity: yes
......@@ -151,26 +151,134 @@
ArmarX.SickLaserUnit.angleOffset = 0.0
# ArmarX.SickLaserUnit.devices: List of Device Names
# ArmarX.SickLaserUnit.deviceNumber: number of the LaserScanner Device
# Attributes:
# - Default: Device1; Scanner2
# - Default: 0
# - Case sensitivity: yes
# - Required: no
# ArmarX.SickLaserUnit.deviceNumber = 0
# ArmarX.SickLaserUnit.devices: No Description
# Attributes:
# - Default: Device1; Scanner2
# - Case sensitivity: no
# - Required: no
ArmarX.SickLaserUnit.devices = Device1; Scanner2
# ArmarX.SickLaserUnit.laserScannerTopicName: Name of the published Topic
# ArmarX.SickLaserUnit.emulateSensor: overwrite the default Settings and don't connect to Scanner
# Attributes:
# - Default: false
# - Case sensitivity: yes
# - Required: yes
# - Required: no
# - Possible values: {0, 1, false, no, true, yes}
# ArmarX.SickLaserUnit.emulateSensor = false
# ArmarX.SickLaserUnit.hostname: Hostname of the LaserScanner
# Attributes:
# - Default: 192.168.8.133
# - Case sensitivity: yes
# - Required: no
# ArmarX.SickLaserUnit.hostname = 192.168.8.133
# ArmarX.SickLaserUnit.laserScannerTopicName: No Description
# Attributes:
# - Default: "SickTopic"
# - Case sensitivity: no
# - Required: no
ArmarX.SickLaserUnit.laserScannerTopicName = "SickTopic"
# ArmarX.SickLaserUnit.updatePeriod: Update every ? ms
# ArmarX.SickLaserUnit.newIpAddress: New IP address for the LaserScanner
# Attributes:
# - Default: 1
# - Default: ""
# - Case sensitivity: yes
# - Required: no
# ArmarX.SickLaserUnit.newIpAddress = ""
# ArmarX.SickLaserUnit.port: port to use on the LaserScanner
# Attributes:
# - Default: 2112
# - Case sensitivity: yes
# - Required: no
ArmarX.SickLaserUnit.port = 2112
# ArmarX.SickLaserUnit.protocol: Either use ASCII or Binary protocol
# Attributes:
# - Default: ASCII
# - Case sensitivity: yes
# - Required: no
# - Possible values: {ASCII, Binary}
ArmarX.SickLaserUnit.protocol = ASCII
# ArmarX.SickLaserUnit.rangeMax: maximum Range of the Scanner
# Attributes:
# - Default: 10
# - Case sensitivity: yes
# - Required: no
ArmarX.SickLaserUnit.rangeMax = 10.00
# ArmarX.SickLaserUnit.rangeMin: minimum Range of the Scanner
# Attributes:
# - Default: 0
# - Case sensitivity: yes
# - Required: no
ArmarX.SickLaserUnit.rangeMin = 0.01
# ArmarX.SickLaserUnit.scannerType: Name of the LaserScanner
# Attributes:
# - Case sensitivity: yes
# - Required: yes
ArmarX.SickLaserUnit.scannerType = sick_tim_5xx
# ArmarX.SickLaserUnit.sopasProtocolType: Automatically set to true if the Scanner does not support ASCII communication
# Attributes:
# - Default: false
# - Case sensitivity: yes
# - Required: no
# - Possible values: {0, 1, false, no, true, yes}
# ArmarX.SickLaserUnit.sopasProtocolType = false
# ArmarX.SickLaserUnit.subscribeDatagram: subscribe to Datagram in communication or not
# Attributes:
# - Default: false
# - Case sensitivity: yes
# - Required: no
# - Possible values: {0, 1, false, no, true, yes}
# ArmarX.SickLaserUnit.subscribeDatagram = false
# ArmarX.SickLaserUnit.timeIncrement: timeIncrement??
# Attributes:
# - Default: 0.10000000000000001
# - Case sensitivity: yes
# - Required: no
ArmarX.SickLaserUnit.timeIncrement = 0.1
# ArmarX.SickLaserUnit.timelimit: timelimit for communication
# Attributes:
# - Default: 5
# - Case sensitivity: yes
# - Required: no
# ArmarX.SickLaserUnit.timelimit = 5
# ArmarX.SickLaserUnit.updatePeriod: No Description
# Attributes:
# - Default: 1
# - Case sensitivity: no
# - Required: no
ArmarX.SickLaserUnit.updatePeriod = 1
......
......@@ -17,7 +17,10 @@ armarx_set_target("Library: ${LIB_NAME}")
find_package(sick_scan_base)
armarx_build_if(sick_scan_base_FOUND "sick_scan_base not available")
add_definitions(-DROSSIMU)
find_package(Boost COMPONENTS system filesystem thread REQUIRED)
armarx_build_if(Boost_FOUND "Boost not available")
# Add the component
armarx_add_component(
......@@ -38,12 +41,15 @@ armarx_add_component(
## SickLaserUnitInterfaces # If you defined a component ice interface above.
${sick_scan_base_LIBRARIES}
${Boost_LIBRARY_DIRS}
SOURCES
SickLaserUnit.cpp
#SickScanAdapter.cpp
HEADERS
SickLaserUnit.h
#SickScanAdapter.h
)
......@@ -53,6 +59,10 @@ if(sick_scan_base_FOUND)
target_compile_definitions(${LIB_NAME} PUBLIC "-Dlinux")
endif()
if(Boost_FOUND)
target_include_directories(${LIB_NAME} PUBLIC ${Boost_INCLUDE_DIR})
endif()
# All target_include_directories must be guarded by if(Xyz_FOUND)
# For multiple libraries write: if(X_FOUND AND Y_FOUND) ...
#if(MyLib_FOUND)
......
......@@ -62,6 +62,7 @@ namespace armarx
{
ARMARX_INFO_S << "looping";
result = scanner->loopOnce();
ARMARX_INFO_S << "finished looping";
}
else
{
......@@ -86,6 +87,7 @@ namespace armarx
delete this->scanner; // disconnect scanner
if (this->useTcp)
{
//this->scanner = new SickScanAdapter(this->ip, this->port, this->timelimit, this->parser, this->colaDialectId);
this->scanner = new sick_scan::SickScanCommonTcp(this->ip, this->port, this->timelimit, this->parser, this->colaDialectId);
}
else
......@@ -100,6 +102,7 @@ namespace armarx
}
result = this->scanner->init();
this->isSensorInitialized = true;
ARMARX_INFO_S << "Scanner initialized.";
if (result == sick_scan::ExitSuccess) // OK -> loop again
{
......@@ -146,13 +149,12 @@ namespace armarx
//Scanner parameters
def->required(properties.scannerType, "scannerType", "Name of the LaserScanner");
def->optional(properties.deviceNumber, "deviceNumber", "number of the LaserScanner Device");
def->optional(properties.angleOffset, "angelOffset", "offset to the scanning angle");
def->required(properties.rangeMin, "rangeMin", "minimum Range of the Scanner");
def->required(properties.rangeMax, "rangeMax", "maximum Range of the Scanner");
def->optional(properties.angleOffset, "angleOffset", "offset to the scanning angle");
def->optional(properties.rangeMin, "rangeMin", "minimum Range of the Scanner");
def->optional(properties.rangeMax, "rangeMax", "maximum Range of the Scanner");
def->optional(properties.timeIncrement, "timeIncrement", "timeIncrement??");
//Additional configuration
def->optional(properties.emulSensor, "emulateSensor", "overwrite the default Settings and don't connect to Scanner");
return def;
}
......@@ -164,7 +166,7 @@ namespace armarx
// (Requies the armarx::DebugObserverComponentPluginUser.)
// setDebugObserverBatchModeEnabled(true);
ARMARX_INFO_S << "SickLaserUnit sagt Hallo Welt!";
ARMARX_INFO_S << "initializing SickLaserUnit.";
scanDevice.isSensorInitialized = false;
if (properties.hostname != "")
......@@ -217,12 +219,12 @@ namespace armarx
}
else
{
ARMARX_INFO_S << "ASCII protocol activated";
ARMARX_INFO_S << "ASCII protocol activated.";
scanDevice.protocol = ScanProtocol::ASCII;
}
break;
case ScanProtocol::Binary:
ARMARX_INFO_S << "Binary protocol activated";
ARMARX_INFO_S << "Binary protocol activated.";
scanDevice.protocol = ScanProtocol::Binary;
break;
default:
......@@ -240,11 +242,12 @@ namespace armarx
scanDevice.parser->getCurrentParamPtr()->setUseBinaryProtocol(true);
scanDevice.colaDialectId = 'B';
}
ARMARX_INFO_S << "SickLaserUnit fertig initialisiert.";
ARMARX_INFO_S << "SickLaserUnit initialisation complete.";
}
void SickLaserUnit::onConnectComponent()
{
ARMARX_INFO_S << "Connecting.";
//start the laser scanner
if (scanDevice.task)
{
......
......@@ -26,20 +26,17 @@
#include <ArmarXCore/core/Component.h>
#include <ArmarXCore/core/services/tasks/RunningTask.h>
// #include
// <ArmarXCore/libraries/ArmarXCoreComponentPlugins/DebugObserverComponentPlugin.h>
// #include <ArmarXCore/libraries/ArmarXCoreComponentPlugins/DebugObserverComponentPlugin.h>
// #include
// <ArmarXGui/libraries/ArmarXGuiComponentPlugins/LightweightRemoteGuiComponentPlugin.h>
// #include <ArmarXGui/libraries/ArmarXGuiComponentPlugins/LightweightRemoteGuiComponentPlugin.h>
// #include <RobotAPI/libraries/RobotAPIComponentPlugins/ArVizComponentPlugin.h>
#include <vector>
//#include "thirdparty/sick_scan_base/include/sick_scan/sick_scan_common.h"
#include <sick_scan/sick_scan_common_tcp.h>
//#include "SickScanAdapter.h"
#include <sick_scan/sick_scan_common.h>
#include <sick_scan/sick_scan_common_tcp.h>
#include <sick_scan/sick_generic_laser.h>
namespace armarx
......@@ -63,6 +60,7 @@ namespace armarx
//scanner parameters
std::string scannerType = "sick_tim_5xx";
int deviceNumber = 0;
double angleOffset = 0.0;
double rangeMin;
double rangeMax;
double timeIncrement;
......@@ -70,7 +68,6 @@ namespace armarx
std::string ip;
std::string newIpAddress = "";
std::string port;
double angleOffset = 0.0;
int timelimit = 5;
bool subscribeDatagram = false;
ScanProtocol protocol = ScanProtocol::ASCII;
......@@ -84,6 +81,7 @@ namespace armarx
RunState runState = RunState::scannerFinalize;
RunningTask<SickLaserScanDevice>::pointer_type task;
sick_scan::SickScanConfig cfg;
//SickScanAdapter* scanner;
sick_scan::SickScanCommonTcp* scanner;
sick_scan::SickGenericParser* parser;
int result = sick_scan::ExitError;
......@@ -168,9 +166,9 @@ namespace armarx
std::string scannerType = "sick_tim_5xx";
int deviceNumber = 0;
double angleOffset = 0.0;
double rangeMin;
double rangeMax;
double timeIncrement;
double rangeMin = 0.0;
double rangeMax = 10.0;
double timeIncrement = 0.1;
//additional parameters
bool emulSensor = false;
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment