/****************************************************************************/
/* Copyright (c) 2014 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : ModtronixOutput.cc                                          */
/* Author   :                                                               */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 12/07/2014                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/

#include "ModtronixOutput.h"
#include "Syslog.h"

ModtronixOutput::ModtronixOutput(Access access, Boolean init)
  : SharedData(ModtronixOutputName,
               sizeof(ModtronixOutput::Data),
               access, init)
{
    // Indicates that the modtronix board initialized and ready
    data.ready = False;
    data.goodComms = False;

    // Light status
    //
    data.light_level = 0;
    data.light_power[0] = data.light_power[1] = data.light_power[2] \
                        = data.light_power[3] = 0;
    data.recorder_power = 0;
    data.recorder_ready = 0;
    data.ctd_power = 0;

    // Env data and alarms
    //
    data.humidity  = 0.;
    data.temp      = 0.;
    data.h2o_fwd   = 0.;
    data.h2o_aft   = 0.;
    data.h2o_alarm = 0.;

    // Timestamp
    //
    data.updateTime.seconds     = 0;
    data.updateTime.nanoSeconds = 0;

    data.motor_action = 0;

    write();
}


ModtronixOutput::~ModtronixOutput()
{
}


void ModtronixOutput::read()
{
  SharedData::read((void *)&data);
}

void ModtronixOutput::write()
{
  SharedData::write((void *)&data);
}



