/* Blinker
Copyright 2011-2014 Stefan Schuermans <stefan@blinkenarea.org>
Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
a blinkenarea.org project */
#include <string>
#include <BlinkenLib/BlinkenFrame.h>
#include <BlinkenLib/BlinkenProto.h>
#include "Device.h"
#include "Directory.h"
#include "File.h"
#include "InStreamFile.h"
#include "Mgrs.h"
#include "Module.h"
#include "NameFile.h"
#include "Output.h"
#include "Protocol.h"
#include "ProtocolFile.h"
#include "SerCfgFile.h"
#include "StreamRecv.h"
#include "Time.h"
#include "TimeCallee.h"
namespace Blinker {
/**
* @brief constructor
* @param[in] name module name
* @param[in] mgrs managers
* @param[in] dirBase base directory
*/
Output::Output(const std::string &name, Mgrs &mgrs,
const Directory &dirBase):
Module(name, mgrs, dirBase),
m_fileInStream(dirBase.getFile("instream"), mgrs.m_streamMgr),
m_fileProtocol(dirBase.getFile("protocol")),
m_fileDevice(dirBase.getFile("device")),
m_fileSerCfg(dirBase.getFile("ser_cfg")),
m_pDevice(NULL)
{
// set up
m_fileInStream.setStreamRecv(this);
readProto();
openDevice();
}
/// virtual destructor
Output::~Output()
{