mirror of
https://github.com/alexhopeoconnor/firmware.git
synced 2026-10-04 03:18:10 +10:00
* thinknode-m9 variant * move lora to SPI1 device * enable SDcard * use HSPI * BaseUI tft -> HSPI * buzzer, webdav lib * fix build issues * M9 default to MUI, no BT, short ringtone * add keyboard long-press config * update variant * add ThingNode-M9 GPS string * GPS 115200 baud * Basic BaseUI support * Fixup power detection * Compass and KB fixes for M9 * add timed Lock::lock() * add SD card * point device-ui to thinknode m9 draft branch * trunk fmt * fix FusionCompass * Fix t-deck-tft linker arg list overflow in CI * SDcard/lora fix: SPI1 must not be declared twice in arduino 3.x -> reuse SPI1 defined in FSCommon.cpp * update battery parameters * reinit SD card when updating; fix PSRAM size * update lib versions * fix wakeup on key press (KB_INT) * fix default nag_timeout for TFT/MUI devices with buzzer * increase PSRAM and SD freq * trunk fmt * update lovyanGFX 1.2.26 * update device-ui commit reference * fix screen definition * remove DONE; maybe a keyword or other used identifier * fixed CI error nag_timeout * fix prepareSleep initialization * trunk fmt * reduce SD SPI frequency * update device-ui * fix SDcard issue * stage * fix device-ui commit reference * fix device-ui commit * update device-ui commit (fixed keyboard lag) * fix QMI8658 * trunk fmt * update .ini meta information, align SD freq * fix device-ui reference to target (ready to merge) * device-ui for all other targets * make the rabbit happy * trunk fmt * fixed lock screen * fix compile error * SPI lock timeout * apply device-ui fix * revert bad RadioLib commit hash in platformio.ini Co-authored-by: mverch67 <71137295+mverch67@users.noreply.github.com> * fix wrong commit hash change * fix fix commit fix * I love changing random numbers in random files --------- Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz> Co-authored-by: Ben Meadors <benmmeadors@gmail.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
41 lines
1.4 KiB
C++
41 lines
1.4 KiB
C++
#pragma once
|
|
#ifndef _QMC6309_SENSOR_H_
|
|
#define _QMC6309_SENSOR_H_
|
|
|
|
#include "MotionSensor.h"
|
|
|
|
#if !defined(ARCH_STM32WL) && !MESHTASTIC_EXCLUDE_I2C && __has_include(<SensorQMC6309.hpp>)
|
|
|
|
// SensorQMC6309.hpp (SensorLib 0.4.1) references the isBitSet() macro in an inline method but never includes
|
|
// SensorLib.h where it is defined. Define it here (guarded) so the header compiles regardless of include order
|
|
// (pulling in SensorLib.h is unreliable - its #pragma once can already be tripped by an in-progress include).
|
|
#ifndef isBitSet
|
|
#define isBitSet(value, bit) (((value) & (1UL << (bit))) == (1UL << (bit)))
|
|
#endif
|
|
#include <SensorQMC6309.hpp>
|
|
|
|
class QMC6309Sensor : public MotionSensor
|
|
{
|
|
private:
|
|
SensorQMC6309 sensor;
|
|
bool showingScreen = false;
|
|
static constexpr const char *compassCalibrationFileName = "/prefs/compass_qmc6309.dat";
|
|
#ifdef ELECROW_ThinkNode_M9
|
|
float highestX = -5.548, lowestX = -6.530, highestY = -6.638, lowestY = -7.637, highestZ = -6.676, lowestZ = -7.633;
|
|
#else
|
|
float highestX = 0, lowestX = 0, highestY = 0, lowestY = 0, highestZ = 0, lowestZ = 0;
|
|
#endif
|
|
|
|
bool readMagnetometer(float &xGauss, float &yGauss, float &zGauss);
|
|
|
|
public:
|
|
explicit QMC6309Sensor(ScanI2C::FoundDevice foundDevice);
|
|
virtual bool init() override;
|
|
virtual int32_t runOnce() override;
|
|
virtual void calibrate(uint16_t forSeconds) override;
|
|
};
|
|
|
|
#endif
|
|
|
|
#endif
|