slight code refactor

This commit is contained in:
2024-10-26 23:18:34 +02:00
parent eba177e113
commit 98ad16ab36

30
main.go
View File

@@ -442,46 +442,54 @@ func transformDOCSIS(rawDOCSIS *DOCSISResponse) (nChannels []*DOCSISChannelInfo)
} }
func snrStr2SNR(snrStr string) *float64 { func snrStr2SNR(snrStr string) *float64 {
rSNR, unit := strUnit2Elements(snrStr) rSNR, unit, err := strUnit2Elements(snrStr)
if err != nil {
log.Fatalf("error parsing SNR: %v", err)
}
if strings.ToLower(unit) != "db" { if strings.ToLower(unit) != "db" {
panic(fmt.Sprintf("error parsing power unit %s", snrStr)) log.Fatalf("malformatted power unit: %q", unit)
} }
return &rSNR return &rSNR
} }
func powerStr2Power(powerStr string) float64 { func powerStr2Power(powerStr string) float64 {
rPower, unit := strUnit2Elements(powerStr) rPower, unit, err := strUnit2Elements(powerStr)
if err != nil {
log.Fatalf("error parsing power unit: %v", err)
}
if strings.ToLower(unit) != "dbmv" { if strings.ToLower(unit) != "dbmv" {
panic(fmt.Sprintf("error parsing power unit %s", powerStr)) log.Fatalf("malformed power unit: %q", unit)
} }
return rPower return rPower
} }
func freqStr2Hz(freqStr string) uint64 { func freqStr2Hz(freqStr string) uint64 {
rFreq, unit := strUnit2Elements(freqStr) rFreq, unit, err := strUnit2Elements(freqStr)
if err != nil {
log.Fatalf("error parsing frequency: %v", err)
}
if strings.ToLower(unit) != "mhz" { if strings.ToLower(unit) != "mhz" {
panic(fmt.Sprintf("error parsing frequency unit %s", freqStr)) log.Fatalf("malformed frequency unit: %q", unit)
} }
return uint64(rFreq * 1000000) return uint64(rFreq * 1000000)
} }
func strUnit2Elements(rawStr string) (float64, string) { func strUnit2Elements(rawStr string) (float64, string, error) {
splitStr := strings.Split(rawStr, " ") splitStr := strings.Split(rawStr, " ")
if len(splitStr) < 2 { if len(splitStr) < 2 {
panic(fmt.Sprintf("error parsing floatUnit %s", rawStr)) return -1, "", fmt.Errorf("malformed elements: %q", rawStr)
} }
rFloat, err := strconv.ParseFloat(splitStr[0], 64) rFloat, err := strconv.ParseFloat(splitStr[0], 64)
if err != nil { if err != nil {
panic(fmt.Sprintf("error parsing floatUnit %s", splitStr[0])) return 0, "", fmt.Errorf("error parsing float: %w", err)
} }
return rFloat, splitStr[1] return rFloat, splitStr[1], nil
} }