// Input_9112.h: interface for the CInput_9112 class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_INPUT_9112_H__56A43DA6_F9FB_4AA3_A45C_5B672BBD8D7C__INCLUDED_)
#define AFX_INPUT_9112_H__56A43DA6_F9FB_4AA3_A45C_5B672BBD8D7C__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "InputBase.h"

class CAdlinkCommon;

// NOTE: the Channel/Point number for analog input is 0 to 15 only
// However, MIT internal setting is 16 to 31.

class CInput_9112 : public CInputBase
{
public:
    CInput_9112(const CInputSetting &Setting);
    virtual ~CInput_9112();

// nRange setting
/*
   #define AD_B_10_V     1
   #define AD_B_5_V      2
   #define AD_B_2_5_V    3
   #define AD_B_1_25_V   4
   #define AD_B_0_625_V  5
   #define AD_B_0_3125_V 6
   #define AD_B_0_5_V    7
   #define AD_B_0_05_V   8
   #define AD_B_0_005_V  9
   #define AD_B_1_V      10
   #define AD_B_0_1_V    11
   #define AD_B_0_01_V   12
   #define AD_B_0_001_V  13
   #define AD_U_20_V     14
   #define AD_U_10_V     15
   #define AD_U_5_V      16
   #define AD_U_2_5_V    17
   #define AD_U_1_25_V   18
   #define AD_U_1_V      19
   #define AD_U_0_1_V    20
   #define AD_U_0_01_V   21
   #define AD_U_0_001_V  22
   #define AD_B_2_V      23
   #define AD_B_0_25_V   24
   #define AD_B_0_2_V    25
   #define AD_U_4_V      26
   #define AD_U_2_V      27
   #define AD_U_0_5_V    28
   #define AD_U_0_4_V    29
 */
// method to query Analog input voltage
    BOOL GetVoltage(double &dVoltage, int nRange) override;

    int GetState() override;

private:
    std::unique_ptr<CAdlinkCommon> m_pCommon;
};

#endif // !defined(AFX_INPUT_9112_H__56A43DA6_F9FB_4AA3_A45C_5B672BBD8D7C__INCLUDED_)
