B15F Board 15 Famulus Edition

Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
B15F Class Reference

`#include <b15f.h>`

## Public Member Functions
void | reconnect (void)
void | discard (void)
void | testConnection (void)
void | testIntConv (void)
std::vector< std::string > | getBoardInfo (void)
void | delay_ms (uint16_t ms)
void | delay_us (uint16_t us)
void | reverse (uint8_t &b)
void | activateSelfTestMode (void)
void | digitalWrite0 (uint8_t)
void | digitalWrite1 (uint8_t)
uint8_t | digitalRead0 (void)
uint8_t | digitalRead1 (void)
uint8_t | readDipSwitch (void)
void | analogWrite0 (uint16_t port)
void | analogWrite1 (uint16_t port)
uint16_t | analogRead (uint8_t channel)
void | analogSequence (uint8_t channel_a, uint16_t *buffer_a, uint32_t offset_a, uint8_t channel_b, uint16_t *buffer_b, uint32_t offset_b, uint16_t start, int16_t delta, uint16_t count)
uint8_t | pwmSetFrequency (uint32_t freq)
void | pwmSetValue (uint8_t value)
void | setMem8 (volatile uint8_t *adr, uint8_t val)
uint8_t | getMem8 (volatile uint8_t *adr)
void | setMem16 (volatile uint16_t *adr, uint16_t val)
uint16_t | getMem16 (volatile uint16_t *adr)
void | setRegister (volatile uint8_t *adr, uint8_t val)
uint8_t | getRegister (volatile uint8_t *adr)
uint16_t * | getInterruptCounterOffset (void)
void | setServoEnabled (void)
void | setServoDisabled (void)
void | setServoPosition (uint16_t pos)

## Static Public Member Functions
static B15F & | getInstance (void)
static std::string | exec (std::string cmd)
static void | abort (std::string msg)
static void | abort (std::exception &ex)
static void | setAbortHandler (errorhandler_t func)

## Public Attributes
const std::string | PRE = "[B15F] "
| B15F stdout prefix.

## Static Public Attributes
constexpr static uint8_t | MSG_OK = 0xFF
| Value to acknowledge a received command.
constexpr static uint8_t | MSG_FAIL = 0xFE
| Value to reject a received command.
constexpr static uint16_t | RECONNECT_TIMEOUT = 64
| Time in ms after which a reconnect attempt aborts.
constexpr static uint16_t | WDT_TIMEOUT = 15
| Time in ms after which the watch dog timer resets the MCU.
constexpr static uint8_t | RECONNECT_TRIES = 3
| Maximum count of reconnect attempts after which the driver stops.
constexpr static uint32_t | BAUDRATE = 57600
| USART baudrate for communication with the MCU.

## Detailed Description

main driver class

Definition at line 38 of file b15f.h.

## Member Function Documentation

## ◆ abort() [1/2]

void B15F::abort | ( | std::exception & | ex | ) |
| static

Multithread sicherer Abbruch des B15F-Treibers

Parameters

  ex | Exception als Abbruchursache

Definition at line 181 of file b15f.cpp.

## ◆ abort() [2/2]

void B15F::abort | ( | std::string | msg | ) |
| static

Multithread sicherer Abbruch des B15F-Treibers

Parameters

  msg | Beschreibung der Abbruchursache

Definition at line 175 of file b15f.cpp.

## ◆ activateSelfTestMode()

void B15F::activateSelfTestMode | ( | void |  | ) |

Versetzt das Board in den Selbsttest-Modus WICHTIG: Es darf dabei nichts an den Klemmen angeschlossen sein!

Exceptions

  DriverException |

Definition at line 204 of file b15f.cpp.

## ◆ analogRead()

uint16_t B15F::analogRead | ( | uint8_t | channel | ) |

Liest den Wert des Analog-Digital-Converters (ADC / ADU)

Parameters

  channel | Kanalwahl von 0 - 7

Exceptions

  DriverException |

Definition at line 336 of file b15f.cpp.

## ◆ analogSequence()

void B15F::analogSequence | ( | uint8_t | channel_a,
|  | uint16_t * | buffer_a,
|  | uint32_t | offset_a,
|  | uint8_t | channel_b,
|  | uint16_t * | buffer_b,
|  | uint32_t | offset_b,
|  | uint16_t | start,
|  | int16_t | delta,
|  | uint16_t | count
| ) |  |

DAC 0 wird auf den Startwert gesetzt und dann schrittweise um Delta inkrementiert. Für jeden eingestelleten DAC-Wert werden zwei ADCs (channel_a und channel_b) angesprochen und die Werte übermittelt. Die Werte werden in buffer_a für Kanal a und buffer_b für Kanal b gespeichert.

Parameters

  channel_a | Auswahl des ADC a, von 0 - 7
  buffer_a | Speichertort für Werte des Kanals a
  offset_a | Anzahl an Werten des Kanals a, die im Speicher übersprungen werden sollen
  channel_b | Auswahl des ADC b, von 0 - 7
  buffer_b | Speichertort für Werte des Kanals b
  offset_b | Anzahl an Werten des Kanals b, die im Speicher übersprungen werden
  start | Startwert des DACs
  delta | Schrittweite, mit welcher der DAC inkrementiert wird
  count | Anzahl an Inkrementierungen

