Are you using current git?
ckolivas has considered the hashmeter the bane of his existence for a while but he recently updated it to be quite reliable.
Of course, the hash rate is dependent on how you supply the results back, so it depends on which driver you are using as the basis.
(and again there have been a LOT of changes in the drivers also recently - the AMU has sort of been a nightmare due to the problems that have shown up because of it, so there have been a lot of changes related to that)
However, there is another way that they will be different.
My hotplug code now sets a start time for each device rather than using the cgminer start time.
Thus the device average for a hotplugged device does read at the expected performance of the device rather than below it due to the initial amount of time it wasn't connected.
But the overall average is of course since cgminer started.
Thanks for your input.
I pulled 3.3.1 a couple days ago, so not using git right now.
I return the hashcount difference for each call to scanwork, but I have a wait of 200 in there, and it doesn't ask the devices for an update. It depends on get_stats being called for recent device status, and this seems to be every 3 seconds roughly. So overall it probably gets a new hashcount every 3 seconds, which causes quite a bit of variance in the 5 sec hashmeter value.
I used bflsc as basis but cut out a lot of stuff and simplified what I could for klondike.
The API stats now returns Clock, Temp, Fan %, Fan RPM. I numbered them for each device on a klondike chain, starting with 0 for master. eg. using JSON call,
{
"Fan RPM 0": 418,
"STATS": 1,
"Clock 0": 0.0,
"Calls": 0,
"Min": 99999999.0,
"Max": 0.0,
"USB Delay": "r0 0.000000 w0 0.000000",
"USB Pipe": "0",
"Elapsed": 1625,
"Fan Percent 0": 0,
"Temp 0": 38.25,
"ID": "KLN0",
"Wait": 0.0
},
But with many devices attached it would probably be nice to give an array for each value eg.
"Temp": [ 65,54,65,78 ],
I noticed that using,
echo -n "{\"command\":\"stats\"}" | nc 127.0.0.1 4028
appends a trailing \0 to output. Is that expected/desired?
It breaks piping to a JSON parser. I use this,
echo -n "{\"command\":\"stats\"}" | nc 127.0.0.1 4028 |tr -d "\000" | jsgrep
to strip the \0 and it prints pretty with jsgrep.