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

📄 display.cpp

📁 hart工业仪表的微机仿真程序,在C++Builder下制作,能够仿真仪表(执行器)的动作以及数学模型,方便实用.
💻 CPP
📖 第 1 页 / 共 2 页
字号:
        x0=x1;
        y0=y1;
        x1=x0+5;
        y1=y0-h;
        if(data2&0x02)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }
      //f
        x0=x1;
        y0=y1;
        x1=x0+5;
        y1=y0-h;
        if(data2&0x08)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }

      //g
        x0=x0;
        y0=y0;
        x1=x0+w;
        y1=y0;
        if(data2&0x04)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }

        x0=n*j+cx+w-j;
        y0=cy+2*h;
        if(data2&0x01)
           pCanvas->Ellipse(x0-1,y0-1,x0+1,y0+1);
}
void TMainForm::Draw_Num(unsigned char n,char data1,char data2,TCanvas *pCanvas)
{

        int i;
        int w=25,j=35,cx=20;
        int h=30,cy=20;
        int x0,y0,x1,y1;
     //a
        x0=n*j+cx;
        y0=cy;
        x1=x0+w;
        y1=y0;
        if(data1&0x08)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }
      //b
        x0=x1;
        y0=y1;
        x1=x0-5;
        y1=y0+h;
        if(data1&0x04)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }

      //c
        x0=x1;
        y0=y1;
        x1=x0-5;
        y1=y0+h;
        if(data1&0x02)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }

      //d
        x0=x1;
        y0=y1;
        x1=x0-w;
        y1=y0;
        if(data1&0x01)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }

      //e
        x0=x1;
        y0=y1;
        x1=x0+5;
        y1=y0-h;
        if(data2&0x02)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }
      //f
        x0=x1;
        y0=y1;
        x1=x0+5;
        y1=y0-h;
        if(data2&0x08)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }

      //g
        x0=x0;
        y0=y0;
        x1=x0+w;
        y1=y0;
        if(data2&0x04)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }
}

void TMainForm::Draw_State(unsigned char n,char data[],TCanvas *pCanvas)
{

        int i;
        int w=25,j=35,cx=60;
        int h=30,cy=20;
        int x0,y0,x1,y1;

     //a
        x0=n*j+cx;
        y0=cy;
        x1=x0+w;
        y1=y0;
        if(data[0]&0x08)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }
      //b
        x0=x1;
        y0=y1;
        x1=x0-5;
        y1=y0+h;
        if(data[3]&0x02)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }

      //c
        x0=x1;
        y0=y1;
        x1=x0-5;
        y1=y0+h;
        if(data[3]&0x01)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }

      //d
        x0=x1;
        y0=y1;
        x1=x0-w;
        y1=y0;
        if(data[0]&0x01)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }

      //e
        x0=x1;
        y0=y1;
        x1=x0+5;
        y1=y0-h;
        if(data[0]&0x02)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }
      //f
        x0=x1;
        y0=y1;
        x1=x0+5;
        y1=y0-h;
        if(data[0]&0x04)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }

      //g
        x0=x0;
        y0=y0;
        x1=x0+w/2;
        y1=y0;
        if(data[1]&0x04)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }

      //k     h
        x0=x1;
        y0=y0;
        x1=x0+w/2;
        y1=y0;
        if(data[2]&0x02)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }
       //h     i
        x1=n*j+cx;
        y1=cy;
        if(data[1]&0x08)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }
       //i     j
        x1=n*j+cx+w/2;
        y1=cy;
        if(data[2]&0x08)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }

       //j     k
        x1=n*j+cx+w;
        y1=cy;
        if(data[2]&0x04)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }

       //n     l
        x1=n*j+cx-10;
        y1=cy+2*h;
        if(data[1]&0x02)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }

       //m     m
        x1=n*j+cx+w/2-10;
        y1=cy+2*h;
        if(data[1]&0x01)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }
       //l      n
        x1=n*j+cx+w-10;
        y1=cy+2*h;
        if(data[2]&0x01)
        {
          pCanvas->MoveTo(x0,y0);
          pCanvas->LineTo(x1,y1);
        }

}
void TMainForm::Disp_Turn_Data_TO_Code8(double f,unsigned char c[12],int n)
{
   double d;
//   unsigned int w[6]={4,3,2,1,0};
   int dp;
   d=f;
   if(d<0.0)
   {
    d=d*(-1.0);
   }
   if(n==1)
     d=d*10.0;
   else if(n==2)
     d=d*100.0;
   Disp_HexToDec(d,c);

   dp=Disp_Process_Data(n,c);
   if(n!=0)
    c[(n-1)*2+1]|=0x01;          //在第位上显示小数点
   if(f<0.0)
   {
    c[dp+1]=0x00;
    c[dp+2]=0x04;
   }
}

