1
0
Fork 0
flightgear/utils/GPSsmooth/UGear_command.hxx
2008-04-04 22:34:19 +00:00

56 lines
964 B
C++

#ifndef _FG_UGEAR_COMMAND_HXX
#define _FG_UGEAR_COMMAND_HXX
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <simgear/compiler.h>
#include <iostream>
#include <string>
#include <queue>
#include <simgear/misc/stdint.hxx>
#include <simgear/io/iochannel.hxx>
#include <simgear/serial/serial.hxx>
SG_USING_STD(cout);
SG_USING_STD(endl);
SG_USING_STD(string);
SG_USING_STD(queue);
// Manage UGear Command Channel
class UGCommand {
private:
int cmd_send_index;
int cmd_recv_index;
bool prime_state;
queue <string> cmd_queue;
public:
UGCommand();
~UGCommand();
// send current command until acknowledged
int update( SGSerialPort *serial );
void add( const string command );
inline int cmd_queue_size() {
return cmd_queue.size();
}
inline void update_cmd_sequence( int sequence ) {
cmd_recv_index = sequence;
}
};
extern UGCommand command_mgr;
#endif // _FG_UGEAR_COMMAND_HXX