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

📄 std_sub.cpp

📁 《WinCE.NET嵌入式工业用控制器及自动控制系统设计》的源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
       rc= Coil_Bit_Read(&Coil.AI_L[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[4]= buff;

       rc= Coil_Bit_Read(&Coil.AI_LL[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[5]= buff;

       addr_1= addr + ED_MAX;
       sprintf(buff, "%10g", Reg.AI_HH[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[6]= buff;
       sprintf(buff, "%10g", Reg.AI_H[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[7]= buff;
       sprintf(buff, "%10g", Reg.AI_L[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[8]= buff;
       sprintf(buff, "%10g", Reg.AI_LL[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[9]= buff;
       sprintf(buff, "%6.3f", Reg.AI_DEAD[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[10]= buff;
       sprintf(buff, "%10g", Reg.AI_INIT[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[11]= buff;
       break;
     case 7:  // Output Register Soft
       sprintf(buff, "%10g", Reg.AO_SOFT[addr]);
       list->Items->Item[addr]->SubItems->Strings[1]= buff;

       bytes= (addr+ED_MAX)/8;
       bitno= (addr+ED_MAX)%8;
       rc= Coil_Bit_Read(&Coil.AO_HH[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[2]= buff;

       rc= Coil_Bit_Read(&Coil.AO_H[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[3]= buff;

       rc= Coil_Bit_Read(&Coil.AO_L[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[4]= buff;

       rc= Coil_Bit_Read(&Coil.AO_LL[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[5]= buff;

       addr_1= addr + ED_MAX;
       sprintf(buff, "%10g", Reg.AO_HH[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[6]= buff;
       sprintf(buff, "%10g", Reg.AO_H[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[7]= buff;
       sprintf(buff, "%10g", Reg.AO_L[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[8]= buff;
       sprintf(buff, "%10g", Reg.AO_LL[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[9]= buff;
       sprintf(buff, "%6.3f", Reg.AO_DEAD[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[10]= buff;
       sprintf(buff, "%10g", Reg.AO_INIT[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[11]= buff;
       break;
     case 8:  // Timer Table
       sprintf(buff, "%6d", Reg.TM_PSET[addr]);
       list->Items->Item[addr]->SubItems->Strings[1]= buff;
       sprintf(buff, "%6d", Reg.TM_CURR[addr]);
       list->Items->Item[addr]->SubItems->Strings[3]= buff;
       bytes= addr/8;
       bitno= addr%8;
       rc= Coil_Bit_Read(&Coil.TM_BIT[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[5]= buff;
       break;
     case 9:  // Counter Table
       sprintf(buff, "%6d", Reg.CN_PSET[addr]);
       list->Items->Item[addr]->SubItems->Strings[1]= buff;
       sprintf(buff, "%6d", Reg.CN_CURR[addr]);
       list->Items->Item[addr]->SubItems->Strings[3]= buff;
       bytes= addr/8;
       bitno= addr%8;
       rc= Coil_Bit_Read(&Coil.CN_BIT[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[5]= buff;
       break;
   }
}
//---------------------------------------------------------------------------
void display_listview_data_Def(TListView *list, int idx)
{
   int i;

   switch(idx)
   {
      case 0:  // Input Coil
	for(i=0; i<DD_MAX_BIT; i++)
	{
          display_listview_TAG_Def(list, 0, i);
	}
        break;
      case 1:  // Output Coil
	for(i=0; i<DD_MAX_BIT; i++)
	{
          display_listview_TAG_Def(list, 1, i);
	}
        break;
      case 2:  // Input Register
	for(i=0; i<ED_MAX; i++)
	{
          display_listview_TAG_Def(list, 2, i);
	}
        break;
      case 3:  // Holding Register
	for(i=0; i<ED_MAX; i++)
	{
          display_listview_TAG_Def(list, 3, i);
	}
        break;
      case 4:  // Input Coil Soft
	for(i=0; i<DD_MAX_BIT*2; i++)
	{
          display_listview_TAG_Def(list, 4, i);
	}
        break;
      case 5:  // Output Coil Soft
	for(i=0; i<DD_MAX_BIT*2; i++)
	{
          display_listview_TAG_Def(list, 5, i);
	}
        break;
      case 6:  // Input Register Soft
	for(i=0; i<ED_MAX*4; i++)
	{
          display_listview_TAG_Def(list, 6, i);
	}
        break;
      case 7:  // Output Register Soft
	for(i=0; i<ED_MAX*4; i++)
	{
          display_listview_TAG_Def(list, 7, i);
	}
        break;
      case 8:  // Timer Table
	for(i=0; i<CT_MAX_CASE; i++)
	{
          display_listview_TAG_Def(list, 8, i);
	}
        break;
      case 9:  // Counter Table
	for(i=0; i<CT_MAX_CASE; i++)
	{
          display_listview_TAG_Def(list, 9, i);
	}
        break;
   }
}
//---------------------------------------------------------------------------
void display_listview_TAG_Def(TListView *list, int idx, int addr)
{
  int rc, bytes, bitno, addr_1;
  char  buff[80];

  memset(buff, 0, sizeof(buff));
   switch(idx)
   {
     case 0:  // Input Coil
       bytes= addr/8;
       bitno= addr%8;
       rc= Coil_Bit_Read(&Coil_Def.DI_BARE[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
      list->Items->Item[addr]->SubItems->Strings[1]= buff;
       rc= Coil_Bit_Read(&Coil_Def.DI_INIT[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
      list->Items->Item[addr]->SubItems->Strings[2]= buff;
      break;
     case 1:  // Output Coil
       bytes= addr/8;
       bitno= addr%8;
       rc= Coil_Bit_Read(&Coil_Def.DO_BARE[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
      list->Items->Item[addr]->SubItems->Strings[1]= buff;
       rc= Coil_Bit_Read(&Coil_Def.DO_INIT[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
      list->Items->Item[addr]->SubItems->Strings[2]= buff;
       break;
     case 2:  // Input Register
       sprintf(buff, "%10g", Reg_Def.AI_BARE[addr]);
       list->Items->Item[addr]->SubItems->Strings[1]= buff;
       sprintf(buff, "%10g", Reg_Def.AI_ENG[addr]);
       list->Items->Item[addr]->SubItems->Strings[2]= buff;

       bytes= addr/8;
       bitno= addr%8;
       rc= Coil_Bit_Read(&Coil_Def.AI_HH[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[3]= buff;
       bytes= addr/8;
       bitno= addr%8;
       rc= Coil_Bit_Read(&Coil_Def.AI_H[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[4]= buff;
       bytes= addr/8;
       bitno= addr%8;
       rc= Coil_Bit_Read(&Coil_Def.AI_L[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[5]= buff;
       bytes= addr/8;
       bitno= addr%8;
       rc= Coil_Bit_Read(&Coil_Def.AI_LL[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[6]= buff;

       sprintf(buff, "%10g", Reg_Def.AI_RH[addr]);
       list->Items->Item[addr]->SubItems->Strings[7]= buff;
       sprintf(buff, "%10g", Reg_Def.AI_RL[addr]);
       list->Items->Item[addr]->SubItems->Strings[8]= buff;
       sprintf(buff, "%10g", Reg_Def.AI_BH[addr]);
       list->Items->Item[addr]->SubItems->Strings[9]= buff;
       sprintf(buff, "%10g", Reg_Def.AI_BL[addr]);
       list->Items->Item[addr]->SubItems->Strings[10]= buff;
       sprintf(buff, "%6.3f", Reg_Def.AI_FL[addr]);
       list->Items->Item[addr]->SubItems->Strings[11]= buff;
       sprintf(buff, "%10g", Reg_Def.AI_HH[addr]);
       list->Items->Item[addr]->SubItems->Strings[12]= buff;
       sprintf(buff, "%10g", Reg_Def.AI_H[addr]);
       list->Items->Item[addr]->SubItems->Strings[13]= buff;
       sprintf(buff, "%10g", Reg_Def.AI_L[addr]);
       list->Items->Item[addr]->SubItems->Strings[14]= buff;
       sprintf(buff, "%10g", Reg_Def.AI_LL[addr]);
       list->Items->Item[addr]->SubItems->Strings[15]= buff;
       sprintf(buff, "%6.3f", Reg_Def.AI_DEAD[addr]);
       list->Items->Item[addr]->SubItems->Strings[16]= buff;
       sprintf(buff, "%10g", Reg_Def.AI_INIT[addr]);
       list->Items->Item[addr]->SubItems->Strings[17]= buff;
       break;
     case 3:  // Holding Register
       sprintf(buff, "%10g", Reg_Def.AO_BARE[addr]);
       list->Items->Item[addr]->SubItems->Strings[1]= buff;
       sprintf(buff, "%10g", Reg_Def.AO_ENG[addr]);
       list->Items->Item[addr]->SubItems->Strings[2]= buff;

       bytes= addr/8;
       bitno= addr%8;
       rc= Coil_Bit_Read(&Coil_Def.AO_HH[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[3]= buff;
       bytes= addr/8;
       bitno= addr%8;
       rc= Coil_Bit_Read(&Coil_Def.AO_H[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[4]= buff;
       bytes= addr/8;
       bitno= addr%8;
       rc= Coil_Bit_Read(&Coil_Def.AO_L[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[5]= buff;
       bytes= addr/8;
       bitno= addr%8;
       rc= Coil_Bit_Read(&Coil_Def.AO_LL[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[6]= buff;

       sprintf(buff, "%10g", Reg_Def.AO_RH[addr]);
       list->Items->Item[addr]->SubItems->Strings[7]= buff;
       sprintf(buff, "%10g", Reg_Def.AO_RL[addr]);
       list->Items->Item[addr]->SubItems->Strings[8]= buff;
       sprintf(buff, "%10g", Reg_Def.AO_BH[addr]);
       list->Items->Item[addr]->SubItems->Strings[9]= buff;
       sprintf(buff, "%10g", Reg_Def.AO_BL[addr]);
       list->Items->Item[addr]->SubItems->Strings[10]= buff;
       sprintf(buff, "%6.3f", Reg_Def.AO_FL[addr]);
       list->Items->Item[addr]->SubItems->Strings[11]= buff;
       sprintf(buff, "%10g", Reg_Def.AO_HH[addr]);
       list->Items->Item[addr]->SubItems->Strings[12]= buff;
       sprintf(buff, "%10g", Reg_Def.AO_H[addr]);
       list->Items->Item[addr]->SubItems->Strings[13]= buff;
       sprintf(buff, "%10g", Reg_Def.AO_L[addr]);
       list->Items->Item[addr]->SubItems->Strings[14]= buff;
       sprintf(buff, "%10g", Reg_Def.AO_LL[addr]);
       list->Items->Item[addr]->SubItems->Strings[15]= buff;
       sprintf(buff, "%6.3f", Reg_Def.AO_DEAD[addr]);
       list->Items->Item[addr]->SubItems->Strings[16]= buff;
       sprintf(buff, "%10g", Reg_Def.AO_INIT[addr]);
       list->Items->Item[addr]->SubItems->Strings[17]= buff;
       break;
     case 4:  // Input Coil Soft
       bytes= addr/8;
       bitno= addr%8;
       rc= Coil_Bit_Read(&Coil_Def.DI_SOFT[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
      list->Items->Item[addr]->SubItems->Strings[1]= buff;
       bytes= (addr+DD_MAX_BIT)/8;
       bitno= (addr+DD_MAX_BIT)%8;
       rc= Coil_Bit_Read(&Coil_Def.DI_INIT[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
      list->Items->Item[addr]->SubItems->Strings[2]= buff;
       break;
     case 5:  // Output Coil Soft
       bytes= addr/8;
       bitno= addr%8;
       rc= Coil_Bit_Read(&Coil_Def.DO_SOFT[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
      list->Items->Item[addr]->SubItems->Strings[1]= buff;
       bytes= (addr+DD_MAX_BIT)/8;
       bitno= (addr+DD_MAX_BIT)%8;
       rc= Coil_Bit_Read(&Coil_Def.DO_INIT[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
      list->Items->Item[addr]->SubItems->Strings[2]= buff;
       break;
     case 6:  // Input Register Soft
       sprintf(buff, "%10g", Reg_Def.AI_SOFT[addr]);
       list->Items->Item[addr]->SubItems->Strings[1]= buff;

       bytes= (addr+AI_HH_BIT_PTR+ED_MAX)/8;
       bitno= (addr+AI_HH_BIT_PTR+ED_MAX)%8;
       rc= Coil_Bit_Read(&Coil_Def.AI_HH[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[2]= buff;
       bytes= (addr+AI_H_BIT_PTR+ED_MAX)/8;
       bitno= (addr+AI_H_BIT_PTR+ED_MAX)%8;
       rc= Coil_Bit_Read(&Coil_Def.AI_H[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[3]= buff;
       bytes= (addr+AI_L_BIT_PTR+ED_MAX)/8;
       bitno= (addr+AI_L_BIT_PTR+ED_MAX)%8;
       rc= Coil_Bit_Read(&Coil_Def.AI_L[bytes], bitno);
       if(rc==0)

⌨️ 快捷键说明

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