Exceptions

  DriverException |

Definition at line 359 of file b15f.cpp.

## ◆ analogWrite0()

void B15F::analogWrite0 | ( | uint16_t | port | ) |

Setzt den Wert des Digital-Analog-Converters (DAC / DAU) 0

Parameters

  port | 10-Bit Wert

Exceptions

  DriverException |

Definition at line 302 of file b15f.cpp.

## ◆ analogWrite1()

void B15F::analogWrite1 | ( | uint16_t | port | ) |

Setzt den Wert des Digital-Analog-Converters (DAC / DAU) 1

Parameters

  port | 10-Bit Wert

Exceptions

  DriverException |

Definition at line 319 of file b15f.cpp.

## ◆ delay_ms()

void B15F::delay_ms | ( | uint16_t | ms | ) |

Lässt den Treiber für eine angegebene Zeit pausieren

Parameters

  ms | Verzögerung in Millisekunden

Definition at line 141 of file b15f.cpp.

## ◆ delay_us()

void B15F::delay_us | ( | uint16_t | us | ) |

Lässt den Treiber für eine angegebene Zeit pausieren

Parameters

  us | Verzögerung in Microsekunden

Definition at line 146 of file b15f.cpp.

## ◆ digitalRead0()

uint8_t B15F::digitalRead0 | ( | void |  | ) |

Liest den Wert des digitalen Eingabeports 0

Returns
  Wert für gesamten Port

Exceptions

  DriverException |

Definition at line 251 of file b15f.cpp.

## ◆ digitalRead1()

uint8_t B15F::digitalRead1 | ( | void |  | ) |

Liest den Wert des digitalen Eingabeports 1

Returns
  Wert für gesamten Port

Exceptions

  DriverException |

Definition at line 267 of file b15f.cpp.

## ◆ digitalWrite0()

void B15F::digitalWrite0 | ( | uint8_t | port | ) |

Setzt den Wert des digitalen Ausgabeports 0

Parameters

  port | Wert für gesamten Port

Exceptions

  DriverException |

Definition at line 219 of file b15f.cpp.

## ◆ digitalWrite1()

void B15F::digitalWrite1 | ( | uint8_t | port | ) |

Setzt den Wert des digitalen Ausgabeports 1

Parameters

  port | Wert für gesamten Port

Exceptions

  DriverException |

Definition at line 235 of file b15f.cpp.

## ◆ discard()

void B15F::discard | ( | void |  | ) |

Verwirft Daten im USART Puffer auf dieser Maschine und B15

Exceptions

  DriverException |

Definition at line 40 of file b15f.cpp.

## ◆ exec()

std::string B15F::exec | ( | std::string | cmd | ) |
| static

Führt ein Befehl auf dieser Maschine aus und liefert stdout zurück

Parameters

  cmd | Der Befehl

Definition at line 159 of file b15f.cpp.

## ◆ getBoardInfo()

std::vector< std::string > B15F::getBoardInfo | ( | void |  | ) |

Liefert Informationen zur aktuellen Firmware des B15

Exceptions

  DriverException |

Definition at line 107 of file b15f.cpp.

## ◆ getInstance()

B15F & B15F::getInstance | ( | void |  | ) |
| static

Liefert eine Referenz zur aktuellen Treiber-Instanz, die Verbindung wird gegebenenfalls automatisch hergestellt.

Exceptions

  DriverException |

Definition at line 10 of file b15f.cpp.

## ◆ getInterruptCounterOffset()

uint16_t * B15F::getInterruptCounterOffset | ( | void |  | ) |

Liefert die Adresse des ersten Interrupt Counters (BASISR).

Returns
  Adresse (in der MCU)

Definition at line 544 of file b15f.cpp.

## ◆ getMem16()

uint16_t B15F::getMem16 | ( | volatile uint16_t * | adr | ) |

Liefert den Wert einer MCU Speicherzelle der Größe 16 Bit. Diese kann ein Register oder RAM-Daten sein.

Parameters

  adr | Speicheradresse

Returns
  Wert der Speicherzelle

Definition at line 515 of file b15f.cpp.

## ◆ getMem8()

uint8_t B15F::getMem8 | ( | volatile uint8_t * | adr | ) |

Liefert den Wert einer MCU Speicherzelle der Größe 8 Bit. Diese kann ein Register oder RAM-Daten sein.

Parameters

  adr | Speicheradresse

Returns
  Wert der Speicherzelle

Definition at line 475 of file b15f.cpp.

## ◆ getRegister()

uint8_t B15F::getRegister | ( | volatile uint8_t * | adr | ) |

Diese Funktion ist ein Alias für getMem8().

Parameters

  adr | Speicheradresse

Returns
  Wert des Registers

