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

📄 instrumentinit.cpp

📁 测井软件刻度的框价程序,对测井软件的开发有价值.
💻 CPP
字号:
// InstrumentInit.cpp : implementation file
//

#include "stdafx.h"
#include "CALIBRATE.h"
#include "InstrumentInit.h"
#include "Dll.h"
#include "CalInit.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CInstrumentInit dialog  
extern CString m_pSerPath;                   //服务表的路径
extern CString m_pSerName;                   //服务表名
extern CCalInit *   m_pCalInit;  
extern CString    YqName ;  
extern int   YqNo;
    
extern TableOperation m_pTableOperation;    //服务表对象
int		m_pSample;                           //采样率
float  EnginHigh[4]; 
float  EnginLow[4];                          //存放工程值的数组
CInstrumentInit::CInstrumentInit(CWnd* pParent /*=NULL*/)
	: CDialog(CInstrumentInit::IDD, pParent)
{
	//{{AFX_DATA_INIT(CInstrumentInit)
	m_pOper = _T("");
	m_pSample = 0;
	m_pTeam = _T("");
	m_pMName = _T("");
	m_pMMin = _T("");
	m_pMMax = _T("");
	m_pMU = _T("");
	m_EHigh = _T("");
	m_ELow = _T("");
	m_EName = _T("");
	m_EU = _T("");
	//}}AFX_DATA_INIT
}


void CInstrumentInit::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CInstrumentInit)
	DDX_Control(pDX, IDC_ENG_U, m_EngU);
	DDX_Control(pDX, IDC_ENG_NAME, m_EngName);
	DDX_Control(pDX, IDC_ENG_LOW, m_EngLow);
	DDX_Control(pDX, IDC_ENG_HIGH, m_EngHigh);
	DDX_Control(pDX, IDC_YQ_NO, m_pYqNo);
	DDX_Control(pDX, IDC_SER, m_pSer);
	DDX_Control(pDX, IDC_MEA_MAX, m_pMeaMax);
	DDX_Control(pDX, IDC_MEA_U, m_pMeaU);
	DDX_Control(pDX, IDC_MEA_NAME, m_pMeaName);
	DDX_Control(pDX, IDC_MEA_MIN, m_pMeaMin);
	DDX_Control(pDX, IDC_YQ_NAME, m_pYqName);
	DDX_Text(pDX, IDC_OPER, m_pOper);
	DDX_Text(pDX, IDC_SAMPLE, m_pSample);
	DDX_Text(pDX, IDC_TEAM, m_pTeam);
	DDX_Text(pDX, IDC_MEA_NAME, m_pMName);
	DDX_Text(pDX, IDC_MEA_MIN, m_pMMin);
	DDX_Text(pDX, IDC_MEA_MAX, m_pMMax);
	DDX_Text(pDX, IDC_MEA_U, m_pMU);
	DDX_Text(pDX, IDC_ENG_HIGH, m_EHigh);
	DDX_Text(pDX, IDC_ENG_LOW, m_ELow);
	DDX_Text(pDX, IDC_ENG_NAME, m_EName);
	DDX_Text(pDX, IDC_ENG_U, m_EU);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CInstrumentInit, CDialog)
	//{{AFX_MSG_MAP(CInstrumentInit)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CInstrumentInit message handlers

BOOL CInstrumentInit::OnInitDialog() 
{
	CDialog::OnInitDialog();
	CString  str ;
	
    m_pYqName.SetWindowText(m_pCalInit->m_pInsName);   //显示仪器名	
	str.Format("%d",m_pCalInit->m_pInsNo);
	m_pYqNo.SetWindowText(str);                     //显示仪器号
	m_pSer.SetWindowText(m_pSerName);   //显示服务表名
   // m_pTableOperation定义为全局变量
    if( m_pTableOperation.samrate==54)
	                        m_pSample = 10;
	else if( m_pTableOperation.samrate==52)
		                   m_pSample = 40;
	else if ( m_pTableOperation.samrate==49)
	                  m_pSample = 320;

  //  m_pSample = m_pTableOperation.samrate;           //采样率初始化
	InitDisplay();                                //显示服务表中定义的仪器的相关信息
	return TRUE;  
}

