TestClass.cpp
Go to the documentation of this file.
00001 /*
00002  * TestClass.cpp
00003  *
00004  *  Created on: Oct 11, 2011
00005  *      Author: mriedel
00006  */
00007 
00008 #include "TestClass.hpp"
00009 
00010 #include <ros/ros.h>
00011 
00012 #include <telekyb_base/Spaces.hpp>
00013 #include <telekyb_base/TeleKyb.hpp>
00014 
00015 #include <telekyb_base/Time.hpp>
00016 
00017 #include <iostream>
00018 
00019 #include <telekyb_base/ROS/GenericSubscriber.hpp>
00020 #include <std_msgs/Float32.h>
00021 
00022 TestOptionContainer::TestOptionContainer()
00023         : OptionContainer("TestOptionContainer")
00024 {
00025         intOp1 = addOption<int>("int1","Bla bla", 10);
00026         intOp2 = addBoundsOption<int>("int2","Bla bla", 20, 50, 5, true, true);
00027         doubleOp1 = addBoundsOption<double>("double", "BlaBla", 3.5, 2.0, 10.3);
00028         Eigen::Matrix3i defaultVal = Eigen::Matrix3i::Zero();
00029         defaultVal.diagonal() = Eigen::Vector3i(1,2,3);
00030         matOp3 = addOption<Eigen::Matrix3i>("matrix","test", defaultVal, false);
00031         levelVarOption = addOption< LevelValBaseEnum< const char * >::Type >("enum23","That's an enum", LevelVal::Debug);
00032         levelOption = addOption< LevelBaseEnum::Type >("enum","That's an enum", Level::Debug, false);
00033         pos3D =
00034                         addOption<telekyb::Position3D>("pos3D","test", telekyb::Position3D(), false);
00035         testQuatOption = addOption<Eigen::Quaterniond>("testQuatOption","test", Eigen::Quaterniond(), false);
00036         Eigen::Matrix<double, Eigen::Dynamic, 2> testVal(4,2);
00037         dynamicVec = addOption<Eigen::Matrix<double, Eigen::Dynamic, 2> >(
00038                         "dynamicVec",
00039                         "test of Dynamic Vector",
00040                         testVal, false);
00041 }
00042 
00043 void TestListener::optionDidChange(const telekyb::Option<int>* option) {
00044         std::cout << "Option changed! " << option->getValue() << std::endl;
00045 }
00046 
00047 void TestListener::optionShouldDelete(const telekyb::Option<int>* option) {
00048         std::cout << "Option about to be deleted! " << option->getValue() << std::endl;
00049 }
00050 
00051 
00052 // main
00053 int main(int argc, char* argv[])
00054 {
00055 //      telekyb::GenericSubscriber<std_msgs::Float32> sub(ros::NodeHandle(), "test", 10);
00056 //      std_msgs::Float32 test = sub.getLastMsg();
00057         //ROSCONSOLE_AUTOINIT;
00058 
00059         //log4cxx::LoggerPtr my_logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME);
00060 
00061         // Set the logger for this package to output all statements
00062         //my_logger->setLevel(ros::console::g_level_lookup[ros::console::levels::Debug]);
00063 
00064 
00065 
00066 //      Level lev = Level::Abort;
00067 //      std::cout << "Index: " << lev.index() << "String: " << lev.str() << "." << std::endl;
00068 //      if(Level::get_by_name("Info")) {
00069 //              std::cout << "Level knows variable" << std::endl;
00070 //              lev = *Level::get_by_name("Info");
00071 //              //const char* test = Level::names();
00072 //      } else {
00073 //              std::cout << "Level does not know variable" << std::endl;
00074 //      }
00075 //      std::cout << "Index: " << lev.index() << " String: " << lev.str() << "." << std::endl;
00076 //      YAML::Node testNode = YAML::Load("0");
00077 //      bool testValue = testNode.as<bool>();
00078 //
00079 //      if (testValue) {
00080 //              ROS_INFO("YAML produced true");
00081 //      } else {
00082 //              ROS_INFO("YAML produced false");
00083 //      }
00084 
00085         telekyb::TeleKyb::init(argc,argv, "TestClass");
00086 
00087         TestListener tl;
00088 //      telekyb::OptionListener<int>::registerOptionListener(&tl);
00089 //      telekyb::OptionListener<double>::registerOptionListener(&tl);
00090 
00091         TestOptionContainer *t = new TestOptionContainer();
00092         t->intOp1->setValue(200);
00093         std::cout << "Value: " << t->intOp1->getValue() << std::endl;
00094         std::cout << "Value: " << t->intOp2->getValue() << std::endl;
00095 
00096         t->intOp2->setValue(10);
00097         t->intOp2->setValue(30);
00098         t->intOp2->setValue(50);
00099         t->intOp2->setValue(5);
00100 
00101         t->intOp2->setValue(51);
00102         t->intOp2->setValue(4);
00103 
00104         t->doubleOp1->setValue(7.03);
00105         t->doubleOp1->setValue(10.3);
00106         t->doubleOp1->setValue(10.4);
00107 
00108 //      Eigen::MatrixXd test1(3,3);
00109 //      Eigen::VectorXd test2(3);
00110 //      test2 << 1,2,3;
00111 //      test2.resize(4);
00112 //      std::cout << "Vector: " << test2 << std::endl;
00113 //      ROS_INFO("Rows at compile time: %d, %d",test1.RowsAtCompileTime,1);
00114 //      test1.resize(4,4);
00115 
00116         std::cout << "Dynamic Vector: " << std::endl << t->dynamicVec->getValue() << std::endl;
00117 
00118 
00119         //t->levelOption->setValue(Level::Alert);
00120 
00121         Level testLevel = t->levelOption->getValue();
00122         ROS_INFO_STREAM("Option: " << t->levelOption->getName() << " Value: " << testLevel.str());
00123 
00124 //      if (static_cast<Level>() == Level::Alert) {
00125 //              // awesome
00126 //              std::cout << "worked!" << std::endl;
00127 //      }
00128 
00129         std::cout << t->matOp3->getValue() << std::endl;
00130 
00131         std::cout << t->pos3D->getValue() << std::endl;
00132 
00133 
00134 //      Level lev = t->levelOption->getValue();
00135 //      std::cout << "Index: " << lev.m_index << "String: " << lev.str() << "." << std::endl();
00136 
00137 
00138 
00139 //      // Time Stuff
00140 //      telekyb::Time time;
00141 //      ROS_INFO_STREAM("Current Time: " << time.dateTimeToString());
00142 //
00143 //      // Timer Test
00144 //      telekyb::Timer timer;
00145 //      sleep(3);
00146 //      ROS_INFO_STREAM("Timer elapsed: " << timer.toString());
00147 //
00148 //      telekyb::Time test2(2.3);
00149 //      telekyb::Timer timer2(test2);
00150 //      sleep(1);
00151 //      ROS_INFO_STREAM("Timer elapsed: " << timer2.toString());
00152 //
00153 //      telekyb::Duration dur(3,0);
00154 //      telekyb::Timer timer3;
00155 //      dur.sleep();
00156 //      ROS_INFO_STREAM("Timer elapsed: " << timer3.toString());
00157 
00158 
00159         /*
00160          * DONT TEST AFTER THIS POINT
00161          */
00162         ros::spin();
00163 //
00164         delete t;
00165 //
00166 //      Eigen::Matrix3d mat;
00167 //
00168 //      Eigen::Matrix<float, Eigen::Dynamic, Eigen::Dynamic> test;
00169 
00170 
00171 
00172 
00173         telekyb::TeleKyb::shutdown();
00174 
00175         return 0;
00176 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Defines


telekyb_base
Author(s): Dr. Antonio Franchi and Martin Riedel
autogenerated on Mon Nov 11 2013 11:12:34