mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-10 23:08:07 +00:00
API-README explain custom page extensions in miner.php
This commit is contained in:
parent
5b344afef6
commit
e834a1f302
67
API-README
67
API-README
@ -1220,3 +1220,70 @@ The example given:
|
|||||||
Accepted and Rejected
|
Accepted and Rejected
|
||||||
|
|
||||||
Again remember to use the original field name 'Rejected'
|
Again remember to use the original field name 'Rejected'
|
||||||
|
|
||||||
|
---------
|
||||||
|
|
||||||
|
With cgminer 2.10.2 and later, miner.php includes an extension to
|
||||||
|
the custom pages that allows you to apply SQL style commands to
|
||||||
|
the data: where, group, and having
|
||||||
|
|
||||||
|
As an example, miner.php includes a more complex custom page called 'Pools'
|
||||||
|
this includes the extension:
|
||||||
|
|
||||||
|
$poolsext = array(
|
||||||
|
'POOL+STATS' => array(
|
||||||
|
'where' => null,
|
||||||
|
'group' => array('POOL.URL', 'POOL.Has Stratum',
|
||||||
|
'POOL.Stratum Active', 'POOL.Has GBT'),
|
||||||
|
'calc' => array('POOL.Difficulty Accepted' => 'sum',
|
||||||
|
'POOL.Difficulty Rejected' => 'sum',
|
||||||
|
'STATS.Times Sent' => 'sum', 'STATS.Bytes Sent' => 'sum',
|
||||||
|
'STATS.Times Recv' => 'sum', 'STATS.Bytes Recv' => 'sum'),
|
||||||
|
'having' => array(array('STATS.Bytes Recv', '>', 0)))
|
||||||
|
);
|
||||||
|
|
||||||
|
This allows you to group records together from one or more rigs
|
||||||
|
In the example, you'll get each Pool (with the same URL+Stratum+GBT settings)
|
||||||
|
listed once for all rigs and a sum of each of the fields listed in 'calc'
|
||||||
|
|
||||||
|
|
||||||
|
'where' and 'having' are an array of fields and restrictions to apply
|
||||||
|
|
||||||
|
In the above example, it will only display the rows where it contains the
|
||||||
|
'STATS.Bytes Recv' field with a value greater than zero
|
||||||
|
If the row doesn't have the field, it will always be included
|
||||||
|
All restrictions must be true in order for the row to be included
|
||||||
|
Any restiction that is invalid or unknown is true
|
||||||
|
An empty array, or null, means there are no restrictions
|
||||||
|
|
||||||
|
A restriction is formatted as: array('Field', 'restriction', 'value')
|
||||||
|
Field is the simple field name as normally displayed, or SECTION.Field
|
||||||
|
if it is a joined section (as in this case 'POOL+STATS')
|
||||||
|
The list of restrictions are:
|
||||||
|
'set' - true if the row contains the 'Field' ('value' is not required or used)
|
||||||
|
'=', '<', '<=', '>', '>' - a numerical comparison
|
||||||
|
'eq', 'lt', 'le', 'gt', 'ge' - a case insensitive string comparison
|
||||||
|
|
||||||
|
You can have multiple restrictions on a 'Field' - but all must be true to
|
||||||
|
include the row containing the 'Field'
|
||||||
|
e.g. a number range would between 0 and 10 would be:
|
||||||
|
array('STATS.Bytes Recv', '>', 0), array('STATS.Bytes Recv', '<', 10)
|
||||||
|
|
||||||
|
The difference between 'where' and 'having' is that 'where' is applied to the
|
||||||
|
data before grouping it and 'having' is applied to the data after grouping it
|
||||||
|
- otherwise they work the same
|
||||||
|
|
||||||
|
|
||||||
|
'group' lists the fields to group over and 'calc' lists the function to apply
|
||||||
|
to other fields that are not part of 'group'
|
||||||
|
|
||||||
|
You can only see fields listed in 'group' and 'calc'
|
||||||
|
|
||||||
|
A 'calc' is formatted as: 'Field' => 'function'
|
||||||
|
The current list of operations available for 'calc' are:
|
||||||
|
'sum', 'avg', 'min', 'max', 'lo', 'hi', 'any'
|
||||||
|
The first 4 are as expected - the numerical sum, average, minimum or maximum
|
||||||
|
'lo' is the first string of the list, sorted ignoring case
|
||||||
|
'hi' is the last string of the list, sorted ignoring case
|
||||||
|
'any' is effectively random: the field value in the first row of the grouped data
|
||||||
|
An unrecognised 'function' uses 'any'
|
||||||
|
Loading…
Reference in New Issue
Block a user