//$file${.::bsp.cpp} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
//
// Model: CPF.qm
// File:  ${.::bsp.cpp}
//
// This code has been generated by QM 4.5.1 (https://www.state-machine.com/qm).
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
//
// This program is open source software: you can redistribute it and/or
// modify it under the terms of the GNU General Public License as published
// by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
// for more details.
//
//$endhead${.::bsp.cpp} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#include "qpcpp.h"  // QP/C++ framework API
#include "bsp.h"    // Board Support Package interface
#include <iostream> // for cout/cerr
#include <cstdlib>  // for exit()

using namespace std;
using namespace QP;

void BSP::init(void)   {
    cout << "Simple Mission example\nQP/C++ version: "
         << QP_VERSION_STR
         << "\nPress Ctrl-C to quit..."
         << endl; // print QP version
}
void BSP::ledOff(void) { cout << "LED OFF" << endl; }
void BSP::ledOn(void)  { cout << "LED ON" << endl;  }

// callback functions needed by the framework --------------------------------
void QF::onStartup(void) {}
void QP::QF::onCleanup(void) {}
void QP::QF_onClockTick(void) {
    QF::TICK_X(0U, 0); // QF clock tick processing for rate 0
}
void Q_onAssert(char const * const module, int loc) {
    cerr << "Assertion failed in " <<  module << ":" << loc << endl;
    exit(-1);
}