This commit is contained in:
Simon Schmidt 2021-07-07 16:10:14 +02:00
parent b4513dc418
commit 81c79b5e64
3 changed files with 24 additions and 20 deletions

View File

@ -19,7 +19,8 @@
#ifndef RTW_HEADER_FSMTreppe_h_ #ifndef RTW_HEADER_FSMTreppe_h_
#define RTW_HEADER_FSMTreppe_h_ #define RTW_HEADER_FSMTreppe_h_
#include <cstdint> #include <stdint.h>
#include <Arduino.h>
// Class declaration for model FSMTreppe // Class declaration for model FSMTreppe
class FSMTreppeModelClass { class FSMTreppeModelClass {
@ -34,17 +35,17 @@ class FSMTreppeModelClass {
// External inputs (root inport signals with default storage) // External inputs (root inport signals with default storage)
struct ExtU_FSMTreppe_T { struct ExtU_FSMTreppe_T {
uint32_t sensor_unten; // '<Root>/sensor_unten' int sensor_unten; // '<Root>/sensor_unten'
uint32_t sensor_oben; // '<Root>/sensor_oben' int sensor_oben; // '<Root>/sensor_oben'
uint32_t anim_beendet; // '<Root>/anim_beendet' int anim_beendet; // '<Root>/anim_beendet'
uint32_t ldr_schwelle; // '<Root>/ldr_schwelle' int ldr_schwelle; // '<Root>/ldr_schwelle'
}; };
// External outputs (root outports fed by signals with default storage) // External outputs (root outports fed by signals with default storage)
struct ExtY_FSMTreppe_T { struct ExtY_FSMTreppe_T {
uint32_t laufrichtung; // '<Root>/laufrichtung' int laufrichtung; // '<Root>/laufrichtung'
uint32_t status; // '<Root>/status' int status; // '<Root>/status'
uint32_t dimmrichtung; // '<Root>/dimmrichtung' int dimmrichtung; // '<Root>/dimmrichtung'
}; };
// model initialize function // model initialize function

View File

@ -221,29 +221,30 @@ bool Treppe::check_ldr()
void Treppe::task() void Treppe::task()
{ {
uint32_t m=micros(); uint32_t m=micros();
fsm_inputs.ldr_schwelle = check_ldr(); // fsm_inputs.ldr_schwelle = check_ldr();
Serial.print("1:"); fsm_inputs.ldr_schwelle = 1;
Serial.println(micros()-m); // Serial.print("1:");
// Serial.println(micros()-m);
m=micros(); m=micros();
fsm_inputs.sensor_oben = read_sensor(SENSOR_OBEN); fsm_inputs.sensor_oben = read_sensor(SENSOR_OBEN);
fsm_inputs.sensor_unten = read_sensor(SENSOR_UNTEN); fsm_inputs.sensor_unten = read_sensor(SENSOR_UNTEN);
fsm_inputs.anim_beendet = anim_beendet; fsm_inputs.anim_beendet = 1;
// Serial.print("2:"); // Serial.print("2:");
// Serial.println(micros()-m); // Serial.println(micros()-m);
m=micros(); m=micros();
FSMTreppe_Obj.setExternalInputs(&fsm_inputs); FSMTreppe_Obj->setExternalInputs(&fsm_inputs);
// Serial.print("3:"); // Serial.print("3:");
// Serial.println(micros()-m); // Serial.println(micros()-m);
m=micros(); m=micros();
FSMTreppe_Obj.step(); FSMTreppe_Obj->step();
// Serial.print("4:"); // Serial.print("4:");
// Serial.println(micros()-m); // Serial.println(micros()-m);
m=micros(); m=micros();
fsm_outputs = FSMTreppe_Obj.getExternalOutputs(); fsm_outputs = FSMTreppe_Obj->getExternalOutputs();
// Serial.print("5:"); // Serial.print("5:");
// Serial.println(micros()-m); // Serial.println(micros()-m);

View File

@ -1,7 +1,7 @@
#ifndef __TREPPE_H #ifndef __TREPPE_H
#define __TREPPE_H #define __TREPPE_H
#include "FSMTreppe3/FSMTreppe3.h" #include "FSMTreppe2/FSMTreppe2.h"
#include "PCA9685.h" #include "PCA9685.h"
// #define LDRDEBUG // comment in to override LDR measurement // #define LDRDEBUG // comment in to override LDR measurement
@ -53,7 +53,7 @@ private:
// initialize with i2c-Address 0, use Wire Library // initialize with i2c-Address 0, use Wire Library
PCA9685 pwmController; PCA9685 pwmController;
FSMTreppeModelClass FSMTreppe_Obj; FSMTreppeModelClass* FSMTreppe_Obj;
FSMTreppeModelClass::ExtU_FSMTreppe_T fsm_inputs; FSMTreppeModelClass::ExtU_FSMTreppe_T fsm_inputs;
FSMTreppeModelClass::ExtY_FSMTreppe_T fsm_outputs; FSMTreppeModelClass::ExtY_FSMTreppe_T fsm_outputs;
enum fsm_status_t { enum fsm_status_t {
@ -91,11 +91,13 @@ private:
bool check_ldr(); bool check_ldr();
public: public:
Treppe(uint8_t _stufen) : stufen(_stufen){ Treppe(uint8_t _stufen) : stufen(_stufen){
FSMTreppe_Obj.initialize(); FSMTreppe_Obj = new FSMTreppeModelClass;
FSMTreppe_Obj->initialize();
berechne_dimmer(); berechne_dimmer();
} }
~Treppe() { ~Treppe() {
FSMTreppe_Obj.terminate(); FSMTreppe_Obj->terminate();
delete FSMTreppe_Obj;
} }
void setup(); void setup();