Browse Source

API add display of and setting queue,scantime,expiry

nfactor-troky
Kano 12 years ago
parent
commit
99f0607fb2
  1. 14
      API-README
  2. 56
      api.c
  3. 2
      cgminer.c
  4. 2
      miner.h

14
API-README

@ -124,7 +124,10 @@ The list of requests - a (*) means it requires privileged access - and replies a
Log Interval=N, <- log interval (--log N) Log Interval=N, <- log interval (--log N)
Device Code=GPU ICA , <- spaced list of compiled devices Device Code=GPU ICA , <- spaced list of compiled devices
OS=Linux/Apple/..., <- operating System OS=Linux/Apple/..., <- operating System
Failover-Only=true/false | <- failover-only setting Failover-Only=true/false, <- failover-only setting
ScanTime=N, <- --scan-time setting
Queue=N, <- --queue setting
Expiry=N| <- --expiry setting
summary SUMMARY The status summary of the miner summary SUMMARY The status summary of the miner
e.g. Elapsed=NNN,Found Blocks=N,Getworks=N,...| e.g. Elapsed=NNN,Found Blocks=N,Getworks=N,...|
@ -318,6 +321,13 @@ The list of requests - a (*) means it requires privileged access - and replies a
RPCProto=true/false, RPCProto=true/false,
PerDevice=true/false| PerDevice=true/false|
setconfig|name,N (*)
none There is no reply section just the STATUS section
stating the results of setting 'name' to N
The valid values for name are currently:
queue, scantime, expiry
N is an integer in the range 0 to 9999
When you enable, disable or restart a GPU or PGA, you will also get Thread messages When you enable, disable or restart a GPU or PGA, you will also get Thread messages
in the cgminer status window in the cgminer status window
@ -376,6 +386,7 @@ API V1.19
Added API commands: Added API commands:
'debug' 'debug'
'pgaidentify|N' 'pgaidentify|N'
'setconfig|name,N'
Modified API commands: Modified API commands:
Change pool field name 'Diff1 Shares' to 'Diff1 Work' Change pool field name 'Diff1 Shares' to 'Diff1 Work'
@ -384,6 +395,7 @@ Modified API commands:
'pga|N' - add 'Diff1 Work' 'pga|N' - add 'Diff1 Work'
'notify' - add '*Dev Throttle' (for BFL Singles) 'notify' - add '*Dev Throttle' (for BFL Singles)
'pools' - add 'Proxy Type', 'Proxy' 'pools' - add 'Proxy Type', 'Proxy'
'config' - add 'Queue', 'Expiry'
---------- ----------

56
api.c

@ -259,6 +259,7 @@ static const char *OSINFO =
#define _CHECK "CHECK" #define _CHECK "CHECK"
#define _MINECOIN "COIN" #define _MINECOIN "COIN"
#define _DEBUGSET "DEBUG" #define _DEBUGSET "DEBUG"
#define _SETCONFIG "SETCONFIG"
static const char ISJSON = '{'; static const char ISJSON = '{';
#define JSON0 "{" #define JSON0 "{"
@ -297,6 +298,7 @@ static const char ISJSON = '{';
#define JSON_CHECK JSON1 _CHECK JSON2 #define JSON_CHECK JSON1 _CHECK JSON2
#define JSON_MINECOIN JSON1 _MINECOIN JSON2 #define JSON_MINECOIN JSON1 _MINECOIN JSON2
#define JSON_DEBUGSET JSON1 _DEBUGSET JSON2 #define JSON_DEBUGSET JSON1 _DEBUGSET JSON2
#define JSON_SETCONFIG JSON1 _SETCONFIG JSON2
#define JSON_END JSON4 JSON5 #define JSON_END JSON4 JSON5
static const char *JSON_COMMAND = "command"; static const char *JSON_COMMAND = "command";
@ -395,6 +397,11 @@ static const char *JSON_PARAMETER = "parameter";
#define MSG_DEBUGSET 79 #define MSG_DEBUGSET 79
#define MSG_PGAIDENT 80 #define MSG_PGAIDENT 80
#define MSG_PGANOID 81 #define MSG_PGANOID 81
#define MSG_SETCONFIG 82
#define MSG_UNKCON 83
#define MSG_INVNUM 84
#define MSG_CONPAR 85
#define MSG_CONVAL 86
enum code_severity { enum code_severity {
SEVERITY_ERR, SEVERITY_ERR,
@ -423,6 +430,7 @@ enum code_parameters {
PARAM_STR, PARAM_STR,
PARAM_BOTH, PARAM_BOTH,
PARAM_BOOL, PARAM_BOOL,
PARAM_SET,
PARAM_NONE PARAM_NONE
}; };
@ -553,6 +561,11 @@ struct CODES {
{ SEVERITY_SUCC, MSG_PGAIDENT,PARAM_PGA, "Identify command sent to PGA%d" }, { SEVERITY_SUCC, MSG_PGAIDENT,PARAM_PGA, "Identify command sent to PGA%d" },
{ SEVERITY_WARN, MSG_PGANOID, PARAM_PGA, "PGA%d does not support identify" }, { SEVERITY_WARN, MSG_PGANOID, PARAM_PGA, "PGA%d does not support identify" },
#endif #endif
{ SEVERITY_SUCC, MSG_SETCONFIG,PARAM_SET, "Set config '%s' to %d" },
{ SEVERITY_ERR, MSG_UNKCON, PARAM_STR, "Unknown config '%s'" },
{ SEVERITY_ERR, MSG_INVNUM, PARAM_BOTH, "Invalid number (%d) for '%s' range is 0-9999" },
{ SEVERITY_ERR, MSG_CONPAR, PARAM_NONE, "Missing config parameters 'name\\,N'" },
{ SEVERITY_ERR, MSG_CONVAL, PARAM_STR, "Missing config value N for '%s\\,N'" },
{ SEVERITY_FAIL, 0, 0, NULL } { SEVERITY_FAIL, 0, 0, NULL }
}; };
@ -1165,6 +1178,9 @@ static char *message(int messageid, int paramid, char *param2, bool isjson)
case PARAM_BOOL: case PARAM_BOOL:
sprintf(buf, codes[i].description, paramid ? TRUESTR : FALSESTR); sprintf(buf, codes[i].description, paramid ? TRUESTR : FALSESTR);
break; break;
case PARAM_SET:
sprintf(buf, codes[i].description, param2, paramid);
break;
case PARAM_NONE: case PARAM_NONE:
default: default:
strcpy(buf, codes[i].description); strcpy(buf, codes[i].description);
@ -1267,6 +1283,8 @@ static void minerconfig(__maybe_unused SOCKETTYPE c, __maybe_unused char *param,
root = api_add_const(root, "OS", OSINFO, false); root = api_add_const(root, "OS", OSINFO, false);
root = api_add_bool(root, "Failover-Only", &opt_fail_only, false); root = api_add_bool(root, "Failover-Only", &opt_fail_only, false);
root = api_add_int(root, "ScanTime", &opt_scantime, false); root = api_add_int(root, "ScanTime", &opt_scantime, false);
root = api_add_int(root, "Queue", &opt_queue, false);
root = api_add_int(root, "Expiry", &opt_expiry, false);
root = print_data(root, buf, isjson); root = print_data(root, buf, isjson);
if (isjson) if (isjson)
@ -2917,6 +2935,43 @@ static void debugstate(__maybe_unused SOCKETTYPE c, char *param, bool isjson, __
strcat(io_buffer, buf); strcat(io_buffer, buf);
} }
static void setconfig(__maybe_unused SOCKETTYPE c, char *param, bool isjson, __maybe_unused char group)
{
char *comma;
int value;
if (param == NULL || *param == '\0') {
strcpy(io_buffer, message(MSG_CONPAR, 0, NULL, isjson));
return;
}
comma = strchr(param, ',');
if (!comma) {
strcpy(io_buffer, message(MSG_CONVAL, 0, param, isjson));
return;
}
*(comma++) = '\0';
value = atoi(comma);
if (value < 0 || value > 9999) {
strcpy(io_buffer, message(MSG_INVNUM, value, param, isjson));
return;
}
if (strcasecmp(param, "queue") == 0)
opt_queue = value;
else if (strcasecmp(param, "scantime") == 0)
opt_scantime = value;
else if (strcasecmp(param, "expiry") == 0)
opt_expiry = value;
else {
strcpy(io_buffer, message(MSG_UNKCON, 0, param, isjson));
return;
}
strcpy(io_buffer, message(MSG_SETCONFIG, value, param, isjson));
}
static void checkcommand(__maybe_unused SOCKETTYPE c, char *param, bool isjson, char group); static void checkcommand(__maybe_unused SOCKETTYPE c, char *param, bool isjson, char group);
struct CMDS { struct CMDS {
@ -2971,6 +3026,7 @@ struct CMDS {
{ "failover-only", failoveronly, true }, { "failover-only", failoveronly, true },
{ "coin", minecoin, false }, { "coin", minecoin, false },
{ "debug", debugstate, true }, { "debug", debugstate, true },
{ "setconfig", setconfig, true },
{ NULL, NULL, false } { NULL, NULL, false }
}; };

2
cgminer.c

@ -93,7 +93,7 @@ bool opt_realquiet;
bool opt_loginput; bool opt_loginput;
const int opt_cutofftemp = 95; const int opt_cutofftemp = 95;
int opt_log_interval = 5; int opt_log_interval = 5;
static int opt_queue = 1; int opt_queue = 1;
int opt_scantime = 60; int opt_scantime = 60;
int opt_expiry = 120; int opt_expiry = 120;
int opt_bench_algo = -1; int opt_bench_algo = -1;

2
miner.h

@ -607,7 +607,9 @@ typedef bool (*sha256_func)(struct thr_info*, const unsigned char *pmidstate,
extern bool fulltest(const unsigned char *hash, const unsigned char *target); extern bool fulltest(const unsigned char *hash, const unsigned char *target);
extern int opt_queue;
extern int opt_scantime; extern int opt_scantime;
extern int opt_expiry;
extern pthread_mutex_t console_lock; extern pthread_mutex_t console_lock;
extern pthread_mutex_t ch_lock; extern pthread_mutex_t ch_lock;

Loading…
Cancel
Save