summaryrefslogtreecommitdiff
path: root/firmware/inc/status.h
diff options
context:
space:
mode:
authordmlunar <root@lunar.sh>2025-01-22 16:47:21 +0200
committerdmlunar <root@lunar.sh>2025-10-15 23:42:50 +0200
commit729f2a2c3ebfb2612d873caf453a1d7ca02180d9 (patch)
tree7bab2fcc0c7f50eab3013348697bc06ddd71d551 /firmware/inc/status.h
downloadvarpa-729f2a2c3ebfb2612d873caf453a1d7ca02180d9.tar.gz
varpa-729f2a2c3ebfb2612d873caf453a1d7ca02180d9.zip
varpa: initial public commit
Diffstat (limited to 'firmware/inc/status.h')
-rw-r--r--firmware/inc/status.h83
1 files changed, 83 insertions, 0 deletions
diff --git a/firmware/inc/status.h b/firmware/inc/status.h
new file mode 100644
index 0000000..b9c647b
--- /dev/null
+++ b/firmware/inc/status.h
@@ -0,0 +1,83 @@
+/**
+ *
+ * Author: Dylan Muller
+ * Copyright (c) 2025
+ * All rights reserved.
+ *
+ * - Commercial/IP use prohibited.
+ * - Attribution required.
+ * See License.txt
+ *
+ */
+
+#ifndef STATUS_H_
+#define STATUS_H_
+
+#include <stdint.h>
+#include <avr/pgmspace.h>
+
+extern const char* const gate_lut[];
+extern const char* const drain_lut[];
+extern const char* const system_lut[];
+
+enum
+{
+ GATE_STATUS_INACTIVE = 0,
+ GATE_STATUS_PROBE_ERROR,
+ GATE_STATUS_PROBE_SUCCESS,
+ GATE_STATUS_PROBE_TIMEOUT
+};
+
+typedef struct {
+ uint8_t status;
+ uint16_t q_volt;
+ uint16_t q_amp;
+ uint16_t q_time;
+ uint16_t v_set;
+ uint16_t q_drain;
+ uint8_t func;
+} t_gate_status;
+
+enum
+{
+ DRAIN_STATUS_INACTIVE = 0,
+ DRAIN_STATUS_POWER_CONTROL,
+ DRAIN_STATUS_OVERRIDE,
+ DRAIN_STATUS_ADC_ERROR,
+ DRAIN_STATUS_CURRENT_ALARM
+};
+
+typedef struct {
+ uint8_t status;
+ uint16_t v_set;
+ uint16_t v_adc;
+ uint16_t amp;
+ uint8_t func;
+} t_drain_status;
+
+enum
+{
+ SYSTEM_STATUS_IDLE = 0,
+ SYSTEM_STATUS_BUSY,
+ SYSTEM_STATUS_LOCKED,
+ SYSTEM_STATUS_SETPOINT_FAIL,
+ SYSTEM_STATUS_SETPOINT_REACHED,
+ SYSTEM_STATUS_SETPOINT_TIMEOUT,
+ SYSTEM_STATUS_VSWR_ALARM
+};
+
+typedef struct {
+ uint8_t status;
+ uint16_t v_fw;
+ int16_t p_fw;
+ uint16_t v_rev;
+ int16_t p_rev;
+ uint16_t swr;
+ uint16_t swr_lim;
+ uint16_t atten;
+ uint8_t p_strat;
+ int16_t p_set;
+ uint16_t d_time;
+} t_system_status;
+
+#endif