NerdNos-Firmware/src/monitor.h

64 lines
1.5 KiB
C
Raw Normal View History

#ifndef MONITOR_API_H
#define MONITOR_API_H
#include <Arduino.h>
// Monitor states
#define SCREEN_MINING 0
#define SCREEN_CLOCK 1
2023-06-08 01:11:47 +02:00
#define SCREEN_GLOBAL 2
2023-08-11 13:37:25 +02:00
#define NO_SCREEN 3 //Used when board has no TFT
//Time update period
#define UPDATE_PERIOD_h 5
//API BTC price
#define getBTCAPI "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd"
#define UPDATE_BTC_min 5
2023-06-08 01:11:47 +02:00
//API Block height
#define getHeightAPI "https://mempool.space/api/blocks/tip/height"
2023-06-08 01:11:47 +02:00
#define UPDATE_Height_min 2
//APIs Global Stats
#define getGlobalHash "https://mempool.space/api/v1/mining/hashrate/3d"
#define getDifficulty "https://mempool.space/api/v1/difficulty-adjustment"
#define getFees "https://mempool.space/api/v1/fees/recommended"
#define UPDATE_Global_min 2
#define NEXT_HALVING_EVENT 840000
#define HALVING_BLOCKS 210000
2023-08-27 11:21:26 +02:00
enum NMState {
NM_waitingConfig,
NM_Connecting,
NM_hashing
};
typedef struct{
uint8_t screen;
bool rotation;
2023-08-27 11:21:26 +02:00
NMState NerdStatus;
}monitor_data;
2023-06-08 01:11:47 +02:00
typedef struct{
String globalHash; //hexahashes
String currentBlock;
2023-06-08 01:11:47 +02:00
String difficulty;
String blocksHalving;
float progressPercent;
int remainingBlocks;
int halfHourFee;
}global_data;
2023-08-27 11:21:26 +02:00
void setup_monitor(void);
void show_MinerScreen(unsigned long mElapsed);
void show_ClockScreen(unsigned long mElapsed);
2023-06-08 01:11:47 +02:00
void show_GlobalHashScreen(unsigned long mElapsed);
2023-08-11 13:37:25 +02:00
void show_NoScreen(unsigned long mElapsed);
void changeScreen(void);
2023-08-20 00:45:09 +02:00
void doLedStuff(int ledPin);
#endif //MONITOR_API_H