Fixed multiple bugs and errors.
- 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
This commit is contained in:
@@ -25,13 +25,13 @@
|
||||
// Include files
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
#include "Logger.h"
|
||||
#include <string.h>
|
||||
|
||||
#include "CachedStorage.h"
|
||||
#include "Logger.h"
|
||||
|
||||
#include "InternalFlash.h"
|
||||
|
||||
#include "stm32f10x_flash.h"
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Constant and macro definitions
|
||||
@@ -92,10 +92,6 @@ ErrorStatus CachedStorage_construct(struct CachedStorage* self, struct MemoryDev
|
||||
returnValue = ERROR;
|
||||
LOGGER_ERROR(mainLog, "Failed to malloc to tempbuffer");
|
||||
}
|
||||
else
|
||||
{
|
||||
LOGGER_INFO(mainLog, "Created tempBuffer memory with size %x at address %p", self->cacheSize, self->tempBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
if (returnValue == SUCCESS)
|
||||
@@ -106,10 +102,6 @@ ErrorStatus CachedStorage_construct(struct CachedStorage* self, struct MemoryDev
|
||||
returnValue = ERROR;
|
||||
LOGGER_ERROR(mainLog, "Failed to malloc to storage");
|
||||
}
|
||||
else
|
||||
{
|
||||
LOGGER_INFO(mainLog, "Created storage memory with size %x at address %p", self->cacheSize, self->storage);
|
||||
}
|
||||
}
|
||||
|
||||
if (returnValue == SUCCESS)
|
||||
@@ -118,7 +110,7 @@ ErrorStatus CachedStorage_construct(struct CachedStorage* self, struct MemoryDev
|
||||
self->initialized = true;
|
||||
self->dirty = false;
|
||||
|
||||
LOGGER_DEBUG(mainLog, "Created Cached Storage at page: %d", self->pageNumber);
|
||||
LOGGER_INFO(mainLog, "Created Cached Storage at page: %d", self->pageNumber);
|
||||
}
|
||||
}
|
||||
return returnValue;
|
||||
@@ -130,7 +122,6 @@ void CachedStorage_destruct(struct CachedStorage* self)
|
||||
{
|
||||
vPortFree(self->storage);
|
||||
vPortFree(self->tempBuffer);
|
||||
LOGGER_INFO(mainLog, "Free'd buffers");
|
||||
self->initialized = false;
|
||||
}
|
||||
}
|
||||
@@ -159,7 +150,7 @@ void CachedStorage_writeBlob(struct CachedStorage* self, int offset, const void*
|
||||
}
|
||||
else
|
||||
{
|
||||
LOGGER_ERROR(mainLog, "WriteBlob failed at offset %d, blobsize %d --- %p", offset, blobSize, self->storage[offset]);
|
||||
LOGGER_ERROR(mainLog, "WriteBlob failed at offset %d, blobsize %d --- %p", offset, blobSize, &self->storage[offset]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -195,7 +186,7 @@ const void* CachedStorage_readBlob(struct CachedStorage* self, int offset)
|
||||
}
|
||||
else
|
||||
{
|
||||
LOGGER_ERROR(mainLog, "ReadBlob failed at offset %d --- %p", offset, self->storage[offset]);
|
||||
LOGGER_ERROR(mainLog, "ReadBlob failed at offset %d --- %p", offset, &self->storage[offset]);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
@@ -224,14 +215,14 @@ void CachedStorage_commit(struct CachedStorage* self)
|
||||
}
|
||||
else
|
||||
{
|
||||
LOGGER_DEBUG(mainLog, "CachedStorage content unchanged, did not write");
|
||||
LOGGER_INFO(mainLog, "No changes made to cache");
|
||||
}
|
||||
|
||||
self->dirty = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
LOGGER_DEBUG(mainLog, "CachedStorage content unchanged, did not write");
|
||||
LOGGER_INFO(mainLog, "No changes made to cache");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,21 +57,15 @@
|
||||
// Function definitions
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
ErrorStatus DACDevice_construct(struct DACDevice* self, DACWriteFunction write, unsigned int resolutionInBits)
|
||||
ErrorStatus DACDevice_construct(struct DACDevice* self, DACWriteFunction write, DACReadbackFunction readback, unsigned int resolutionInBits)
|
||||
{
|
||||
ErrorStatus returnValue = SUCCESS;
|
||||
if (!self->initialized)
|
||||
{
|
||||
if (write != NULL)
|
||||
{
|
||||
self->_write = write;
|
||||
self->_readback = readback;
|
||||
self->resolutionInBits = resolutionInBits;
|
||||
self->initialized = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
returnValue = ERROR;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -111,3 +105,26 @@ ErrorStatus DACDevice_write(const struct DACDevice* self, uint32_t voltage)
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -271,7 +271,7 @@ static void loggerTask(void* parameters)
|
||||
}
|
||||
#endif
|
||||
|
||||
uint32_t seconds = RTC_GetCounter();
|
||||
unsigned int seconds = (unsigned int)RTC_GetCounter();
|
||||
|
||||
#if defined(ENABLE_SERIAL_LOGGING)
|
||||
// Formatted print
|
||||
|
||||
@@ -53,6 +53,7 @@
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static ErrorStatus channelWrite(const struct DACDevice* self, uint32_t voltage);
|
||||
static uint32_t channelReadback (const struct DACDevice* self);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Function definitions
|
||||
@@ -166,7 +167,7 @@ ErrorStatus MAX5715Channel_construct(struct MAX5715_DAC* self, struct MAX5715* p
|
||||
|
||||
if (returnValue == SUCCESS)
|
||||
{
|
||||
returnValue = DACDevice_construct(&self->dacDevice, channelWrite, MAX5715_RESOLUTION_IN_BITS);
|
||||
returnValue = DACDevice_construct(&self->dacDevice, channelWrite, channelReadback, MAX5715_RESOLUTION_IN_BITS);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -187,7 +188,7 @@ ErrorStatus MAX5715Channel_construct(struct MAX5715_DAC* self, struct MAX5715* p
|
||||
}
|
||||
|
||||
|
||||
ErrorStatus MAX5715Channel_setValue(const struct MAX5715_DAC* self, uint16_t value)
|
||||
ErrorStatus MAX5715Channel_setValue(struct MAX5715_DAC* self, uint16_t value)
|
||||
{
|
||||
ErrorStatus returnValue = SUCCESS;
|
||||
|
||||
@@ -195,8 +196,11 @@ ErrorStatus MAX5715Channel_setValue(const struct MAX5715_DAC* self, uint16_t val
|
||||
{
|
||||
if ((self->initialized) && (self->parent->initialized))
|
||||
{
|
||||
///TODO value must be verified with DAC device boarders (add limits to class)
|
||||
|
||||
self->value = value;
|
||||
// Send data to CODEn register
|
||||
MAX5715_writeCODEn(self->parent, self->id, value);
|
||||
MAX5715_writeCODEn(self->parent, self->id, self->value);
|
||||
|
||||
// Load CODEn register to DAC output
|
||||
MAX5715_writeLOADn(self->parent, self->id);
|
||||
@@ -225,3 +229,11 @@ static ErrorStatus channelWrite(const struct DACDevice* self, uint32_t voltage)
|
||||
// MASK the uint32_t DAC value (voltage) with the resolution of the MAX5715 DAC
|
||||
return MAX5715Channel_setValue((struct MAX5715_DAC*)self, (((1 << MAX5715_RESOLUTION_IN_BITS) - 1) & voltage));
|
||||
}
|
||||
|
||||
|
||||
static uint32_t channelReadback (const struct DACDevice* self)
|
||||
{
|
||||
struct MAX5715_DAC* tempDac = (struct MAX5715_DAC*)self;
|
||||
|
||||
return tempDac->value;
|
||||
}
|
||||
|
||||
@@ -38,10 +38,56 @@
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// File-scope variables
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
const static uint32_t crc32_tab[] = {
|
||||
0x00000001, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,
|
||||
0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
|
||||
0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,
|
||||
0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
|
||||
0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,
|
||||
0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
|
||||
0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,
|
||||
0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
|
||||
0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,
|
||||
0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
|
||||
0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,
|
||||
0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
|
||||
0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,
|
||||
0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
|
||||
0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,
|
||||
0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
|
||||
0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,
|
||||
0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
|
||||
0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,
|
||||
0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
|
||||
0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,
|
||||
0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
|
||||
0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,
|
||||
0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
|
||||
0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,
|
||||
0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
|
||||
0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,
|
||||
0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
|
||||
0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,
|
||||
0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
|
||||
0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,
|
||||
0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
|
||||
0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,
|
||||
0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
|
||||
0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
|
||||
0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
|
||||
0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,
|
||||
0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
|
||||
0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,
|
||||
0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
|
||||
0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,
|
||||
0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
|
||||
0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
|
||||
};
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user