void TMainForm::Disp_Turn_Data_TO_Code8_LE(unsigned long f,unsigned char c[12])
{
   unsigned long f1;
   int j=0;
   f1=f;
   while(1)
   {
     f1=f1/10;
     if(f1<100000)
       break;
     j++;
   }
   j=j+5;

   Disp_HexToDec(f1,c);
//   Process_Data(w[n],c);
//   if(n!=0)
    c[7]|=0x01;          //在第位上显示小数点
    c[2]=0x09;   //E
    c[3]=0x0E;
    c[0]=m_Code[j][0];
    c[1]=m_Code[j][1];
}

void TMainForm::Disp_Turn_Long(unsigned long f,char data[12])
{
    if(f<100000)
       Disp_Turn_Data_TO_Code8(f,data,0);
    else
       Disp_Turn_Data_TO_Code8_LE(f,data);
}
void TMainForm::Disp_Turn_Str_TO_Code(unsigned char s[],char data[12])
{
      unsigned int c,i;
      for(i=0;i<5;i++)
      {
          if(s[4-i]>=0x41 && s[4-i]<0x041+26)
            c=s[4-i]-65+10;
          else if(s[4-i]>=0x30 && s[4-i]<0x030+10)
            c=s[4-i]-0x30;
          else if(s[4-i]>='a' && s[4-i]<'a'+26)
            c=s[4-i]-'a'+10+26;
          data[i*2]=m_Code[c][0];
          data[i*2+1]=m_Code[c][1];
      }
}

void TMainForm::Disp_Debug_Param()
{
   char d[6];
//   strcpy(d,m_Set_YFCT[m_YFCT]);
//   YFCTEdit->Text=d;//1

   YFCTEdit->Text=m_Set_YFCT[m_YFCT];//1
   YPGLEdit->Text=m_Set_YAGL[m_YAGL];//2
   YWAYEdit->Text=m_Set_YWAY[m_YWAY];//3
   SCUREdit->Text=m_Set_SCUR[m_SCUR];//6
   SDIREdit->Text=m_Set_SDIR[m_SDIR];//7
   SPRAEdit->Text=CurrToStr(m_SPRA);//8
   SPREEdit->Text=CurrToStr(m_SPRE);//9
   TSUPEdit->Text=CurrToStr(m_TSUP);//10
   TSDOEdit->Text=CurrToStr(m_TSDO);//11
   SFCTEdit->Text=m_Set_SFCT[m_SFCT];//12

   DEBAEdit->Text=CurrToStr(m_DEBA);//34
   YAEdit->Text=CurrToStr(m_YA);//35
   YEEdit->Text=CurrToStr(m_YE);//36
   YNRMEdit->Text=m_Set_YNRM[m_YNRM];//37
   YDIREdit->Text=m_Set_YDIR[m_YDIR];//38
   YCLSEdit->Text=m_Set_YCLS[m_YCLS];//39
   YCDOEdit->Text=CurrToStr(m_YCDO);//40
   YCUPEdit->Text=CurrToStr(m_YCUP);//41

   BIN1Edit->Text=m_Set_BIN12[m_BIN1];//42
   BIN2Edit->Text=m_Set_BIN12[m_BIN2];//43
   AFCTEdit->Text=m_Set_AFCT[m_AFCT];//44
   A1Edit->Text=CurrToStr(m_A1);//45
   A2Edit->Text=CurrToStr(m_A2);//46
   HFCTEdit->Text=m_Set_HFCT[m_HFCT];//47
   HTIMEdit->Text=CurrToStr(m_HTIM);//48
   HLIMEdit->Text=CurrToStr(m_HLIM);//49
//   HSTRKEdit->Text=CurrToStr(m_HSTRK);//50
//   HDCHGEdit->Text=CurrToStr(m_HDCHG);//51
   HZEROEdit->Text=CurrToStr(m_HZERO);//52
   HOPENEdit->Text=CurrToStr(m_HOPEN);//53
   HDEBAEdit->Text=CurrToStr(m_HDEBA);//54
}





⌨️ 快捷键说明

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