- Added WARNING handler - put voltage calculations to dedicated module fixed last errors. Updated menu repair screen without ERROR from PID This is version 0.9.0.3, which is used for the first duration test Will also be tagged git-svn-id: https://svn.vbchaos.nl/svn/hsb/trunk@272 05563f52-14a8-4384-a975-3d1654cca0fa
131 lines
3.3 KiB
C
131 lines
3.3 KiB
C
// -----------------------------------------------------------------------------
|
|
/// @file DACDevice.c
|
|
/// @brief Description
|
|
// -----------------------------------------------------------------------------
|
|
// Micro-Key bv
|
|
// Industrieweg 28, 9804 TG Noordhorn
|
|
// Postbus 92, 9800 AB Zuidhorn
|
|
// The Netherlands
|
|
// Tel: +31 594 503020
|
|
// Fax: +31 594 505825
|
|
// Email: support@microkey.nl
|
|
// Web: www.microkey.nl
|
|
// -----------------------------------------------------------------------------
|
|
/// $Revision$
|
|
/// $Author$
|
|
/// $Date$
|
|
// (c) 2017 Micro-Key bv
|
|
// -----------------------------------------------------------------------------
|
|
|
|
/// @file DACDevice.c
|
|
/// @ingroup {group_name}
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Include files
|
|
// -----------------------------------------------------------------------------
|
|
|
|
#include <stdio.h>
|
|
|
|
#include "DACDevice.h"
|
|
#include "Logger.h"
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Constant and macro definitions
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Type definitions
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// File-scope variables
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Function declarations
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Function definitions
|
|
// -----------------------------------------------------------------------------
|
|
|
|
ErrorStatus DACDevice_construct(struct DACDevice* self, DACWriteFunction write, DACReadbackFunction readback, unsigned int resolutionInBits)
|
|
{
|
|
ErrorStatus returnValue = SUCCESS;
|
|
if (!self->initialized)
|
|
{
|
|
self->_write = write;
|
|
self->_readback = readback;
|
|
self->resolutionInBits = resolutionInBits;
|
|
self->initialized = true;
|
|
}
|
|
else
|
|
{
|
|
returnValue = ERROR;
|
|
}
|
|
return returnValue;
|
|
}
|
|
|
|
|
|
void DACDevice_destruct(struct DACDevice* self)
|
|
{
|
|
if (self->initialized)
|
|
{
|
|
self->initialized = false;
|
|
self->_write = NULL;
|
|
}
|
|
}
|
|
|
|
|
|
ErrorStatus DACDevice_write(const struct DACDevice* self, uint32_t voltage)
|
|
{
|
|
ErrorStatus returnValue = SUCCESS;
|
|
if (self->initialized)
|
|
{
|
|
if (self->_write != NULL)
|
|
{
|
|
returnValue = self->_write(self, voltage);
|
|
}
|
|
else
|
|
{
|
|
returnValue = ERROR;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
returnValue = ERROR;
|
|
}
|
|
return returnValue;
|
|
}
|
|
|
|
|
|
|
|
uint32_t DACDevice_getCurrentValue(const struct DACDevice* self)
|
|
{
|
|
uint32_t returnValue = SUCCESS;
|
|
if (self->initialized)
|
|
{
|
|
if (self->_readback != NULL)
|
|
{
|
|
returnValue = self->_readback(self);
|
|
}
|
|
else
|
|
{
|
|
returnValue = 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
returnValue = 0;
|
|
}
|
|
return returnValue;
|
|
}
|