/* Copyright (C) 2019 * * This file is part of the osdev components suite * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2, or (at your option) any * later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ // std #include #include #include #include "publisher.h" enum TIME_RES { T_MICRO, T_MILLI, T_SECONDS }; std::uint64_t getEpochUSecs() { auto tsUSec =std::chrono::time_point_cast(std::chrono::system_clock::now()); return static_cast(tsUSec.time_since_epoch().count()); } void sleepcp( int number, TIME_RES resolution = T_MILLI ) // Cross-platform sleep function { int factor = 0; // Should not happen.. switch( resolution ) { case T_MICRO: factor = 1; break; case T_MILLI: factor = 1000; break; case T_SECONDS: factor = 1000000; break; } usleep( number * factor ); } int main( int argc, char* argv[] ) { // We're not using the command parameters, so we just want to keep the compiler happy. (void)argc; (void)argv; uint64_t messageNumber = 0; // Create the publisher, run it and publish a message every 0.001 sec. std::cout << "Create the publisher object : "; Publisher *pPublisher = new Publisher(); if( pPublisher != nullptr ) { std::cout << "{OK}" << std::endl; std::cout << "Connecting to the broker : "; pPublisher->connect( "localhost", 1883, "", "" ); // Assume we are connected now, start publishing. while( 1 ) { std::string payload = "" ; pPublisher->publish( std::string( "test/publisher/TestPublisher" ), payload ); sleepcp( 1, T_SECONDS ); if( messageNumber > 2000000000 ) messageNumber = -1; messageNumber++; } } else return -1; }