static char DataCon_id[] = "$Header: /usr/tiburon/unix/gui/tmacs/RCS/DataCon.cc,v 1.1 1996/07/22 10:41:51 oreilly Exp $";


/*
$Log: DataCon.cc,v $
Revision 1.1  1996/07/22 10:41:51  oreilly
First external release

*/
#include <stdlib.h>
#include "DataCon.h"
#include "ibcDm.h"
#include "pduMicro.h"
#include "microDm.h"
#include "ersDcon.h"

DataCon::DataCon(const char *name, Widget parent, Type type)
  : DmGuiObject(name, parent)
{
  char dmItemName[512];
  char errorBuf[errorMsgSize];
  
  switch (type)
  {
    case ErsType:
    strcpy(dmItemName, ERS_DCON_DM_PREFIX);
    break;
    
    default:
    fprintf(stderr, "DataCon::DataCon() - type %d not implemented\n", type);
    exit(1);
  }
  char *namePtr = dmItemName + strlen(dmItemName);
  
  strcpy(namePtr, MICRO_RESET_CMD_DM);
  _resetCmd = new DmEmptyObject(namePtr);
  if (_resetCmd->error())
  {
    _resetCmd->errorMsg(errorBuf);
    setError(errorBuf);
    return;
  }
  
  if (addDmObject(_resetCmd, DmProvideFlag) == -1)
    return;
  
  strcpy(namePtr, MICRO_RESET_EVENT_DM);
  _resetEvent = new DmEmptyObject(namePtr);
  if (_resetEvent->error())
  {
    _resetEvent->errorMsg(errorBuf);
    setError(errorBuf);
    return;
  }  

  if (addDmObject(_resetEvent, DmConsumeFlag) == -1)
    return;
  
  strcpy(namePtr, HUMIDITY_DM);
  _humidity = new DmNat16Object(namePtr);
  if (_humidity->error())
  {
    _humidity->errorMsg(errorBuf);
    setError(errorBuf);
    return;
  }
  
  if (addDmObject(_humidity, DmConsumeFlag) == -1)
    return;
  
  strcpy(namePtr, HUMIDITY_WARN_THRESH_DM);
  _humidityWarnThresh = new DmNat16Object(namePtr);
  if (_humidityWarnThresh->error())
  {
    _humidityWarnThresh->errorMsg(errorBuf);
    setError(errorBuf);
    return;
  }
  
  if (addDmObject(_humidityWarnThresh, DmConsumeFlag | DmProvideFlag) == -1)
    return;
  
  strcpy(namePtr, HUMIDITY_ALARM_THRESH_DM);
  _humidityAlarmThresh = new DmNat16Object(namePtr);
  if (_humidityAlarmThresh->error())
  {
    _humidityAlarmThresh->errorMsg(errorBuf);
    setError(errorBuf);
    return;
  }
  
  if (addDmObject(_humidityAlarmThresh, DmConsumeFlag | DmProvideFlag) == -1)
    return;
  
  strcpy(namePtr, MICRO_TEMP_DM);
  _temp = new DmInt16Object(namePtr);
  if (_temp->error())
  {
    _temp->errorMsg(errorBuf);
    setError(errorBuf);
    return;
  }
  
  if (addDmObject(_temp, DmConsumeFlag) == -1)
    return;

  strcpy(namePtr, TEMP_WARN_THRESH_DM);
  _tempWarnThresh = new DmInt16Object(namePtr);
  if (_tempWarnThresh->error())
  {
    _tempWarnThresh->errorMsg(errorBuf);
    setError(errorBuf);
    return;
  } 

  if (addDmObject(_tempWarnThresh, DmConsumeFlag | DmProvideFlag) == -1)
    return;
  
  strcpy(namePtr, TEMP_ALARM_THRESH_DM);
  _tempAlarmThresh = new DmInt16Object(namePtr);
  if (_tempAlarmThresh->error())
  {
    _tempAlarmThresh->errorMsg(errorBuf);
    setError(errorBuf);
    return;
  } 

  if (addDmObject(_tempAlarmThresh, DmConsumeFlag | DmProvideFlag) == -1)
    return; 
}
