// Generated by gencpp from file mettler_toledo_quantos_q2_msgs/QuantosSample.msg
// DO NOT EDIT!


#ifndef METTLER_TOLEDO_QUANTOS_Q2_MSGS_MESSAGE_QUANTOSSAMPLE_H
#define METTLER_TOLEDO_QUANTOS_Q2_MSGS_MESSAGE_QUANTOSSAMPLE_H


#include <string>
#include <vector>
#include <map>

#include <ros/types.h>
#include <ros/serialization.h>
#include <ros/builtin_message_traits.h>
#include <ros/message_operations.h>


namespace mettler_toledo_quantos_q2_msgs
{
template <class ContainerAllocator>
struct QuantosSample_
{
  typedef QuantosSample_<ContainerAllocator> Type;

  QuantosSample_()
    : Substance()
    , LotID()
    , UserID()
    , FillingDate()
    , ExpiryDate()
    , RetestDate()
    , mgFillWeight()
    , RemainingDoses()
    , TerminalSNR()
    , BridgeSNR()
    , BalanceType()
    , BalanceID()
    , LastCalibration()
    , OptionSNR()
    , DoseUnitSNR()
    , ApplicationName()
    , DateTime()
    , LevelControl()
    , ProductionDateHead()
    , HeadType()
    , DoseHeadLimit()
    , DosesDoneHead()
    , mgRemainingPowderHead()  {
    }
  QuantosSample_(const ContainerAllocator& _alloc)
    : Substance(_alloc)
    , LotID(_alloc)
    , UserID(_alloc)
    , FillingDate(_alloc)
    , ExpiryDate(_alloc)
    , RetestDate(_alloc)
    , mgFillWeight(_alloc)
    , RemainingDoses(_alloc)
    , TerminalSNR(_alloc)
    , BridgeSNR(_alloc)
    , BalanceType(_alloc)
    , BalanceID(_alloc)
    , LastCalibration(_alloc)
    , OptionSNR(_alloc)
    , DoseUnitSNR(_alloc)
    , ApplicationName(_alloc)
    , DateTime(_alloc)
    , LevelControl(_alloc)
    , ProductionDateHead(_alloc)
    , HeadType(_alloc)
    , DoseHeadLimit(_alloc)
    , DosesDoneHead(_alloc)
    , mgRemainingPowderHead(_alloc)  {
  (void)_alloc;
    }



   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _Substance_type;
  _Substance_type Substance;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _LotID_type;
  _LotID_type LotID;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _UserID_type;
  _UserID_type UserID;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _FillingDate_type;
  _FillingDate_type FillingDate;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _ExpiryDate_type;
  _ExpiryDate_type ExpiryDate;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _RetestDate_type;
  _RetestDate_type RetestDate;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _mgFillWeight_type;
  _mgFillWeight_type mgFillWeight;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _RemainingDoses_type;
  _RemainingDoses_type RemainingDoses;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _TerminalSNR_type;
  _TerminalSNR_type TerminalSNR;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _BridgeSNR_type;
  _BridgeSNR_type BridgeSNR;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _BalanceType_type;
  _BalanceType_type BalanceType;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _BalanceID_type;
  _BalanceID_type BalanceID;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _LastCalibration_type;
  _LastCalibration_type LastCalibration;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _OptionSNR_type;
  _OptionSNR_type OptionSNR;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _DoseUnitSNR_type;
  _DoseUnitSNR_type DoseUnitSNR;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _ApplicationName_type;
  _ApplicationName_type ApplicationName;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _DateTime_type;
  _DateTime_type DateTime;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _LevelControl_type;
  _LevelControl_type LevelControl;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _ProductionDateHead_type;
  _ProductionDateHead_type ProductionDateHead;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _HeadType_type;
  _HeadType_type HeadType;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _DoseHeadLimit_type;
  _DoseHeadLimit_type DoseHeadLimit;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _DosesDoneHead_type;
  _DosesDoneHead_type DosesDoneHead;

   typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  _mgRemainingPowderHead_type;
  _mgRemainingPowderHead_type mgRemainingPowderHead;





  typedef boost::shared_ptr< ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator> > Ptr;
  typedef boost::shared_ptr< ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator> const> ConstPtr;

}; // struct QuantosSample_

typedef ::mettler_toledo_quantos_q2_msgs::QuantosSample_<std::allocator<void> > QuantosSample;

typedef boost::shared_ptr< ::mettler_toledo_quantos_q2_msgs::QuantosSample > QuantosSamplePtr;
typedef boost::shared_ptr< ::mettler_toledo_quantos_q2_msgs::QuantosSample const> QuantosSampleConstPtr;

// constants requiring out of line definition



template<typename ContainerAllocator>
std::ostream& operator<<(std::ostream& s, const ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator> & v)
{
ros::message_operations::Printer< ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator> >::stream(s, "", v);
return s;
}


template<typename ContainerAllocator1, typename ContainerAllocator2>
bool operator==(const ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator1> & lhs, const ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator2> & rhs)
{
  return lhs.Substance == rhs.Substance &&
    lhs.LotID == rhs.LotID &&
    lhs.UserID == rhs.UserID &&
    lhs.FillingDate == rhs.FillingDate &&
    lhs.ExpiryDate == rhs.ExpiryDate &&
    lhs.RetestDate == rhs.RetestDate &&
    lhs.mgFillWeight == rhs.mgFillWeight &&
    lhs.RemainingDoses == rhs.RemainingDoses &&
    lhs.TerminalSNR == rhs.TerminalSNR &&
    lhs.BridgeSNR == rhs.BridgeSNR &&
    lhs.BalanceType == rhs.BalanceType &&
    lhs.BalanceID == rhs.BalanceID &&
    lhs.LastCalibration == rhs.LastCalibration &&
    lhs.OptionSNR == rhs.OptionSNR &&
    lhs.DoseUnitSNR == rhs.DoseUnitSNR &&
    lhs.ApplicationName == rhs.ApplicationName &&
    lhs.DateTime == rhs.DateTime &&
    lhs.LevelControl == rhs.LevelControl &&
    lhs.ProductionDateHead == rhs.ProductionDateHead &&
    lhs.HeadType == rhs.HeadType &&
    lhs.DoseHeadLimit == rhs.DoseHeadLimit &&
    lhs.DosesDoneHead == rhs.DosesDoneHead &&
    lhs.mgRemainingPowderHead == rhs.mgRemainingPowderHead;
}

template<typename ContainerAllocator1, typename ContainerAllocator2>
bool operator!=(const ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator1> & lhs, const ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator2> & rhs)
{
  return !(lhs == rhs);
}


} // namespace mettler_toledo_quantos_q2_msgs

namespace ros
{
namespace message_traits
{





template <class ContainerAllocator>
struct IsMessage< ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator> >
  : TrueType
  { };

template <class ContainerAllocator>
struct IsMessage< ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator> const>
  : TrueType
  { };

template <class ContainerAllocator>
struct IsFixedSize< ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator> >
  : FalseType
  { };

template <class ContainerAllocator>
struct IsFixedSize< ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator> const>
  : FalseType
  { };

template <class ContainerAllocator>
struct HasHeader< ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator> >
  : FalseType
  { };

template <class ContainerAllocator>
struct HasHeader< ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator> const>
  : FalseType
  { };


template<class ContainerAllocator>
struct MD5Sum< ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator> >
{
  static const char* value()
  {
    return "f9fe3a45ae4ba2f62c51823286634eac";
  }

  static const char* value(const ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator>&) { return value(); }
  static const uint64_t static_value1 = 0xf9fe3a45ae4ba2f6ULL;
  static const uint64_t static_value2 = 0x2c51823286634eacULL;
};

template<class ContainerAllocator>
struct DataType< ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator> >
{
  static const char* value()
  {
    return "mettler_toledo_quantos_q2_msgs/QuantosSample";
  }

