
/**
* @file common.h
*
* @brief The file contains all the includes for the plugin (Standard, TUsb and Boost library)
**/ 


/*!
Standard includes
*/
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;


/*!
TUsb includes and defines
*/
#import "../lib/TUSB_Controller.tlb"
#include <comdef.h>
using namespace TUSB_Controller; 
#define COM_PORT 3
#define CARRYING_FREQ	23


/*!
Boost thread and mutex
*/
#include <boost/thread/thread.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/bind.hpp>


/*!
Class to handle COM communication
*/
#include "../lib/LSerie.h"


/*!
Class to send data to Scol handle
*/
class BeltData
{
  public:
    // Standard constructor
    BeltData()
    {
    }

    // Constructor
    BeltData(std::list<float> data)
    {
      lData = data;
    }

    // Standard destructor
    ~BeltData()
    {
      lData.clear();
    }

    // Get list of new data
    std::list<float> GetBeltData()
    {
      return lData;
    }

    // Add data
    void AddData(float val)
    {
      lData.push_back(val);
    }

    // Display data
    void DisplayData()
    {
      std::list<float>::iterator it;
      MMechostr(MSKDEBUG, "-----------------------------\n");
      for (it = lData.begin(); it != lData.end(); it++)
      {
        MMechostr(MSKDEBUG, ">>> DATA [%f]\n", *it);
      }
      MMechostr(MSKDEBUG, "-----------------------------\n");
    }

  private:
    std::list<float> lData;
};
