#ifndef _CAMERAMICRO_H
#define _CAMERAMICRO_H

#include "Micro.h"
#include "CameraDm.h"

class CameraMicro : public Micro
{
  public:
  CameraMicro(const char *name, const char *dmPrefix);
  ~CameraMicro();
  
  virtual const char *className()
  {
    return "CameraMicro";
  }
  
  virtual Type type()
  {
    return CameraMicroType;
  }
 
  virtual MicroGui *gui(Widget parent, int period);
  virtual MicroH2OTemp *h2OTemp(Widget parent, int period); 

  CameraDm *cameraDm;

  protected:
};


class CameraH2OTemp : public MicroH2OTemp
{
  public:
  CameraH2OTemp(const char *name, Widget parent, CameraMicro *cameraMicro,
		int period);
  
  ~CameraH2OTemp();
  
  virtual const char *className()
  {
    return "CameraH2OTemp";
  }
};


class CameraMicroGui : public MicroGui
{
  public:
  CameraMicroGui(const char *name, Widget parent, CameraMicro *micro, 
		 int period);

  ~CameraMicroGui();

  virtual const char *className()
  {
    return "CameraMicroGui";
  }
  
  virtual void updateGui(DM_Item handle = 0);

  protected:
  AlarmedInt16Text *_temp;
  AlarmedNat16Text *_humidity;
  AlarmText *_housingWater;
};



#endif
