mirror of
https://github.com/skot/ESP-Miner.git
synced 2025-10-09 18:52:41 +02:00
* Improve status messages on self-test finish. This doesn't change the logic, but does change the messaging to the user, mainly on a failed self-test which was started by pressing the BOOT button on start-up. Also moved display logic into self-test for clarity. Fixes #1076 * Missed some renamed variable * Improve wording * Wait on boot button is only for failed factory self-test * Add logging line * Call nvs_commit before esp_restart * More logging * Test boot button after factory self-test check
121 lines
3.0 KiB
C
121 lines
3.0 KiB
C
#ifndef GLOBAL_STATE_H_
|
|
#define GLOBAL_STATE_H_
|
|
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
#include "asic_task.h"
|
|
#include "common.h"
|
|
#include "power_management_task.h"
|
|
#include "statistics_task.h"
|
|
#include "serial.h"
|
|
#include "stratum_api.h"
|
|
#include "work_queue.h"
|
|
#include "device_config.h"
|
|
#include "display.h"
|
|
|
|
#define STRATUM_USER CONFIG_STRATUM_USER
|
|
#define FALLBACK_STRATUM_USER CONFIG_FALLBACK_STRATUM_USER
|
|
|
|
#define HISTORY_LENGTH 100
|
|
#define DIFF_STRING_SIZE 10
|
|
|
|
typedef struct {
|
|
char message[64];
|
|
uint32_t count;
|
|
} RejectedReasonStat;
|
|
|
|
typedef struct
|
|
{
|
|
double duration_start;
|
|
int historical_hashrate_rolling_index;
|
|
double historical_hashrate_time_stamps[HISTORY_LENGTH];
|
|
double historical_hashrate[HISTORY_LENGTH];
|
|
int historical_hashrate_init;
|
|
double current_hashrate;
|
|
int64_t start_time;
|
|
uint64_t shares_accepted;
|
|
uint64_t shares_rejected;
|
|
RejectedReasonStat rejected_reason_stats[10];
|
|
int rejected_reason_stats_count;
|
|
int screen_page;
|
|
uint64_t best_nonce_diff;
|
|
char best_diff_string[DIFF_STRING_SIZE];
|
|
uint64_t best_session_nonce_diff;
|
|
char best_session_diff_string[DIFF_STRING_SIZE];
|
|
bool FOUND_BLOCK;
|
|
char ssid[32];
|
|
char wifi_status[256];
|
|
char ip_addr_str[16]; // IP4ADDR_STRLEN_MAX
|
|
char ap_ssid[32];
|
|
bool ap_enabled;
|
|
bool is_connected;
|
|
char * pool_url;
|
|
char * fallback_pool_url;
|
|
uint16_t pool_port;
|
|
uint16_t fallback_pool_port;
|
|
char * pool_user;
|
|
char * fallback_pool_user;
|
|
char * pool_pass;
|
|
char * fallback_pool_pass;
|
|
uint16_t pool_difficulty;
|
|
uint16_t fallback_pool_difficulty;
|
|
bool pool_extranonce_subscribe;
|
|
bool fallback_pool_extranonce_subscribe;
|
|
double response_time;
|
|
bool is_using_fallback;
|
|
uint16_t overheat_mode;
|
|
uint16_t power_fault;
|
|
uint32_t lastClockSync;
|
|
bool is_screen_active;
|
|
bool is_firmware_update;
|
|
char firmware_update_filename[20];
|
|
char firmware_update_status[20];
|
|
char * asic_status;
|
|
} SystemModule;
|
|
|
|
typedef struct
|
|
{
|
|
bool is_active;
|
|
bool is_finished;
|
|
char *message;
|
|
char *result;
|
|
char *finished;
|
|
} SelfTestModule;
|
|
|
|
typedef struct
|
|
{
|
|
work_queue stratum_queue;
|
|
work_queue ASIC_jobs_queue;
|
|
|
|
SystemModule SYSTEM_MODULE;
|
|
DeviceConfig DEVICE_CONFIG;
|
|
DisplayConfig DISPLAY_CONFIG;
|
|
AsicTaskModule ASIC_TASK_MODULE;
|
|
PowerManagementModule POWER_MANAGEMENT_MODULE;
|
|
SelfTestModule SELF_TEST_MODULE;
|
|
StatisticsModule STATISTICS_MODULE;
|
|
|
|
char * extranonce_str;
|
|
int extranonce_2_len;
|
|
int abandon_work;
|
|
|
|
uint8_t * valid_jobs;
|
|
pthread_mutex_t valid_jobs_lock;
|
|
|
|
uint32_t stratum_difficulty;
|
|
bool new_set_mining_difficulty_msg;
|
|
uint32_t version_mask;
|
|
bool new_stratum_version_rolling_msg;
|
|
|
|
int sock;
|
|
|
|
// A message ID that must be unique per request that expects a response.
|
|
// For requests not expecting a response (called notifications), this is null.
|
|
int send_uid;
|
|
|
|
bool ASIC_initalized;
|
|
bool psram_is_available;
|
|
} GlobalState;
|
|
|
|
#endif /* GLOBAL_STATE_H_ */
|