aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorkrolyxon <me@krolyxon.com>2026-05-14 23:12:19 +0530
committerkrolyxon <me@krolyxon.com>2026-05-14 23:12:19 +0530
commit3672abc8b44c50ab344aeaf3c720c8502ccc128d (patch)
treea62ad89d85fd10218cd89db22ec092d1249ac5f4 /src
parent0b8b30d25d9e374cb8814aa652d52d5b74d5171a (diff)
remove cc1101_2 from device check
Diffstat (limited to 'src')
-rw-r--r--src/utils/device_check.cpp212
1 files changed, 78 insertions, 134 deletions
diff --git a/src/utils/device_check.cpp b/src/utils/device_check.cpp
index 5f63ffe..986c344 100644
--- a/src/utils/device_check.cpp
+++ b/src/utils/device_check.cpp
@@ -1,12 +1,12 @@
+#include "../libs/ELECHOUSE_CC1101_SRC_DRV.h"
#include <Arduino.h>
+#include <RF24.h>
#include <SPI.h>
#include <Wire.h>
-#include <RF24.h>
-#include "../libs/ELECHOUSE_CC1101_SRC_DRV.h"
+#include "../config.h"
#include "../ui/display.h"
#include "buttons.h"
-#include "../config.h"
// ===== EXTERNALS =====
extern RF24 radio1;
@@ -16,16 +16,14 @@ extern U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2;
// ===== RESULTS =====
struct DeviceStatus {
- bool nrf1 = false;
- bool nrf2 = false;
- bool cc1101_1 = false;
- bool cc1101_2 = false;
- bool oled = true;
- bool buttons = false;
+ bool nrf1 = false;
+ bool nrf2 = false;
+ bool cc1101 = false;
+ bool oled = true;
};
// ===== NRF CHECK =====
-//bool checkNRF(RF24 &radio)
+// bool checkNRF(RF24 &radio)
//{
// // safer: only init if needed
// if (!radio.isChipConnected()) {
@@ -36,172 +34,118 @@ struct DeviceStatus {
// return radio.isChipConnected();
//}
-bool checkNRF(RF24 &radio)
-{
- radio.powerDown();
- delay(5);
+bool checkNRF(RF24 &radio) {
+ radio.powerDown();
+ delay(5);
- if (!radio.begin(RADIO_SPI))
- return false;
+ if (!radio.begin(RADIO_SPI))
+ return false;
- delay(5);
+ delay(5);
- return radio.isChipConnected();
+ return radio.isChipConnected();
}
// ===== CC1101 CHECK =====
-bool checkCC1101(uint8_t csPin)
-{
- ELECHOUSE_cc1101.setSpiPin(
- cc1101_SCK,
- cc1101_MISO,
- cc1101_MOSI,
- csPin
- );
-
- delay(5);
-
- return ELECHOUSE_cc1101.getCC1101();
-}
+bool checkCC1101(uint8_t csPin) {
+ ELECHOUSE_cc1101.setSpiPin(cc1101_SCK, cc1101_MISO, cc1101_MOSI, csPin);
-// ===== BUTTON CHECK =====
-bool checkButtons()
-{
- u8g2.clearBuffer();
- u8g2.setFont(u8g2_font_6x10_tr);
- u8g2.drawStr(0, 20, "Press any button...");
- u8g2.sendBuffer();
-
- unsigned long start = millis();
-
- while (millis() - start < 2000)
- {
- if (!digitalRead(BTN_UP) ||
- !digitalRead(BTN_DOWN) ||
- !digitalRead(BTN_SELECT) ||
- !digitalRead(BTN_BACK) ||
- !digitalRead(BTN_RIGHT) ||
- !digitalRead(BTN_LEFT))
- {
- return true;
- }
- }
+ delay(5);
- return false;
+ return ELECHOUSE_cc1101.getCC1101();
}
// ===== DRAW =====
-#define MAX_ITEMS 6
+#define MAX_ITEMS 4
#define VISIBLE_ROWS 5
-const char* labels[MAX_ITEMS] = {
- "NRF1",
- "NRF2",
- "CC1101-1",
- "CC1101-2",
- "BUTTONS",
- "OLED"
-};
+const char *labels[MAX_ITEMS] = {"NRF1", "NRF2", "CC1101", "OLED"};
bool values[MAX_ITEMS];
int selectedIndex = 0;
int offset = 0;
-void drawStatus(DeviceStatus &s)
-{
- values[0] = s.nrf1;
- values[1] = s.nrf2;
- values[2] = s.cc1101_1;
- values[3] = s.cc1101_2;
- values[4] = s.buttons;
- values[5] = s.oled;
+void drawStatus(DeviceStatus &s) {
+ values[0] = s.nrf1;
+ values[1] = s.nrf2;
+ values[2] = s.cc1101;
+ values[3] = s.oled;
+ u8g2.clearBuffer();
+ u8g2.setFont(u8g2_font_6x10_tr);
- u8g2.clearBuffer();
- u8g2.setFont(u8g2_font_6x10_tr);
+ // scrolling logic
+ if (selectedIndex < offset)
+ offset = selectedIndex;
- // scrolling logic
- if (selectedIndex < offset)
- offset = selectedIndex;
+ if (selectedIndex >= offset + VISIBLE_ROWS)
+ offset = selectedIndex - VISIBLE_ROWS + 1;
- if (selectedIndex >= offset + VISIBLE_ROWS)
- offset = selectedIndex - VISIBLE_ROWS + 1;
+ for (int i = 0; i < VISIBLE_ROWS; i++) {
+ int item = offset + i;
+ if (item >= MAX_ITEMS)
+ break;
- for (int i = 0; i < VISIBLE_ROWS; i++)
- {
- int item = offset + i;
- if (item >= MAX_ITEMS) break;
+ int y = 12 + i * 10;
- int y = 12 + i * 10;
+ if (item == selectedIndex) {
+ u8g2.drawBox(0, y - 9, 128, 10);
+ u8g2.setDrawColor(0);
+ }
- if (item == selectedIndex)
- {
- u8g2.drawBox(0, y - 9, 128, 10);
- u8g2.setDrawColor(0);
- }
+ u8g2.drawStr(2, y, labels[item]);
- u8g2.drawStr(2, y, labels[item]);
+ if (values[item])
+ u8g2.drawStr(80, y, "OK");
+ else
+ u8g2.drawStr(80, y, "FAIL");
- if (values[item])
- u8g2.drawStr(80, y, "OK");
- else
- u8g2.drawStr(80, y, "FAIL");
+ if (item == selectedIndex)
+ u8g2.setDrawColor(1);
+ }
- if (item == selectedIndex)
- u8g2.setDrawColor(1);
- }
-
- u8g2.sendBuffer();
+ u8g2.sendBuffer();
}
// ===== MAIN =====
-void device_check_run()
-{
- DeviceStatus status;
-
- Serial.println("Running device diagnostics...");
+void device_check_run() {
+ DeviceStatus status;
- // NRF
- status.nrf1 = checkNRF(radio1);
- status.nrf2 = checkNRF(radio2);
+ Serial.println("Running device diagnostics...");
- // CC1101
- status.cc1101_1 = checkCC1101(CC1101_CS);
- status.cc1101_2 = checkCC1101(CC1101_2_CS);
- //status.cc1101_1 = status.cc1101_2 = false;
+ // NRF
+ status.nrf1 = checkNRF(radio1);
+ status.nrf2 = checkNRF(radio2);
- // Buttons
- status.buttons = checkButtons();
+ // CC1101
+ status.cc1101 = checkCC1101(CC1101_CS);
+ // status.cc1101 = true;
- drawStatus(status);
+ drawStatus(status);
- Serial.println("Diagnostics complete");
+ Serial.println("Diagnostics complete");
- while (1)
-{
+ while (1) {
drawStatus(status);
- if (btnUp())
- {
- selectedIndex--;
- if (selectedIndex < 0) selectedIndex = MAX_ITEMS - 1;
- delay(150);
+ if (btnUp()) {
+ selectedIndex--;
+ if (selectedIndex < 0)
+ selectedIndex = MAX_ITEMS - 1;
+ delay(150);
}
- if (btnDown())
- {
- selectedIndex++;
- if (selectedIndex >= MAX_ITEMS) selectedIndex = 0;
- delay(150);
+ if (btnDown()) {
+ selectedIndex++;
+ if (selectedIndex >= MAX_ITEMS)
+ selectedIndex = 0;
+ delay(150);
}
- if (btnBack())
- {
- delay(150);
- break;
+ if (btnBack()) {
+ delay(150);
+ break;
}
-}}
-
-
-
+ }
+}