Skip to content

File utility.h

File List > firmware > include > utility.h

Go to the documentation of this file

#include "header.h"
#include "i2c_connectivity.h"

// LEDs states
#define SETUPBEGIN 1
#define SETUPRADIOMODULS 2
#define SETUPEND 3
#define RADIOMODUL_ONE 4
#define RADIOMODUL_TWO 5
#define UPDATE 255

class ledStruct;
class dataStruct;

void buzzerSound(uint8_t pinBuzzer);

void buzzerSoundError(uint8_t pinBuzzer);

void radioModulesSetup(RC17xxHP_RC232 *rc1780hp, RC17xxHP_RC232 *rc1701hp, ledStruct *pinLed, uint8_t pinBuzzer); // Wenn Error: buzzerSoundError();
// ledUpdate aufrufen: ledUpdate(4): radiomodul 1 funktioniert: D2 anschalten,
// ledUpdate(5): radiomodul 2 funktioniert: D3 anschalten

void commandReceive(RC17xxHP_RC232 *radioModule, Packet *commandPacket); // Aufruf Packet Library Function, return 0
                                                     // wenn kein Command, sonst return command

void commandExecute(uint8_t command, RC17xxHP_RC232 *radioModule, dataStruct *dataVariables, ledStruct *pinLed, uint8_t *flightMode, Subsystem **subsystemsList, uint8_t subsystemsCount, Subsystem *subsystemSens, Subsystem *subsystemControl, Packet *flightDataPacket, Packet *telemetryDataPacket, uint8_t pinArm, uint8_t pinSleep); //  Distribute Data To Subsystems etc..
                                                                                                                                                                                                                                                                                    //  Check for 0 (-> no command)

uint8_t packetSendCheck(uint8_t *flightmode, uint8_t loopFrequency, uint8_t timeBetweenStandbyPackets, uint32_t loopCount);

void packetSend(RC17xxHP_RC232 *radioModule, uint8_t packetType, Packet *flightDataPacket, Packet *telemetryDataPacket);

void flashWrite(dataStruct *dataVariables);

void loopVariablesUpdate(uint32_t *loopCount, uint32_t *loopStartTime, uint8_t loopFrequency, uint8_t pinLedLoop);

void ledUpdate(uint8_t state, ledStruct *pinLed); // Switch Case

class ledStruct
{
public:
  uint8_t R;
  uint8_t G;
  uint8_t B;
  uint8_t D1;
  uint8_t D2;
  uint8_t D3;
  uint8_t Debug1;
  uint8_t Debug2;
  uint8_t Power;
  uint8_t Sens;
  uint8_t Control;
  uint8_t *lowPowerMode;
  void pinMode();
};

class dataStruct // :)
{
public:

  uint8_t command;

  // Subsystem States

  uint8_t stateTelemetry;
  uint8_t statePower;
  uint8_t stateSens;
  uint8_t stateControl;

  // Flight Data

  float acceleration;
  float heightPressure;
  uint8_t flightEvents;
  float latitude;
  float longitude;

  // Telemetry Data

  float heightGNSS;
  uint8_t satCountGNSS;
  float hdopGNSS;
  uint8_t temperatureElectronics;
  uint8_t temperatureBattery;
  uint8_t stateCapacitors;
  uint8_t continuityPyros;
  uint8_t pressureDecoupler;
  uint8_t ldrDecoupler;
  float voltageBattery;
  float currentBattery;
  float currentUmbilical;
  uint8_t stateUmbilical;
  float voltageBatteryCOTS;
};