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 {
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
}