⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 presunit.cpp

📁 压力控制器通讯源代码
💻 CPP
字号:
//////////////////////////////////////////////////////////////////////////////
//                                                                          //
//     File      : PRESUNIT.CPP                                             //
//     Author    : Alaster Jones                                            //
//     Purpose   : Unit conversion table                                    //
//     Issue     : 1.0                                                      //
//                                                                          //
//    Changes....                                                           //
//    Date     Iss   Prog  MCF  Details                                     //
//                                                                          //
//////////////////////////////////////////////////////////////////////////////

//---------------------------------------------------------------------------
#include "stdafx.h"

#include "PresUnit.h"

//---------------------------------------------------------------------------

#define USERDEF_UNITS_OFFSET    24

PressureUnit Units[] =
{   {"mbar",   1.0},
    {"bar",    1000.0},
    {"kPa",    10.0},
    {"MPa",    10000.0},
    {"mmHg",   1.333223874},
    {"mmH2O",  0.0980665},
    {"Pa",     0.01},
    {"hPa",    1.0},
    {"kg/cm2", 980.665},
    {"kg/m2",  0.0980665},
    {"cmHg",   13.33223874},
    {"mHg",    1333.223874},
    {"cmH2O",  0.980665},
    {"mH2O",   98.0665},
    {"torr",   1.333223684},
    {"atm",    1013.25},
    {"psi",    68.94757293},
    {"lb/ft2", 0.4788025898},
    {"inHg",   33.86388640341},
    {"inH2O",  2.486413},
    {"inH2O4", 2.4908891},
    {"ftH2O",  29.836983},
    {"ftH2O4", 29.8906692},
    {"inH2O60",  2.487641558},
    {"",  1},   // User defined 1
    {"",  1},   // User defined 2
    {"\0", 0}
};

PressureUnit * GetPressureUnit(char * szUnit)
{
    PressureUnit * pUnit = NULL;
    SHORT sCount = 0;

    if (stricmp(szUnit, "User1") == 0)
    {
        pUnit = &Units[USERDEF_UNITS_OFFSET];
    }
    else if (stricmp(szUnit, "User2") == 0)
    {
        pUnit = &Units[USERDEF_UNITS_OFFSET + 1];
    }
    else
    {
        while (Units[sCount].szName[0] && !pUnit)
        {
            if (stricmp(szUnit, Units[sCount].szName) == 0)
            {
                pUnit = &Units[sCount];
            }
            sCount++;
        }
    }

    return pUnit;
}

void AddUserDefinedUnit(SHORT sIndex, char * szName, DOUBLE dFactor)
{
    // Copy the unit name
    strcpy(Units[sIndex + USERDEF_UNITS_OFFSET - 1].szName, szName);

    // Copy the unit conversion, accounting for the fact that the factor sent
    // represents Pascals per unit, not millibars
    Units[sIndex + USERDEF_UNITS_OFFSET - 1].dConversion = dFactor * 0.01;
}

SHORT GetUserDefinedIndex(char * szUnit)
{
    SHORT sIndex = 0;

    if (stricmp(Units[USERDEF_UNITS_OFFSET].szName, szUnit) == 0)
    {
        sIndex = 1;
    }
    else if (stricmp(Units[USERDEF_UNITS_OFFSET + 1].szName, szUnit) == 0)
    {
        sIndex = 2;
    }

    return sIndex;
}

void GetUserDefinedUnit(CHAR * strUnit)
{
    if(!strcmp(strUnit,"USER1"))
    	strcpy(strUnit,Units[USERDEF_UNITS_OFFSET].szName);
    else if(!strcmp(strUnit,"USER2"))
    	strcpy(strUnit,Units[USERDEF_UNITS_OFFSET + 1].szName);
}

//////////////////////////////////////////////////////////////////////////////
//                                                                          //
//     End of file : PRESUNIT.CPP                                           //
//                                                                          //
//////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -