ISF15ACP4 Driver 1.0.0
API reference
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
isf15acp4 Namespace Reference

Namespaces

namespace  animations
 
namespace  colors
 Common preset colors.
 
namespace  detail
 
namespace  font
 
namespace  ssd1331
 

Classes

class  Animator
 Drives timed frame updates on top of a GraphicsContext. More...
 
class  ButtonUI
 Debounced switch handling with visual feedback on the OLED. More...
 
class  Canvas
 CPU-side RGB565 framebuffer with basic drawing operations. More...
 
struct  DisplayGeometry
 Compile-time display geometry for a product variant. More...
 
struct  DisplayPresenter
 Type-erased presenter used by HardwareDirect backend. More...
 
class  GraphicsContext
 Owns the active graphics backend selected at construction time. More...
 
class  GraphicsSurface
 CRTP interface every graphics backend must implement. More...
 
struct  Point
 2D point in display coordinates. More...
 
struct  Rect
 Axis-aligned rectangle in display coordinates (inclusive bounds). More...
 
class  SmartDisplay
 High-level driver for NKK SSD1331-based SmartDisplay modules. More...
 
struct  SmartDisplayConfig
 Configuration for SmartDisplay construction. More...
 
class  SpiInterface
 CRTP transport interface for SPI writes and GPIO control. More...
 

Typedefs

using AnimationFrameFn = void(*)(GraphicsContext &gfx, uint32_t frame, void *user_data) noexcept
 Callback that renders one animation frame into a graphics context.
 
using Color565 = uint16_t
 16-bit RGB565 color value (R5G6B5).
 

Enumerations

enum class  ButtonEvent : uint8_t {
  None = 0 , Pressed , Released , Click ,
  LongPress
}
 Edge-qualified button events from debounced polling. More...
 
enum class  GraphicsBackend : uint8_t { BuiltinCanvas = 0 , HardwareDirect = 1 , Animator = 2 }
 Selectable graphics engine used by SmartDisplay and UI helpers. More...
 
enum class  CtrlPin : uint8_t {
  ChipSelect = 0 , DataCommand = 1 , Reset = 2 , VccEnable = 3 ,
  Switch = 4
}
 Hardware control signals for the SSD1331 SmartDisplay interface. More...
 
enum class  GpioSignal : uint8_t { Inactive = 0 , Active = 1 }
 Abstract GPIO level for control pins. More...
 
enum class  SpiMode : uint8_t { Mode0 = 0 , Mode3 = 3 }
 SPI mode required by NKK SmartDisplay devices. More...
 
enum class  ProductVariant : uint8_t { Isf15acp4 = 0 , Isc15anp4 = 1 , Isc01p = 2 }
 Supported NKK SmartDisplay OLED product variants. More...
 
enum class  Error : uint16_t {
  None = 0 , SpiWrite = 1 << 0 , GpioControl = 1 << 1 , InvalidParam = 1 << 2 ,
  NotInitialized = 1 << 3 , OutOfRange = 1 << 4 , PowerSequence = 1 << 5
}
 Driver error flags (bitmask). More...
 
enum class  DisplayState : uint8_t { Off = 0 , On = 1 , Dim = 2 }
 Display power/visibility state. More...
 

Functions

const char * GetDriverVersion () noexcept
 
constexpr const DisplayGeometry & GetGeometry (ProductVariant variant) noexcept
 Get geometry metadata for a product variant.
 
constexpr Color565 MakeColor565 (uint8_t r, uint8_t g, uint8_t b) noexcept
 Build an RGB565 color from 8-bit RGB channels.
 
Color565 BmpPixelToColor565 (const uint8_t *bgr) noexcept
 Convert a 24-bit BMP pixel (BGR byte order) to RGB565.
 

Variables

constexpr DisplayGeometry kGeometryIsf15acp4
 
constexpr DisplayGeometry kGeometryIsc15anp4
 
constexpr DisplayGeometry kGeometryIsc01p
 

Typedef Documentation

◆ AnimationFrameFn

using isf15acp4::AnimationFrameFn = typedef void (*)(GraphicsContext& gfx, uint32_t frame, void* user_data) noexcept

Callback that renders one animation frame into a graphics context.

◆ Color565

using isf15acp4::Color565 = typedef uint16_t

16-bit RGB565 color value (R5G6B5).

Enumeration Type Documentation

◆ ButtonEvent

enum class isf15acp4::ButtonEvent : uint8_t
strong

Edge-qualified button events from debounced polling.

Enumerator
None 
Pressed 
Released 
Click 
LongPress 

