|
|
@@ -10,12 +10,13 @@ import (
|
|
|
"time"
|
|
|
|
|
|
svg "github.com/ajstarks/svgo"
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
|
|
|
)
|
|
|
|
|
|
// ModStatSec -- статистика модуля за первые 60 сек.
|
|
|
type ModStatSec struct {
|
|
|
sync.RWMutex
|
|
|
- lst []int // Список значений за последние 60 сек
|
|
|
+ lst []defs.Int // Список значений за последние 60 сек
|
|
|
momentAt int64 // Метка времени для учёта текущей секунды
|
|
|
bufSvg *bytes.Buffer
|
|
|
}
|
|
|
@@ -23,7 +24,7 @@ type ModStatSec struct {
|
|
|
// NewModStatSec -- возвращает новую статистику модуля за последние 60 сек.
|
|
|
func NewModStatSec() *ModStatSec {
|
|
|
sf := &ModStatSec{
|
|
|
- lst: []int{},
|
|
|
+ lst: []defs.Int{},
|
|
|
bufSvg: bytes.NewBufferString(""),
|
|
|
momentAt: time.Now().Local().Unix(),
|
|
|
}
|
|
|
@@ -31,10 +32,10 @@ func NewModStatSec() *ModStatSec {
|
|
|
}
|
|
|
|
|
|
// Sum -- возвращает сумму элементов по требованию.
|
|
|
-func (sf *ModStatSec) Sum() int {
|
|
|
+func (sf *ModStatSec) Sum() defs.Int {
|
|
|
sf.RLock()
|
|
|
defer sf.RUnlock()
|
|
|
- sum := 0
|
|
|
+ sum := defs.Int(0)
|
|
|
for _, val := range sf.lst {
|
|
|
sum += val
|
|
|
}
|
|
|
@@ -42,7 +43,7 @@ func (sf *ModStatSec) Sum() int {
|
|
|
}
|
|
|
|
|
|
// Add -- добавляет значение в минутный срез.
|
|
|
-func (sf *ModStatSec) Add(val int) {
|
|
|
+func (sf *ModStatSec) Add(val defs.Int) {
|
|
|
sf.Lock()
|
|
|
defer sf.Unlock()
|
|
|
|
|
|
@@ -72,7 +73,7 @@ func (sf *ModStatSec) Add(val int) {
|
|
|
// )
|
|
|
|
|
|
// Svg -- возвращает сгенерированный SVG по минутному срезу.
|
|
|
-func (sf *ModStatSec) Svg() string {
|
|
|
+func (sf *ModStatSec) Svg() defs.ITimeFix {
|
|
|
sf.Lock()
|
|
|
defer sf.Unlock()
|
|
|
sf.bufSvg.Reset()
|
|
|
@@ -84,8 +85,8 @@ func (sf *ModStatSec) Svg() string {
|
|
|
cnv.Text(20, 20, "Last 60 sec", "")
|
|
|
// cnv.Circle(250, 250, 125, "fill:none;stroke:black")
|
|
|
var (
|
|
|
- valMin = math.MaxInt64
|
|
|
- valMax = math.MinInt64
|
|
|
+ valMin = defs.Int(math.MaxInt64)
|
|
|
+ valMax = defs.Int(math.MinInt64)
|
|
|
)
|
|
|
fnGetMinMax := func() { // Вычисляет максимальное и минимальное значение в графике
|
|
|
for _, val := range sf.lst {
|
|
|
@@ -107,10 +108,10 @@ func (sf *ModStatSec) Svg() string {
|
|
|
cnv.End()
|
|
|
strOut := sf.bufSvg.String()
|
|
|
// strOut = strings.ReplaceAll(strOut, strCut, "")
|
|
|
- return strOut
|
|
|
+ return defs.Txt(strOut)
|
|
|
}
|
|
|
|
|
|
-func (sf *ModStatSec) drawNet(valMin, valMax int, cnv *svg.SVG) {
|
|
|
+func (sf *ModStatSec) drawNet(valMin, valMax defs.Int, cnv *svg.SVG) {
|
|
|
// Метки величины
|
|
|
if valMin == math.MaxInt64 {
|
|
|
valMin = 0
|