Definition at line 539 of file b15f.cpp.

## ◆ pwmSetFrequency()

uint8_t B15F::pwmSetFrequency | ( | uint32_t | freq | ) |

Frequenz von PWM an PB4. Setzt die Register so, dass näherungsweise die gewünschte Frequenz erzeugt wird. Ist freq == 0 wird PWM deaktiviert. Standardfrequenz: 31300 (empfohlen, da dann TOP == 255)

Parameters

  freq | PWM Frequenz

Returns
  TOP Wert des PWM Value für die gesetzte Frequenz

Exceptions

  DriverException |

Definition at line 416 of file b15f.cpp.

## ◆ pwmSetValue()

void B15F::pwmSetValue | ( | uint8_t | value | ) |

Setzt den PWM Wert an PB4.

Parameters

  value | PWM Wert [0..TOP]

Exceptions

  DriverException |

Definition at line 437 of file b15f.cpp.

## ◆ readDipSwitch()

uint8_t B15F::readDipSwitch | ( | void |  | ) |

Liest den Wert des digitalen Eingabeports, an dem der DIP-switch angeschlossen ist (S7)

Returns
  Wert für gesamten Port

Exceptions

  DriverException |

Definition at line 283 of file b15f.cpp.

## ◆ reconnect()

void B15F::reconnect | ( | void |  | ) |

Versucht die Verbindung zum B15 wiederherzustellen

Exceptions

  DriverException |

Definition at line 18 of file b15f.cpp.

## ◆ reverse()

void B15F::reverse | ( | uint8_t & | b | ) |

Invertiert das Bitmuster eines Bytes z.B.: 10100001 --> 10000101

Parameters

  b | Byte, das invertiert wird

Definition at line 151 of file b15f.cpp.

## ◆ setAbortHandler()

void B15F::setAbortHandler | ( | errorhandler_t | func | ) |
| static

Setzt eine Fehlerbehandlungsroutine für den Treiberabbruch (abort)

Parameters

  func | Funktion, die Exception als Parameter bekommt

Definition at line 192 of file b15f.cpp.

## ◆ setMem16()

void B15F::setMem16 | ( | volatile uint16_t * | adr,
|  | uint16_t | val
| ) |  |

Setzt direkt den Wert einer MCU Speicherzelle der Größe 16 Bit. Diese kann ein Register oder RAM-Daten sein. Wichtig: bei einer falschen Adresse kann das Board 15 ernsthaften Schaden nehmen!

Parameters

  adr | Speicheradresse
  val | Neuer Wert für die Zelle

Exceptions

  DriverException |

Definition at line 494 of file b15f.cpp.

## ◆ setMem8()

void B15F::setMem8 | ( | volatile uint8_t * | adr,
|  | uint8_t | val
| ) |  |

Setzt direkt den Wert einer MCU Speicherzelle der Größe 8 Bit. Diese kann ein Register oder RAM-Daten sein. Wichtig: bei einer falschen Adresse kann das Board 15 ernsthaften Schaden nehmen!

Parameters

  adr | Speicheradresse
  val | Neuer Wert für die Zelle

Returns
  true, falls Vorgang erfolgreich

Definition at line 455 of file b15f.cpp.

## ◆ setRegister()

void B15F::setRegister | ( | volatile uint8_t * | adr,
|  | uint8_t | val
| ) |  |

Diese Funktion ist ein Alias für setMem8(). Wichtig: bei einer falschen Adresse kann das Board 15 ernsthaften Schaden nehmen!

Parameters

  adr | Speicheradresse
  val | Neuer Wert für das Register

Exceptions

  DriverException |

Definition at line 534 of file b15f.cpp.

## ◆ setServoDisabled()

void B15F::setServoDisabled | ( | void |  | ) |

Deaktiviert das Servo Signal an PB2.

Exceptions

  DriverException |

Definition at line 578 of file b15f.cpp.

## ◆ setServoEnabled()

void B15F::setServoEnabled | ( | void |  | ) |

Aktiviert das Servo Signal an PB2 und Initialisiert es mit 1,5ms Pulselänge.

Exceptions

  DriverException |

Definition at line 561 of file b15f.cpp.

## ◆ setServoPosition()

void B15F::setServoPosition | ( | uint16_t | pos | ) |

Setzt die Pulselänge des Servo Signals und damit die Position.

Parameters

  pos | Pulselänge des Signals in Mikrosekunden

Exceptions

  DriverException |

Definition at line 595 of file b15f.cpp.

## ◆ testConnection()

void B15F::testConnection | ( | void |  | ) |

Testet die USART Verbindung auf Funktion

Exceptions

  DriverException |

Definition at line 63 of file b15f.cpp.

## ◆ testIntConv()

void B15F::testIntConv | ( | void |  | ) |

Testet die Integer Konvertierung der USART Verbindung

Exceptions

  DriverException |

Definition at line 85 of file b15f.cpp.

The documentation for this class was generated from the following files:

- drv/b15f.h
- drv/b15f.cpp