From 77e6125438a4a167b735948da31538cf4628b918 Mon Sep 17 00:00:00 2001 From: Florian Thienel Date: Sun, 10 Oct 2021 12:55:02 +0200 Subject: [PATCH] add function to read the current battery charge level --- ctrl/command.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ctrl/command.go b/ctrl/command.go index a0ba445..b557e71 100644 --- a/ctrl/command.go +++ b/ctrl/command.go @@ -54,6 +54,20 @@ func RequestTalkgroup(ctx context.Context, requester tetra.Requester) (string, e return parts[1], nil } +const batteryChargeRequest = "AT+CBC?" + +var batteryChargeResponse = regexp.MustCompile(`^\+CBC: .*,(\d+)$`) + +// RequestBatteryCharge reads the current battery charge status according to [PEI] 6.9 +func RequestBatteryCharge(ctx context.Context, requester tetra.Requester) (int, error) { + parts, err := requestWithSingleLineResponse(ctx, requester, batteryChargeRequest, batteryChargeResponse, 2) + if err != nil { + return 0, err + } + + return strconv.Atoi(parts[1]) +} + const signalStrengthRequest = "AT+CSQ?" var signalStrengthResponse = regexp.MustCompile(`^\+CSQ: (\d+),(\d+)$`)