#ifndef MONITOR_API_H #define MONITOR_API_H #include // Monitor states #define SCREEN_MINING 0 #define SCREEN_CLOCK 1 #define SCREEN_GLOBAL 2 #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 //API Block height #define getHeightAPI "https://mempool.space/api/blocks/tip/height" #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 //API public-pool.io // https://public-pool.io:40557/api/client/btcString #define getPublicPool "https://public-pool.io:40557/api/client/" // +btcString #define UPDATE_POOL_min 1 #define NEXT_HALVING_EVENT 840000 #define HALVING_BLOCKS 210000 enum NMState { NM_waitingConfig, NM_Connecting, NM_hashing }; typedef struct{ uint8_t screen; bool rotation; NMState NerdStatus; }monitor_data; typedef struct{ String globalHash; //hexahashes String currentBlock; String difficulty; String blocksHalving; float progressPercent; int remainingBlocks; int halfHourFee; }global_data; typedef struct { String completedShares; String totalMHashes; String totalKHashes; String currentHashRate; String templates; String bestDiff; String timeMining; String valids; String temp; String currentTime; }mining_data; typedef struct { String completedShares; String totalKHashes; String currentHashRate; String btcPrice; String blockHeight; String currentTime; }clock_data; typedef struct { String currentHashRate; String valids; unsigned long currentHours; unsigned long currentMinutes; unsigned long currentSeconds; }clock_data_t; typedef struct { String completedShares; String totalKHashes; String currentHashRate; String btcPrice; String currentTime; String halfHourFee; String netwrokDifficulty; String globalHashRate; String blockHeight; float progressPercent; String remainingBlocks; }coin_data; typedef struct{ int workersCount; // Workers count, how many nerdminers using your address String workersHash; // Workers Total Hash Rate String bestDifficulty; // Your miners best difficulty }pool_data; void setup_monitor(void); mining_data getMiningData(unsigned long mElapsed); clock_data getClockData(unsigned long mElapsed); coin_data getCoinData(unsigned long mElapsed); pool_data getPoolData(void); clock_data_t getClockData_t(unsigned long mElapsed); #endif //MONITOR_API_H