Changeset 18 for trunk/XSUCLWF/Cxfel.cpp


Ignore:
Timestamp:
Jun 24, 2013, 6:04:42 PM (11 years ago)
Author:
marrucho
Message:

Rajout de la saisie de numP et numC

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XSUCLWF/Cxfel.cpp

    r16 r18  
    3131                uint8_t tab_rp_bits[MODBUS_SIZE_READ_COILS];
    3232                Console::WriteLine(S"ThreadProc: read coils...");
    33                 int rc = modbus_read_bits(ctx, 3000, 13, tab_rp_bits);////JCM : adresse coils=3000
    34                 if (rc != 13)
     33                int rc = modbus_read_bits(ctx, MODBUS_BASEADR_COILS, MODBUS_SIZE_READ_COILS, tab_rp_bits);////JCM : adresse coils=MODBUS_BASEADR_COILS
     34                if (rc != MODBUS_SIZE_READ_COILS)
    3535                        Console::WriteLine(S"ThreadProc: read coils failed...");
    3636                Thread::Sleep(500);
     
    3838                uint16_t tab_rp_registers_low[MODBUS_SIZE_READ_HOLDINGS_LOW];
    3939                Console::WriteLine(S"ThreadProc: read holdings...");
    40                 rc = modbus_read_registers(ctx, 2000,//JCM : adresse holding=2000
    41                         82, tab_rp_registers_low);
    42                 if (rc != 82)
     40                rc = modbus_read_registers(ctx, MODBUS_BASEADR_LOW_HOLDINGS,//JCM : adresse holding=MODBUS_BASEADR_LOW_HOLDINGS
     41                        MODBUS_SIZE_READ_HOLDINGS_LOW, tab_rp_registers_low);
     42                if (rc != MODBUS_SIZE_READ_HOLDINGS_LOW)
    4343                        Console::WriteLine(S"ThreadProc: read holdings failed...");
    4444                Thread::Sleep(500);
     
    6262                uint16_t tab_rp_registers_high[MODBUS_SIZE_READ_HOLDINGS_HIGH];
    6363                Console::WriteLine(S"ThreadProc: read holdings...");
    64                 rc = modbus_read_registers(ctx, 2082,
    65                         125, tab_rp_registers_high);
    66                 if (rc != 125)
     64                rc = modbus_read_registers(ctx, MODBUS_BASEADR_HIGH_HOLDINGS,
     65                        MODBUS_SIZE_READ_HOLDINGS_HIGH, tab_rp_registers_high);
     66                if (rc != MODBUS_SIZE_READ_HOLDINGS_HIGH)
    6767                        Console::WriteLine(S"ThreadProc: read holdings failed...");
    6868                Thread::Sleep(500);
     
    100100        valNumP->Location = Point(70,55);
    101101        valNumP->Size = System::Drawing::Size(60, 40);
    102         valNumP->Text = "";//zone de texte initialisée vide
     102        valNumP->Text = "xx";//zone de texte initialisée vide
    103103        valNumP->Font = new System::Drawing::Font(S"Arial", 9, FontStyle::Bold);
    104104        valNumP->ForeColor = Color::Brown;
     
    116116        valNumC1->Location = Point(30,110);
    117117        valNumC1->Size = System::Drawing::Size(60, 40);
    118         valNumC1->Text = "";//zone de texte initialisée vide
     118        valNumC1->Text = "xx";//zone de texte initialisée vide
    119119        valNumC1->Font = new System::Drawing::Font(S"Arial", 9, FontStyle::Bold);;
    120120        valNumC1->ForeColor = Color::Brown;
     
    132132        valNumC2->Location = Point(105,110);
    133133        valNumC2->Size = System::Drawing::Size(60, 40);
    134         valNumC2->Text = "";//zone de texte initialisée vide
     134        valNumC2->Text = "xx";//zone de texte initialisée vide
    135135        valNumC2->Font = new System::Drawing::Font(S"Arial", 9, FontStyle::Bold);;
    136136        valNumC2->ForeColor = Color::Brown;
     
    179179void CGroupBox::AppliquerBtn_Clicked(Object* pSender, EventArgs* pArgs)//gestionnaire d'evenements associés au bouton Appliquer
    180180    {
     181                String* str;
     182                //lecture fichier ou BDD pour comparaison avec saisie
     183                try
     184                        {
     185                                FileStream* fs = new FileStream("..\\test1_4xsuc.txt",FileMode::Open);
     186                                StreamReader* sr = new StreamReader(fs);
     187                                int count=0;
     188
    181189                        if(!String::Compare(name,"a"))
    182190                        {
    183                                 Console::WriteLine(S"appliquer a");     
     191                                Console::WriteLine(S"appliquer a");
     192                                for (;;)
     193                                {
     194                                        String* line = sr->ReadLine();
     195                                        if (count==0)
     196                                                if(String::Compare(line,valNumP->Text))
     197                                                {
     198                                                        MessageBox::Show(S"a: NumP n'existe pas !!");
     199                                                        sr->Close();
     200                                                        break;
     201                                                }
     202                                        if (count==1)
     203                                                if(String::Compare(line,valNumC1->Text))
     204                                                {
     205                                                        MessageBox::Show(S"a: NumC1 n'existe pas !!");
     206                                                        sr->Close();
     207                                                        break;
     208                                                }
     209                                        if (count==2)
     210                                                if(String::Compare(line,valNumC2->Text))
     211                                                {
     212                                                        MessageBox::Show(S"a: NumC2 n'existe pas !!");
     213                                                        sr->Close();
     214                                                        break;
     215                                                }
     216                                        count++;
     217                                        if (line==0)//fin du fichier
     218                                        {
     219                                                sr->Close();
     220                                                uint16_t tab_rp_registers[2];
     221                                                int rc;
     222                                                int size;
     223                                                Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write NumP NumC1 et NumC2...");
     224                                                size=1;
     225                                                tab_rp_registers[0] = Convert::ToInt16(valNumP->Text);
     226                                                modbus_write_registers(ctx, 2070,size, tab_rp_registers);//NumP
     227                                                if (rc != size)
     228                                                        Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write holding failed...");             
     229        //                                      Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write holding...");
     230                                                size=2;
     231                                                tab_rp_registers[0] = Convert::ToInt16(valNumC1->Text);
     232                                                tab_rp_registers[1] = Convert::ToInt16(valNumC2->Text);
     233                                                modbus_write_registers(ctx, 2050,size, tab_rp_registers);//NumC1 et NumC2
     234                                                if (rc != size)
     235                                                        Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write holding failed...");             
     236                                                break;
     237                                        }
     238                                }
    184239                        }
    185240                        if(!String::Compare(name,"b"))
    186241                        {
    187242                                Console::WriteLine(S"appliquer b");     
     243                                for (;;)
     244                                {
     245                                        String* line = sr->ReadLine();
     246                                        if (count==3)
     247                                                if(String::Compare(line,valNumP->Text))
     248                                                {
     249                                                        MessageBox::Show(S"b: NumP n'existe pas !!");
     250                                                        sr->Close();
     251                                                        break;
     252                                                }
     253                                        if (count==4)
     254                                                if(String::Compare(line,valNumC1->Text))
     255                                                {
     256                                                        MessageBox::Show(S"b: NumC1 n'existe pas !!");
     257                                                        sr->Close();
     258                                                        break;
     259                                                }
     260                                        if (count==5)
     261                                                if(String::Compare(line,valNumC2->Text))
     262                                                {
     263                                                        MessageBox::Show(S"b: NumC2 n'existe pas !!");
     264                                                        sr->Close();
     265                                                        break;
     266                                                }
     267                                        count++;
     268                                        if (line==0)//fin du fichier
     269                                        {
     270                                                sr->Close();
     271                                                uint16_t tab_rp_registers[2];
     272                                                int rc;
     273                                                int size;
     274                                                Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write NumP NumC1 et NumC2...");
     275                                                size=1;
     276                                                tab_rp_registers[0] = Convert::ToInt16(valNumP->Text);
     277                                                modbus_write_registers(ctx, 2071,size, tab_rp_registers);//NumP
     278                                                if (rc != size)
     279                                                        Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write holding failed...");             
     280        //                                      Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write holding...");
     281                                                size=2;
     282                                                tab_rp_registers[0] = Convert::ToInt16(valNumC1->Text);
     283                                                tab_rp_registers[1] = Convert::ToInt16(valNumC2->Text);
     284                                                modbus_write_registers(ctx, 2052,size, tab_rp_registers);//NumC1 et NumC2
     285                                                if (rc != size)
     286                                                        Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write holding failed...");             
     287                                                break;
     288                                        }
     289                                }
    188290                        }
    189291                        if(!String::Compare(name,"c"))
    190292                        {
    191293                                Console::WriteLine(S"appliquer c");     
     294                                for (;;)
     295                                {
     296                                        String* line = sr->ReadLine();
     297                                        if (count==6)
     298                                                if(String::Compare(line,valNumP->Text))
     299                                                {
     300                                                        MessageBox::Show(S"c: NumP n'existe pas !!");
     301                                                        sr->Close();
     302                                                        break;
     303                                                }
     304                                        if (count==7)
     305                                                if(String::Compare(line,valNumC1->Text))
     306                                                {
     307                                                        MessageBox::Show(S"c: NumC1 n'existe pas !!");
     308                                                        sr->Close();
     309                                                        break;
     310                                                }
     311                                        if (count==8)
     312                                                if(String::Compare(line,valNumC2->Text))
     313                                                {
     314                                                        MessageBox::Show(S"c: NumC2 n'existe pas !!");
     315                                                        sr->Close();
     316                                                        break;
     317                                                }
     318                                        count++;
     319                                        if (line==0)//fin du fichier
     320                                        {
     321                                                sr->Close();
     322                                                uint16_t tab_rp_registers[2];
     323                                                int rc;
     324                                                int size;
     325                                                Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write NumP NumC1 et NumC2...");
     326                                                size=1;
     327                                                tab_rp_registers[0] = Convert::ToInt16(valNumP->Text);
     328                                                modbus_write_registers(ctx, 2072,size, tab_rp_registers);//NumP
     329                                                if (rc != size)
     330                                                        Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write holding failed...");             
     331        //                                      Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write holding...");
     332                                                size=2;
     333                                                tab_rp_registers[0] = Convert::ToInt16(valNumC1->Text);
     334                                                tab_rp_registers[1] = Convert::ToInt16(valNumC2->Text);
     335                                                modbus_write_registers(ctx, 2054,size, tab_rp_registers);//NumC1 et NumC2
     336                                                if (rc != size)
     337                                                        Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write holding failed...");             
     338                                                break;
     339                                        }
     340                                }
    192341                        }
    193342                        if(!String::Compare(name,"d"))
    194343                        {
    195344                                Console::WriteLine(S"appliquer d");     
    196                         }
     345                                for (;;)
     346                                {
     347                                        String* line = sr->ReadLine();
     348                                        if (count==9)
     349                                                if(String::Compare(line,valNumP->Text))
     350                                                {
     351                                                        MessageBox::Show(S"d: NumP n'existe pas !!");
     352                                                        sr->Close();
     353                                                        break;
     354                                                }
     355                                        if (count==10)
     356                                                if(String::Compare(line,valNumC1->Text))
     357                                                {
     358                                                        MessageBox::Show(S"d: NumC1 n'existe pas !!");
     359                                                        sr->Close();
     360                                                        break;
     361                                                }
     362                                        if (count==11)
     363                                                if(String::Compare(line,valNumC2->Text))
     364                                                {
     365                                                        MessageBox::Show(S"d: NumC2 n'existe pas !!");
     366                                                        sr->Close();
     367                                                        break;
     368                                                }
     369                                        count++;
     370                                        if (line==0)//fin du fichier
     371                                        {
     372                                                sr->Close();
     373                                                uint16_t tab_rp_registers[2];
     374                                                int rc;
     375                                                int size;
     376                                                Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write NumP NumC1 et NumC2...");
     377                                                size=1;
     378                                                tab_rp_registers[0] = Convert::ToInt16(valNumP->Text);
     379                                                modbus_write_registers(ctx, 2073,size, tab_rp_registers);//NumP
     380                                                if (rc != size)
     381                                                        Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write holding failed...");             
     382        //                                      Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write holding...");
     383                                                size=2;
     384                                                tab_rp_registers[0] = Convert::ToInt16(valNumC1->Text);
     385                                                tab_rp_registers[1] = Convert::ToInt16(valNumC2->Text);
     386                                                modbus_write_registers(ctx, 2056,size, tab_rp_registers);//NumC1 et NumC2
     387                                                if (rc != size)
     388                                                        Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write holding failed...");             
     389                                                break;
     390                                        }
     391                                }
     392                        }
     393                }
     394                catch (System::Exception* pe)
     395                        {
     396                                Console::WriteLine(pe->ToString());
     397                        }
     398                int count=0;
     399
    197400  }
    198401
    199402CDialogConfig::CDialogConfig()
     403    {
     404        // définit les paramètres du formulaire
     405        Text = S"XSUC - ecriture serveur";
     406        FormBorderStyle = FormBorderStyle::Fixed3D;//impossible de modifier la taille
     407        Size = System::Drawing::Size(1000,800);
     408
     409        // Creation de controle
     410        sortirBtn = new Button();
     411       
     412        // bouton OK
     413        sortirBtn->Location = Point(900, 700);
     414        sortirBtn->Name = "Bouton Sortir";
     415        sortirBtn->Text = "sortir";
     416        sortirBtn->DialogResult = DialogResult::OK;
     417
     418        // Ajoute les controles dans le formaulaire
     419        Controls->Add(sortirBtn);
     420
     421/*      GroupBox* gbox = new GroupBox();
     422        gbox->Text = S"name";
     423        gbox->Size = System::Drawing::Size(200, 150);//taille du groupbox en pixels
     424        gbox->Location = Point(200,90);
     425        Label* labNumP= new Label();
     426        labNumP->Location = Point(10, 20);
     427        labNumP->Size = System::Drawing::Size(50,16);
     428        labNumP->Text = "Num_P";//zone de texte initialisée
     429        labNumP->TextAlign = ContentAlignment::MiddleRight;
     430        gbox->Controls->Add(labNumP);
     431        Controls->Add(gbox);
     432*/
     433                pal = new ArrayList();
     434                int j=20;//depart affichage
     435                for (indexGroupBox=0;indexGroupBox<NB_BANCS;indexGroupBox++)//creation des controles dans le formulaire
     436                {
     437                        pal->Add(new CGroupBox(gname[indexGroupBox],j,90));
     438                        j+=250;
     439                        CGroupBox* gboxPtr = (CGroupBox *) pal->get_Item(indexGroupBox);
     440//                      gboxPtr->Controls->Add(gboxPtr->GetLabelNumP());
     441//                      gboxPtr->GetGroupBox()->Controls->Add(gboxPtr->GetLabelNumC1());
     442//                      gboxPtr->Controls->Add(gboxPtr->GetLabelNumC2());
     443                        Controls->Add(gboxPtr->GetGroupBox());
     444                        String* str;
     445                        str=String::Concat(gboxPtr->GetGroupBox()->Text);
     446                        Console::WriteLine(str);       
     447/*                      str=String::Concat(gboxPtr->GetLabelNumP()->Text);
     448                        Console::WriteLine(str);       
     449                        str=String::Concat(gboxPtr->GetLabelNumC1()->Text);
     450                        Console::WriteLine(str);       
     451*/              }
     452
     453                //configure les 2 propriétés : AcceptButton contient la réf du bouton par défaut du formulaire..
     454                //..on peut cliquer sur le bouton OK ou bien sur la touche Entrée du clavier..
     455                //..referme aussi la boite car DialogResult renvoie OK
     456        AcceptButton = sortirBtn;
     457
     458                //gestionnnaire associé au bouton OK
     459                sortirBtn->Click += new EventHandler(this, &CDialogConfig::SortirBtn_Clicked);
     460        }
     461
     462CDialogConfig::CDialogConfig(uint16_t *tab_rp_registers_low,uint16_t *tab_rp_registers_high)
    200463    {
    201464        // définit les paramètres du formulaire
     
    438701                        Thread::Sleep(500);
    439702                        Console::WriteLine(S"ThreadProc: read coils...");
    440                         adress=3000;//adresse coils=3000
    441                         size=13;
    442                         rc = modbus_read_bits(ctx, adress, size, tab_rp_bits);////JCM : adresse coils=3000
     703                        adress=MODBUS_BASEADR_COILS;//adresse coils=MODBUS_BASEADR_COILS
     704                        size=MODBUS_SIZE_READ_COILS;
     705                        rc = modbus_read_bits(ctx, adress, size, tab_rp_bits);////JCM : adresse coils=MODBUS_BASEADR_COILS
    443706                        if (rc != size)
    444707                                Console::WriteLine(S"ThreadProc: read coils failed...");
     
    446709                        Thread::Sleep(500);
    447710                        Console::WriteLine(S"ThreadProc: read holdings...");
    448                         adress=2000;//adresse holding=2000
     711                        adress=MODBUS_BASEADR_LOW_HOLDINGS;//adresse holding=MODBUS_BASEADR_LOW_HOLDINGS
    449712                        size=82;
    450713                        rc = modbus_read_registers(ctx, adress, size, tab_rp_registers_low);
     
    617880                        Thread::Sleep(500);
    618881                        Console::WriteLine(S"ThreadProc: read holdings...");
    619                         adress=2082;//adresse holding=2082
    620                         size=125;
     882                        adress=MODBUS_BASEADR_HIGH_HOLDINGS;//adresse holding=MODBUS_BASEADR_HIGH_HOLDINGS
     883                        size=MODBUS_SIZE_READ_HOLDINGS_HIGH;
    621884                        rc = modbus_read_registers(ctx, adress, size, tab_rp_registers_high);
    622885                        if (rc != size)
     
    10711334                        Console::WriteLine(S"MaDialogUser::BtnStart_Clicked : write holding...");
    10721335                        int rc = modbus_write_registers(ctx, 2048,1 , tab_rp_registers);
    1073                         if (rc != 48)
     1336                        if (rc != 1)
    10741337                                        Console::WriteLine(S"MaDialogUser::BtnStart_Clicked : write holding failed...");               
    10751338                }
     
    10931356                        Console::WriteLine(S"MaDialogUser::BtnStart_Clicked : write holding...");
    10941357                        int rc = modbus_write_registers(ctx, 2048,1 , tab_rp_registers);
    1095                         if (rc != 48)
     1358                        if (rc != 1)
    10961359                                        Console::WriteLine(S"MaDialogUser::BtnStart_Clicked : write holding failed...");               
    10971360                }
     
    11151378                        Console::WriteLine(S"MaDialogUser::BtnStart_Clicked : write holding...");
    11161379                        int rc = modbus_write_registers(ctx, 2048,1 , tab_rp_registers);
    1117                         if (rc != 48)
     1380                        if (rc != 1)
    11181381                                        Console::WriteLine(S"MaDialogUser::BtnStart_Clicked : write holding failed...");               
    11191382                }
     
    11371400                        Console::WriteLine(S"MaDialogUser::BtnStart_Clicked : write holding...");
    11381401                        int rc = modbus_write_registers(ctx, 2048,1 , tab_rp_registers);
    1139                         if (rc != 48)
     1402                        if (rc != 1)
    11401403                                        Console::WriteLine(S"MaDialogUser::BtnStart_Clicked : write holding failed...");               
    11411404                }
     
    13571620void CppForm::Btn4_Clicked(Object* pSender, EventArgs* pArgs)//gestionnaire d'evenements associés au bouton 4
    13581621    {
     1622/*              uint16_t tab_rp_registers_low[MODBUS_SIZE_READ_HOLDINGS_LOW];
     1623                uint16_t tab_rp_registers_high[MODBUS_SIZE_READ_HOLDINGS_HIGH];
     1624                int rc, adress, size;
     1625                Console::WriteLine(S"ThreadProc: read holdings...");
     1626                adress=MODBUS_BASE_LOW_HOLDINGS;//adresse holding=MODBUS_BASE_LOW_HOLDINGS
     1627                size=82;
     1628                rc = modbus_read_registers(ctx, adress, size, tab_rp_registers_low);
     1629                if (rc != size)
     1630                Console::WriteLine(S"ThreadProc: read holdings failed...");
     1631                Thread::Sleep(500);
     1632                Console::WriteLine(S"ThreadProc: read holdings...");
     1633                adress=MODBUS_BASEADR_HIGH_HOLDINGS;//adresse holding=MODBUS_BASEADR_HIGH_HOLDINGS
     1634                size=MODBUS_SIZE_READ_HOLDINGS_HIGH;
     1635                rc = modbus_read_registers(ctx, adress, size, tab_rp_registers_high);
     1636                if (rc != size)
     1637                        Console::WriteLine(S"ThreadProc: read holdings failed...");
     1638*/
    13591639                //crée la boite de dialogue utilisateur
    13601640                CDialogConfig* box = new CDialogConfig();
     
    15211801                       "FC01";
    15221802                        uint8_t tab_rp_bits[1];
    1523                         int rc = modbus_read_bits(ctx, 3000, 1, tab_rp_bits);////JCM : adresse coils=3000
     1803                        int rc = modbus_read_bits(ctx, MODBUS_BASEADR_COILS, 1, tab_rp_bits);////JCM : adresse coils=MODBUS_BASEADR_COILS
    15241804                        Console::WriteLine(S"CppForm::Radio_Clicked : read one coil...");
    15251805                        if (rc != 1)
     
    15331813                        modbus_set_bits_from_bytes(tab_value, 0, 77, UT_BITS_TAB);
    15341814                        printf("tab[0]=%d,tab[1]=%d,tab[2]=%d\n", tab_value[0], tab_value[1], tab_value[2]);
    1535                         int rc = modbus_write_bits(ctx, 3000,//JCM : adresse coils=3000
     1815                        int rc = modbus_write_bits(ctx, MODBUS_BASEADR_COILS,//JCM : adresse coils=MODBUS_BASEADR_COILS
    15361816                                77, tab_value);
    15371817                        if (rc != 77)
     
    15431823                      "FC03";
    15441824                        uint16_t tab_rp_registers[UT_REGISTERS_NB];
    1545                         int rc = modbus_read_registers(ctx, 2000,//JCM : adresse holding=2000
     1825                        int rc = modbus_read_registers(ctx, MODBUS_BASEADR_LOW_HOLDINGS,//JCM : adresse holding=MODBUS_BASEADR_LOW_HOLDINGS
    15461826                               UT_REGISTERS_NB, tab_rp_registers);
    15471827                        Console::WriteLine(S"CppForm::Radio_Clicked : read holding...");
Note: See TracChangeset for help on using the changeset viewer.