From 98ad16ab363667c7aba5fea47febebfd890bb737 Mon Sep 17 00:00:00 2001 From: Giovanni Harting <539@idlegandalf.com> Date: Sat, 26 Oct 2024 23:18:34 +0200 Subject: [PATCH] slight code refactor --- main.go | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/main.go b/main.go index a5ff268..2a5a880 100644 --- a/main.go +++ b/main.go @@ -442,46 +442,54 @@ func transformDOCSIS(rawDOCSIS *DOCSISResponse) (nChannels []*DOCSISChannelInfo) } 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" { - panic(fmt.Sprintf("error parsing power unit %s", snrStr)) + log.Fatalf("malformatted power unit: %q", unit) } return &rSNR } 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" { - panic(fmt.Sprintf("error parsing power unit %s", powerStr)) + log.Fatalf("malformed power unit: %q", unit) } return rPower } 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" { - panic(fmt.Sprintf("error parsing frequency unit %s", freqStr)) + log.Fatalf("malformed frequency unit: %q", unit) } return uint64(rFreq * 1000000) } -func strUnit2Elements(rawStr string) (float64, string) { +func strUnit2Elements(rawStr string) (float64, string, error) { splitStr := strings.Split(rawStr, " ") - 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) 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 }