Bitmine
Работа с устройствами ASIC производителя Bitmine Antminer.
поддерживаемые усторойства:
javascript свойства
Miner Базовая сущность
# константа с уникальным id устройства
const ENTITY_ID
result = Miner
.stats()
.devs()
.summary()
.pools()
.addPool(url string)
.version()
.enable(poolId int64)
.disable(poolId int64)
.delete(poolId int64)
.switchPool(poolId int64)
.restart()
| значение |
описание |
| result |
type: Object (Result) |
| значение |
описание |
| stats |
type: метод, статистика |
| devs |
type: метод, статистика |
| summary |
type: метод, статистика |
| pools |
type: метод, список серверов |
| addPool |
type: метод, добавление сервера |
| version |
type: метод, версия прошивки |
| enable |
type: метод, включение в работу сервера |
| disable |
type: метод, включение сервера |
| delete |
type: метод, удаление сервера |
| switchPool |
type: метод, переключние сервера |
| restart |
type: метод, мягкий перезапуск устройства |
объект Result
result = {
error: false,
errMessage: "",
result: ""
}
| значение |
описание |
| error |
type: boolean, признак ошибки |
| errMessage |
type: string, человекопонятное описание ошибки |
| result |
type: string, json объект в текстовом формате, если запрос завершился без ошибок |
функция entityAction
entityAction = (entityId, actionName, args)->
| значение |
описание |
| entityId |
type: string, id сущности отправляющего сообщение |
| actionName |
type: string, название действия, без символа ‘/’ в верхнем регистре |
| args |
Type: map[string]any |
объект EntityStateParams
entityStateParams = {
"new_state": ""
"attribute_values": {}
"settings_value": {}
"storage_save": true
}
| значение |
описание |
| new_state |
type: *string, наименование статуса |
| attribute_values |
type: Object, новое состяние аттрибутов сущности |
| settings_value |
type: Object, новое состояние настроек сущности |
| storage_save |
type: boolean, признак записи нового состояния в бд |
пример кода
# cgminer
# ##################################
ifError =(res)->
return !res || res.error || res.Error
checkStatus =->
stats = Miner.stats()
if ifError(stats)
EntitySetState ENTITY_ID,
'new_state': 'ERROR'
return
p = JSON.parse(stats.result)
print p
checkSum =->
summary = Miner.summary()
if ifError(summary)
EntitySetState ENTITY_ID,
'new_state': 'ERROR'
return
p = JSON.parse(summary.result)
print p
entityAction = (entityId, actionName, args)->
switch actionName
when 'CHECK' then checkStatus()
when 'SUM' then checkSum()