Updated all GPIO to PCBA updated version
Added LED module git-svn-id: https://svn.vbchaos.nl/svn/hsb/trunk@321 05563f52-14a8-4384-a975-3d1654cca0fa
This commit is contained in:
@@ -0,0 +1,158 @@
|
||||
// -----------------------------------------------------------------------------
|
||||
/// @file Leds.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 Leds.c
|
||||
/// @ingroup {group_name}
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Include files
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
#include "gpio.h"
|
||||
#include "platform.h"
|
||||
|
||||
#include "IODevice.h"
|
||||
#include "Leds.h"
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Constant and macro definitions
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Type definitions
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
struct Led
|
||||
{
|
||||
bool initialized;
|
||||
struct IODevice* ioDevice;
|
||||
};
|
||||
|
||||
|
||||
struct Leds
|
||||
{
|
||||
bool initialized;
|
||||
struct Led leds[LED_NUMBER_OF_LEDS];
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// File-scope variables
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static struct Leds self = { .initialized = false };
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Function declarations
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Function definitions
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
void Led_construct(void)
|
||||
{
|
||||
if (!self.initialized)
|
||||
{
|
||||
self.initialized = true;
|
||||
|
||||
self.leds[LED_ONBOARD_GREEN].ioDevice = &ledInternGreen->device;
|
||||
self.leds[LED_ONBOARD_GREEN].initialized = true;
|
||||
|
||||
self.leds[LED_ONBOARD_ORANGE].ioDevice = &ledInternOrange->device;
|
||||
self.leds[LED_ONBOARD_ORANGE].initialized = true;
|
||||
|
||||
self.leds[LED_BICOLOR_GREEN].ioDevice = &ledBicolourGreen->device;
|
||||
self.leds[LED_BICOLOR_GREEN].initialized = true;
|
||||
|
||||
self.leds[LED_BICOLOR_RED].ioDevice = &ledBicolourRed->device;
|
||||
self.leds[LED_BICOLOR_RED].initialized = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void Led_on(Led led)
|
||||
{
|
||||
char bufferTrue = (char)true;
|
||||
if (self.initialized)
|
||||
{
|
||||
if (self.leds[led].initialized)
|
||||
{
|
||||
// IN case of the BICOLOUR ORANGE LED, actually the GREEN and RED LEDs must be switched
|
||||
if (led == LED_BICOLOR_ORANGE)
|
||||
{
|
||||
IODevice_write(self.leds[LED_BICOLOR_GREEN].ioDevice, &bufferTrue, 1);
|
||||
IODevice_write(self.leds[LED_BICOLOR_RED].ioDevice, &bufferTrue, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
IODevice_write(self.leds[led].ioDevice, &bufferTrue, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void Led_off(Led led)
|
||||
{
|
||||
char bufferFalse = (char)false;
|
||||
if (self.initialized)
|
||||
{
|
||||
if (self.leds[led].initialized)
|
||||
{
|
||||
// IN case of the BICOLOUR ORANGE LED, actually the GREEN and RED LEDs must be switched
|
||||
if (led == LED_BICOLOR_ORANGE)
|
||||
{
|
||||
IODevice_write(self.leds[LED_BICOLOR_GREEN].ioDevice, &bufferFalse, 1);
|
||||
IODevice_write(self.leds[LED_BICOLOR_RED].ioDevice, &bufferFalse, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
IODevice_write(self.leds[led].ioDevice, &bufferFalse, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern bool Led_getStatus(Led led)
|
||||
{
|
||||
bool returnValue = false;
|
||||
if (self.initialized)
|
||||
{
|
||||
if (self.leds[led].initialized)
|
||||
{
|
||||
char value;
|
||||
IODevice_read(self.leds[led].ioDevice, &value, 1, NULL);
|
||||
if (value != (char)false)
|
||||
{
|
||||
returnValue = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return returnValue;
|
||||
}
|
||||
Reference in New Issue
Block a user