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 B15FgetInstance (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
exException 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
msgBeschreibung 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
channelKanalwahl von 0 - 7
Exceptions
DriverException

Definition at line 346 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_aAuswahl des ADC a, von 0 - 7
buffer_aSpeichertort für Werte des Kanals a
offset_aAnzahl an Werten des Kanals a, die im Speicher übersprungen werden sollen
channel_bAuswahl des ADC b, von 0 - 7
buffer_bSpeichertort für Werte des Kanals b
offset_bAnzahl an Werten des Kanals b, die im Speicher übersprungen werden
startStartwert des DACs
deltaSchrittweite, mit welcher der DAC inkrementiert wird
countAnzahl an Inkrementierungen
Exceptions
DriverException

Definition at line 369 of file b15f.cpp.

◆ analogWrite0()

void B15F::analogWrite0 ( uint16_t  port)

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

Parameters
port10-Bit Wert
Exceptions
DriverException

Definition at line 312 of file b15f.cpp.

◆ analogWrite1()

void B15F::analogWrite1 ( uint16_t  port)

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

Parameters
port10-Bit Wert
Exceptions
DriverException

Definition at line 329 of file b15f.cpp.

◆ delay_ms()

void B15F::delay_ms ( uint16_t  ms)

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

Parameters
msVerzö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
usVerzö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 255 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 274 of file b15f.cpp.

◆ digitalWrite0()

void B15F::digitalWrite0 ( uint8_t  port)

Setzt den Wert des digitalen Ausgabeports 0

Parameters
portWert 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
portWert für gesamten Port
Exceptions
DriverException

Definition at line 237 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
cmdDer 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 554 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
adrSpeicheradresse
Returns
Wert der Speicherzelle

Definition at line 525 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
adrSpeicheradresse
Returns
Wert der Speicherzelle

Definition at line 485 of file b15f.cpp.

◆ getRegister()

uint8_t B15F::getRegister ( volatile uint8_t *  adr)

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

Parameters
adrSpeicheradresse
Returns
Wert des Registers

Definition at line 549 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
freqPWM Frequenz
Returns
TOP Wert des PWM Value für die gesetzte Frequenz
Exceptions
DriverException

Definition at line 426 of file b15f.cpp.

◆ pwmSetValue()

void B15F::pwmSetValue ( uint8_t  value)

Setzt den PWM Wert an PB4.

Parameters
valuePWM Wert [0..TOP]
Exceptions
DriverException

Definition at line 447 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 293 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
bByte, 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
funcFunktion, 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
adrSpeicheradresse
valNeuer Wert für die Zelle
Exceptions
DriverException

Definition at line 504 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
adrSpeicheradresse
valNeuer Wert für die Zelle
Returns
true, falls Vorgang erfolgreich

Definition at line 465 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
adrSpeicheradresse
valNeuer Wert für das Register
Exceptions
DriverException

Definition at line 544 of file b15f.cpp.

◆ setServoDisabled()

void B15F::setServoDisabled ( void  )

Deaktiviert das Servo Signal an PB2.

Exceptions
DriverException

Definition at line 588 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 571 of file b15f.cpp.

◆ setServoPosition()

void B15F::setServoPosition ( uint16_t  pos)

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

Parameters
posPulselänge des Signals in Mikrosekunden
Exceptions
DriverException

Definition at line 605 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: