117 lines
2.0 KiB
C
117 lines
2.0 KiB
C
/*
|
|
* system.h
|
|
*
|
|
* Created on: Oct 23, 2023
|
|
* Author: Brian.Bailey
|
|
*/
|
|
|
|
#ifndef SYSTEM_SYSTEM_H_
|
|
#define SYSTEM_SYSTEM_H_
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include "ports.h"
|
|
#include "adc.h"
|
|
|
|
#define SW_VERSION "1.10A"
|
|
|
|
|
|
#define SYS_INFO_LENGTH 24 //max string length for setup parameters (model, mfg, etc.)
|
|
|
|
#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;
|
|
|
|
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
|
|
|
|
bool safeMode; // output is disabled
|
|
|
|
bool usbConnected;
|
|
|
|
GuiMode_t guiMode;
|
|
|
|
ClampData_t clamp;
|
|
|
|
uint8_t currentMode;
|
|
|
|
ACCESSORY_t ports[NUM_PORTS];
|
|
ACCESSORY_t *activeAccessory;
|
|
ACCESSORY_t *nextAccessory;
|
|
|
|
float32_t maxPowerLimit;
|
|
|
|
ADC_t adc;
|
|
|
|
bool status[NUM_STATUS_FLAGS];
|
|
|
|
bool isBeta;
|
|
|
|
int hSysCheckTimer;
|
|
int h1HzTimer;
|
|
int h10HzTimer;
|
|
int h100HzTimer;
|
|
|
|
char tmpString[64];
|
|
|
|
// TODO: change to FREQUENCY_t*
|
|
uint32_t frequency;
|
|
|
|
} 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_ */
|