◆ CtrlPin

enum class isf15acp4::CtrlPin : uint8_t
strong

Hardware control signals for the SSD1331 SmartDisplay interface.

The driver uses abstract ACTIVE/INACTIVE levels so platform adapters can map polarity correctly (e.g. CS is active-low on the physical pin).

Enumerator
ChipSelect 

SS / slave select (active-low on device)

DataCommand 

D/C: command (inactive) vs data (active)

Reset 

RES# reset input: Active = held in reset (pin low), Inactive = running (pin high)

VccEnable 

Optional charge-pump / 16V rail enable.

Switch 

Optional momentary switch sense input.

◆ DisplayState

enum class isf15acp4::DisplayState : uint8_t
strong

Display power/visibility state.

Enumerator
Off 
On 
Dim 

◆ Error

enum class isf15acp4::Error : uint16_t
strong

Driver error flags (bitmask).

Enumerator
None 
SpiWrite 
GpioControl 
InvalidParam 
NotInitialized 
OutOfRange 
PowerSequence 

◆ GpioSignal

enum class isf15acp4::GpioSignal : uint8_t
strong

Abstract GPIO level for control pins.

Enumerator
Inactive 
Active 

◆ GraphicsBackend

enum class isf15acp4::GraphicsBackend : uint8_t
strong

Selectable graphics engine used by SmartDisplay and UI helpers.

Choose at construction time via SmartDisplayConfig::backend or GraphicsContext::Create().

Enumerator
BuiltinCanvas 

CPU RGB565 framebuffer with 5x7 font and software primitives.

HardwareDirect 

No framebuffer — uses SSD1331 hardware draw commands only.

Animator 

Builtin canvas plus frame sequencer for timed animations.

◆ ProductVariant

enum class isf15acp4::ProductVariant : uint8_t
strong

Supported NKK SmartDisplay OLED product variants.

All variants share the SSD1331 controller but use different initialization tables, memory windows, and visible pixel areas.

Enumerator
Isf15acp4 

Frameless OLED pushbutton, 96x64 (ISF15ACP4)

Isc15anp4 

Standard OLED pushbutton, 64x48 (ISC15ANP4)

Isc01p 

OLED display module, 52x36 (ISC01P)

◆ SpiMode

enum class isf15acp4::SpiMode : uint8_t
strong

SPI mode required by NKK SmartDisplay devices.

Data is sampled on the rising edge of SCK (mode 0 or 3 depending on CPOL). Engineering kits commonly use CPOL=0, CPHA=0.

Enumerator
Mode0 
Mode3 

Function Documentation

◆ BmpPixelToColor565()

Color565 isf15acp4::BmpPixelToColor565 ( const uint8_t *  bgr)
inlinenoexcept

Convert a 24-bit BMP pixel (BGR byte order) to RGB565.

Parameters
bgrPointer to three bytes in B, G, R order.
Returns
RGB565 color suitable for SSD1331 65k mode.

◆ GetDriverVersion()

const char * isf15acp4::GetDriverVersion ( )
inlinenoexcept

◆ GetGeometry()

constexpr const DisplayGeometry & isf15acp4::GetGeometry ( ProductVariant  variant)
inlineconstexprnoexcept

Get geometry metadata for a product variant.

Parameters
variantProduct variant identifier.
Returns
Const reference to static geometry descriptor.

◆ MakeColor565()

constexpr Color565 isf15acp4::MakeColor565 ( uint8_t  r,
uint8_t  g,
uint8_t  b 
)
inlineconstexprnoexcept

Build an RGB565 color from 8-bit RGB channels.

Parameters
rRed channel (0-255).
gGreen channel (0-255).
bBlue channel (0-255).
Returns
Packed RGB565 color.

Variable Documentation

◆ kGeometryIsc01p

constexpr DisplayGeometry isf15acp4::kGeometryIsc01p
inlineconstexpr
Initial value:
{52, 36, 0x16, 0x49, 0x00, 0x23,
52u * 36u * 2u}

◆ kGeometryIsc15anp4

constexpr DisplayGeometry isf15acp4::kGeometryIsc15anp4
inlineconstexpr
Initial value:
{64, 48, 0x10, 0x4F, 0x00, 0x2F,
64u * 48u * 2u}

◆ kGeometryIsf15acp4

constexpr DisplayGeometry isf15acp4::kGeometryIsf15acp4
inlineconstexpr
Initial value:
{96, 64, 0x00, 0x5F, 0x00, 0x3F,
96u * 64u * 2u}