  static const char* value(const ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator>&) { return value(); }
};

template<class ContainerAllocator>
struct Definition< ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator> >
{
  static const char* value()
  {
    return "string Substance\n"
"string LotID\n"
"string UserID\n"
"string FillingDate\n"
"string ExpiryDate\n"
"string RetestDate\n"
"string mgFillWeight\n"
"string RemainingDoses\n"
"string TerminalSNR\n"
"string BridgeSNR\n"
"string BalanceType\n"
"string BalanceID\n"
"string LastCalibration\n"
"string OptionSNR\n"
"string DoseUnitSNR\n"
"string ApplicationName\n"
"string DateTime\n"
"string LevelControl\n"
"string ProductionDateHead\n"
"string HeadType\n"
"string DoseHeadLimit\n"
"string DosesDoneHead\n"
"string mgRemainingPowderHead\n"
;
  }

  static const char* value(const ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator>&) { return value(); }
};

} // namespace message_traits
} // namespace ros

namespace ros
{
namespace serialization
{

  template<class ContainerAllocator> struct Serializer< ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator> >
  {
    template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
    {
      stream.next(m.Substance);
      stream.next(m.LotID);
      stream.next(m.UserID);
      stream.next(m.FillingDate);
      stream.next(m.ExpiryDate);
      stream.next(m.RetestDate);
      stream.next(m.mgFillWeight);
      stream.next(m.RemainingDoses);
      stream.next(m.TerminalSNR);
      stream.next(m.BridgeSNR);
      stream.next(m.BalanceType);
      stream.next(m.BalanceID);
      stream.next(m.LastCalibration);
      stream.next(m.OptionSNR);
      stream.next(m.DoseUnitSNR);
      stream.next(m.ApplicationName);
      stream.next(m.DateTime);
      stream.next(m.LevelControl);
      stream.next(m.ProductionDateHead);
      stream.next(m.HeadType);
      stream.next(m.DoseHeadLimit);
      stream.next(m.DosesDoneHead);
      stream.next(m.mgRemainingPowderHead);
    }

    ROS_DECLARE_ALLINONE_SERIALIZER
  }; // struct QuantosSample_

} // namespace serialization
} // namespace ros

namespace ros
{
namespace message_operations
{

template<class ContainerAllocator>
struct Printer< ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator> >
{
  template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::mettler_toledo_quantos_q2_msgs::QuantosSample_<ContainerAllocator>& v)
  {
    s << indent << "Substance: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.Substance);
    s << indent << "LotID: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.LotID);
    s << indent << "UserID: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.UserID);
    s << indent << "FillingDate: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.FillingDate);
    s << indent << "ExpiryDate: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.ExpiryDate);
    s << indent << "RetestDate: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.RetestDate);
    s << indent << "mgFillWeight: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.mgFillWeight);
    s << indent << "RemainingDoses: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.RemainingDoses);
    s << indent << "TerminalSNR: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.TerminalSNR);
    s << indent << "BridgeSNR: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.BridgeSNR);
    s << indent << "BalanceType: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.BalanceType);
    s << indent << "BalanceID: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.BalanceID);
    s << indent << "LastCalibration: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.LastCalibration);
    s << indent << "OptionSNR: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.OptionSNR);
    s << indent << "DoseUnitSNR: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.DoseUnitSNR);
    s << indent << "ApplicationName: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.ApplicationName);
    s << indent << "DateTime: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.DateTime);
    s << indent << "LevelControl: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.LevelControl);
    s << indent << "ProductionDateHead: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.ProductionDateHead);
    s << indent << "HeadType: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.HeadType);
    s << indent << "DoseHeadLimit: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.DoseHeadLimit);
    s << indent << "DosesDoneHead: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.DosesDoneHead);
    s << indent << "mgRemainingPowderHead: ";
    Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + "  ", v.mgRemainingPowderHead);
  }
};

} // namespace message_operations
} // namespace ros

#endif // METTLER_TOLEDO_QUANTOS_Q2_MSGS_MESSAGE_QUANTOSSAMPLE_H
