Add getPollRate helper function

This open-coded pattern had been duplicated in a few places; deduplicate
and increase readability by adding a dedicated function.  While we're at
it, also ensure the configured value isn't inf or NaN.

Signed-off-by: Zev Weiss <zev@bewilderbeest.net>
Change-Id: I5f8fe788eb342ca3bf8b52bd6a2e7cc3364f45e1
diff --git a/src/IpmbSensor.cpp b/src/IpmbSensor.cpp
index 96ca768..f594ed5 100644
--- a/src/IpmbSensor.cpp
+++ b/src/IpmbSensor.cpp
@@ -523,17 +523,7 @@
                                                 findSmType->second);
                 }
 
-                float pollRate = pollRateDefault;
-                auto findPollRate = cfg.find("PollRate");
-                if (findPollRate != cfg.end())
-                {
-                    pollRate = std::visit(VariantToFloatVisitor(),
-                                          findPollRate->second);
-                    if (pollRate <= 0.0F)
-                    {
-                        pollRate = pollRateDefault;
-                    }
-                }
+                float pollRate = getPollRate(cfg, pollRateDefault);
 
                 /* Default sensor type is "temperature" */
                 std::string sensorTypeName = "temperature";