58 lines
1.7 KiB
C++
58 lines
1.7 KiB
C++
/* xbee.cpp -- XBeeMav ROS node main -- */
|
|
/* ------------------------------------------------------------------------- */
|
|
/* September 20, 2016 -- @Copyright Aymen Soussia. All rights reserved. */
|
|
/* (aymen.soussia@gmail.com) */
|
|
|
|
|
|
#include "CommunicationManager.h"
|
|
|
|
|
|
//*****************************************************************************
|
|
int main(int argc, char* argv[])
|
|
{
|
|
|
|
try
|
|
{
|
|
ros::init(argc, argv, "xbee");
|
|
|
|
Mist::Xbee::CommunicationManager communication_manager;
|
|
const std::string& device = "/dev/ttyUSB0"; // TO DO can be introduced as command.
|
|
const std::size_t baud_rate = 230400; // TO DO Can be introduced as command.
|
|
Mist::Xbee::CommunicationManager::DRONE_TYPE drone_type =
|
|
Mist::Xbee::CommunicationManager::DRONE_TYPE::SLAVE;
|
|
Mist::Xbee::CommunicationManager::RUNNING_MODE running_mode =
|
|
Mist::Xbee::CommunicationManager::RUNNING_MODE::SOLO;
|
|
|
|
if (argc > 1)
|
|
{
|
|
if (!strcmp(argv[1], "master"))
|
|
drone_type = Mist::Xbee::CommunicationManager::DRONE_TYPE::MASTER;
|
|
|
|
if (argc > 2)
|
|
{
|
|
if (!strcmp(argv[2], "swarm"))
|
|
running_mode = Mist::Xbee::CommunicationManager::RUNNING_MODE::SWARM;
|
|
}
|
|
}
|
|
|
|
|
|
if (communication_manager.Init(device, baud_rate))
|
|
communication_manager.Run(drone_type, running_mode);
|
|
}
|
|
catch (const std::exception& e)
|
|
{
|
|
std::cout << "Error Occured:" << std::endl;
|
|
std::cout << e.what() << std::endl;
|
|
}
|
|
catch (...)
|
|
{
|
|
std::cout << "Unexpected Fatal Error." << std::endl;
|
|
std::cout << "Communication With XBee is Lost." << std::endl;
|
|
return EXIT_FAILURE;
|
|
}
|
|
|
|
std::cout << std::endl;
|
|
std::cout << "XBeeMav Exited." << std::endl;
|
|
return EXIT_SUCCESS;
|
|
}
|