Files
TX/source/System/system.h

118 lines
2.0 KiB
C
Raw Normal View History

/*
* system.h
*
* Created on: Oct 23, 2023
* Author: Brian.Bailey
*/
#ifndef SYSTEM_SYSTEM_H_
#define SYSTEM_SYSTEM_H_
2025-06-11 10:55:00 -05:00
#include <stdbool.h>
#include "ports.h"
#include "adc.h"
2025-08-26 16:10:47 -05:00
#include "driver.h"
#include "battery.h"
#define SW_VERSION "1.10A"
#define SYS_INFO_LENGTH 24 //max string length for setup parameters (model, mfg, etc.)
2025-06-11 10:55:00 -05:00
#define POWER_LIMIT_LITHIUM 10.0f
#define POWER_LIMIT_ALKALINE 5.0f
#define POWER_LIMIT_EXT_DC 10.0f
#define FREQ_MAX_NUM 50 //Max number of frequencies allowed
typedef enum
{
GUI_MODE_NORMAL = 0,
GUI_MODE_MENU
} GuiMode_t;
2025-06-11 10:55:00 -05:00
typedef struct ClampData_s
{
float slope;
uint8_t pot;
float voltage;
float current;
float impedance;
float power;
float maxPower;
float targetPower;
uint32_t timeout;
bool regulate;
uint8_t prevPowerLevel;
} ClampData_t;
typedef enum
{ USB_CONNECTED = 0,
SAFE_MODE,
OVERVOLTAGE,
ESTOP,
BYPASS,
NUM_STATUS_FLAGS
} StatusFlags_t;
//System data
typedef struct
{
uint8_t manufacturer[SYS_INFO_LENGTH]; //manufacturer
uint8_t modelName[SYS_INFO_LENGTH]; //model name
uint8_t serialNumber[SYS_INFO_LENGTH]; //serial number
uint8_t mfgDate[SYS_INFO_LENGTH]; //manufacture date
uint8_t modelNumber[SYS_INFO_LENGTH]; //model number
uint32_t bootloaderVersion; //bootloader version
uint32_t language; //system language
uint32_t systemTime; // system time in milliseconds since boot
2025-06-11 10:55:00 -05:00
bool safeMode; // output is disabled
bool usbConnected;
GuiMode_t guiMode;
2025-06-11 10:55:00 -05:00
ClampData_t clamp;
uint8_t currentMode;
ACCESSORY_t ports[NUM_PORTS];
ACCESSORY_t *activeAccessory;
ACCESSORY_t *nextAccessory;
2025-06-11 10:55:00 -05:00
float32_t maxPowerLimit;
2025-08-26 16:10:47 -05:00
Battery_t batteryType;
2025-06-11 10:55:00 -05:00
ADC_t adc;
bool status[NUM_STATUS_FLAGS];
bool isBeta;
int hSysCheckTimer;
int h1HzTimer;
int h10HzTimer;
int h100HzTimer;
2025-06-11 10:55:00 -05:00
char tmpString[64];
TxDriver_t *driver;
} SYSTEM_DATA_t;
void SYS_LoadFactoryDefaults(void);
uint32_t SYS_GetLanguage(void);
SYSTEM_DATA_t* system_getSys(void);
void system_monitor(void);
void system_init(void);
#endif /* SYSTEM_SYSTEM_H_ */