IpmbSensor: Add support for HSC sensor

1. Added support for HSC ADM1278 type sensors.
2. Added a subType as temp, volt, curr and power with default
   subtype as temperature.
3. Added support for Scale and offset with default value as
   scale = 1 and offset = 0.

Tested sensors with config file update.

Change-Id: If8c6b931bc9a27fabe4991ffce44b1a2545195ea
Signed-off-by: Vijay Khemka <vijaykhemka@fb.com>
diff --git a/include/IpmbSensor.hpp b/include/IpmbSensor.hpp
index 56e8b2f..e7a9540 100644
--- a/include/IpmbSensor.hpp
+++ b/include/IpmbSensor.hpp
@@ -12,9 +12,18 @@
     meSensor,
     PXE1410CVR,
     IR38363VR,
+    ADM1278HSC,
     mpsVR
 };
 
+enum class IpmbSubType
+{
+    temp,
+    curr,
+    power,
+    volt
+};
+
 struct IpmbSensor : public Sensor
 {
     IpmbSensor(std::shared_ptr<sdbusplus::asio::connection>& conn,
@@ -22,7 +31,7 @@
                const std::string& sensorConfiguration,
                sdbusplus::asio::object_server& objectServer,
                std::vector<thresholds::Threshold>&& thresholds,
-               uint8_t deviceAddress);
+               uint8_t deviceAddress, std::string& sensorTypeName);
     ~IpmbSensor();
 
     void checkThresholds(void) override;
@@ -32,6 +41,9 @@
     void runInitCmd(void);
 
     IpmbType type;
+    IpmbSubType subType;
+    double scaleVal;
+    double offsetVal;
     uint8_t commandAddress;
     uint8_t netfn;
     uint8_t command;
@@ -47,4 +59,4 @@
     sdbusplus::asio::object_server& objectServer;
     std::shared_ptr<sdbusplus::asio::connection> dbusConnection;
     boost::asio::deadline_timer waitTimer;
-};
\ No newline at end of file
+};