Files
go-service/internal/logger/parser.go
2026-07-17 15:57:05 +03:00

42 lines
1.3 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package logger
// GPIOData — разобранный байт GPIO-шины: количество обнаружений (биты 05),
// сила сигнала (биты 67) и признак превышения порога тревоги.
type GPIOData struct {
RawValue byte // сырое значение
Count byte // количество обнаружений (биты 0-5)
Strength byte // сила сигнала (биты 6-7)
IsHighCount bool // превышает ли количество 10
}
// ParseGPIO парсит сырой байт на составляющие
func ParseGPIO(raw byte) GPIOData {
// Биты 0-5: количество (0-63)
count := raw & 0x3F // маска 00111111
// Биты 6-7: сила (0-3)
strength := (raw >> 6) & 0x03 // сдвиг на 6 бит, маска 00000011
return GPIOData{
RawValue: raw,
Count: count,
Strength: strength,
IsHighCount: count > 10,
}
}
// GetStrengthName возвращает текстовое описание силы
func GetStrengthName(strength byte) string {
switch strength {
case 0:
return "Слабый"
case 1:
return "Средний"
case 2:
return "Сильный"
case 3:
return "Максимальный"
default:
return "Неизвестно"
}
}