#pragma once
#include <string>


struct IOData
{
    std::string m_sName;		                    //!< 名称
    int m_nID;                              //索引或者ID?;

    //暂时初始化为固高卡
    int m_nCardType;   //卡的类型,固高,雷赛,ACS,或者其他的
    int m_nCardIndex;                     //卡号,属于这种类型的第几张卡
    int m_nIOIndexInCard;                 //该IO在卡中的起点索引,这是第几个位
    // short m_nType;                        //IO类型
    int m_nSlaveIndex;                    //从站序号
    int m_nPort;                          //用于APS与ACS中的channel号或Port号
    bool m_bReverseBit;                   //极性反转,当为true时不翻转;为false时翻转
    bool m_bExternal;   //是否为扩展卡,固高的扩展卡跟主卡接口是不一样的


};

//数字量输入输出
struct DIOData:IOData
{

    //*************************************************************************
    //是输入还是输出
    //true为输入,false为输出
    bool m_bDIOrDO;
    int m_nIOLength = 1;    //IO的长度,默认长度为1,需要配置
};
//模拟量输入输出
struct AIOData:IOData {

    //*************************************************************************
    //是输入还是输出
    bool m_bAIOrAO;
};