BOOL CInstrumentInit::InitDisplay()
{
	CString  str ,str1,str2,str3,str4,str5,str6,str7,str8;
	YqName = m_pCalInit->m_pInsName;
   YqNo = m_pCalInit->m_pInsNo;;

  if (m_pCalInit->m_pInsName=="DLL3")
	{
		CDll dll;
		
		str1="";
		str2="";
		str3="";
		str4="";
        str5="";
		str6="";
		str7="";
		str8="";
	    for(int i=0;i<4;i++)                  //四条曲线:ES  IS  ED  ID
		{
			int  flag  = 0; 
		    str1+=dll.Measure[i].curve;
			str4+=dll.Measure[i].Unit;
            for(int j=0;j<32;j++)          //在服务表中寻找相应的曲线信息
			{
				str="";
			    for(int k=0;k<5;k++)       //对服务表中的曲线名进行分析
				{
                     if (m_pTableOperation.MCTBL[j].crvnam[k]!=32)
						 str+=m_pTableOperation.MCTBL[j].crvnam[k];
				}
			    //char  *CurveName = str;
				if(dll.Measure[i].curve==str)
				{
					 str.Format("%2f",m_pTableOperation.MCTBL[j].LOW);
                     str2+=str;
					 str.Format("%2f",m_pTableOperation.MCTBL[j].HIGH);
					 str3+=str;
                //     str4+=m_pTableOperation.MCTBL[j].CRTMIN;
					 flag = 1;
					 break;    
				}
				else   continue;
			}
            if(flag!=1)
			{
			      MessageBox("服务表出错", NULL, MB_ICONEXCLAMATION ); 
			      return FALSE;
			}
            str1+="\r\n";
            str2+="\r\n";
			str3+="\r\n";
			str4+="\r\n";
		}

			for(i =0;i<2;i++)                  //2条曲线:RS  RD
			{
			  int  flg  = 0; 
		      str5+=dll.Engineer[i].engineer;
			  str8+=dll.Engineer[i].Unit;
                for(int j=0;j<32;j++)          //在服务表中寻找相应的曲线信息
				{
				      str="";
			         for(int k=0;k<5;k++)       //对服务表中的曲线名进行分析
					 {
                         if (m_pTableOperation.MCTBL[j].crvnam[k]!=32)
						    str+=m_pTableOperation.MCTBL[j].crvnam[k];
					 }
			    //char  *CurveName = str;
				     if(dll.Engineer[i].engineer==str)
					 {
					   str.Format("%2f",m_pTableOperation.MCTBL[j].LOW);
                       str6+=str;
					   str.Format("%2f",m_pTableOperation.MCTBL[j].HIGH);
					   str7+=str;                
					   flg = 1;
					   break;    
					 }
				     else   continue;
				}        
			  
               str5+="\r\n";
                str6+="\r\n";
			    str7+="\r\n";
			     str8+="\r\n";
			}
		m_pMName = str1;
	  	m_pMMin = str2;
	  	m_pMMax= str3;
	  	m_pMU= str4;
        m_EName = str5;
		m_ELow = str6;
		m_EHigh = str7;
		m_EU    = str8;
		}
		UpdateData(false);
  return TRUE;
}

void CInstrumentInit::OnOK()     //保存信息
{
    UpdateData(true);
	

    for(int i=0;i<4;i++)          //保存工程值的设定
	{     
      m_EngLow.GetLine( i, low[i] ) ;	  
	  EnginLow[i] = atof(low[i]);   //字符串数组转换成浮点数
      m_EngHigh.GetLine( i, hi[i] );
      EnginHigh[i]=atof (hi[i]);
	}  
	
	CDialog::OnOK();
}


⌨️ 快捷键说明

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