Add avalon HW error% to stats and only show BTB variables if avalon is a BTB.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
diff --git a/driver-avalon.c b/driver-avalon.c
index 995abd8..9bf0669 100644
--- a/driver-avalon.c
+++ b/driver-avalon.c
@@ -1483,6 +1483,8 @@ static struct api_data *avalon_api_stats(struct cgpu_info *cgpu)
struct avalon_info *info = cgpu->device_data;
char buf[64];
int i;
+ double hwp = (cgpu->hw_errors + cgpu->diff1) ?
+ (double)(cgpu->hw_errors) / (double)(cgpu->hw_errors + cgpu->diff1) : 0;
root = api_add_int(root, "baud", &(info->baud), false);
root = api_add_int(root, "miner_count", &(info->miner_count),false);
@@ -1499,8 +1501,7 @@ static struct api_data *avalon_api_stats(struct cgpu_info *cgpu)
root = api_add_int(root, "temp3", &(info->temp2), false);
root = api_add_int(root, "temp_max", &(info->temp_max), false);
- root = api_add_int(root, "core_voltage", &(info->core_voltage), false);
-
+ root = api_add_percent(root, "Device Hardware%", &hwp, false);
root = api_add_int(root, "no_matching_work", &(info->no_matching_work), false);
for (i = 0; i < info->miner_count; i++) {
char mcw[24];
@@ -1508,10 +1509,12 @@ static struct api_data *avalon_api_stats(struct cgpu_info *cgpu)
sprintf(mcw, "match_work_count%d", i + 1);
root = api_add_int(root, mcw, &(info->matching_work[i]), false);
}
-
- snprintf(buf, sizeof(buf), "%"PRIu8".%"PRIu8".%"PRIu8,
- info->version1, info->version2, info->version3);
- root = api_add_string(root, "version", buf, true);
+ if (usb_ident(cgpu) == IDENT_BTB) {
+ root = api_add_int(root, "core_voltage", &(info->core_voltage), false);
+ snprintf(buf, sizeof(buf), "%"PRIu8".%"PRIu8".%"PRIu8,
+ info->version1, info->version2, info->version3);
+ root = api_add_string(root, "version", buf, true);
+ }
return root;
}
diff --git a/miner.h b/miner.h
index 6a8b045..f4eb91a 100644
--- a/miner.h
+++ b/miner.h
@@ -1420,5 +1420,6 @@ extern struct api_data *api_add_freq(struct api_data *root, char *name, double *
extern struct api_data *api_add_volts(struct api_data *root, char *name, float *data, bool copy_data);
extern struct api_data *api_add_hs(struct api_data *root, char *name, double *data, bool copy_data);
extern struct api_data *api_add_diff(struct api_data *root, char *name, double *data, bool copy_data);
+extern struct api_data *api_add_percent(struct api_data *root, char *name, double *data, bool copy_data);
#endif /* __MINER_H__ */