Changeset 18 for trunk/XSUCLWF/Cxfel.cpp
- Timestamp:
- Jun 24, 2013, 6:04:42 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XSUCLWF/Cxfel.cpp
r16 r18 31 31 uint8_t tab_rp_bits[MODBUS_SIZE_READ_COILS]; 32 32 Console::WriteLine(S"ThreadProc: read coils..."); 33 int rc = modbus_read_bits(ctx, 3000, 13, tab_rp_bits);////JCM : adresse coils=300034 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) 35 35 Console::WriteLine(S"ThreadProc: read coils failed..."); 36 36 Thread::Sleep(500); … … 38 38 uint16_t tab_rp_registers_low[MODBUS_SIZE_READ_HOLDINGS_LOW]; 39 39 Console::WriteLine(S"ThreadProc: read holdings..."); 40 rc = modbus_read_registers(ctx, 2000,//JCM : adresse holding=200041 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) 43 43 Console::WriteLine(S"ThreadProc: read holdings failed..."); 44 44 Thread::Sleep(500); … … 62 62 uint16_t tab_rp_registers_high[MODBUS_SIZE_READ_HOLDINGS_HIGH]; 63 63 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) 67 67 Console::WriteLine(S"ThreadProc: read holdings failed..."); 68 68 Thread::Sleep(500); … … 100 100 valNumP->Location = Point(70,55); 101 101 valNumP->Size = System::Drawing::Size(60, 40); 102 valNumP->Text = " ";//zone de texte initialisée vide102 valNumP->Text = "xx";//zone de texte initialisée vide 103 103 valNumP->Font = new System::Drawing::Font(S"Arial", 9, FontStyle::Bold); 104 104 valNumP->ForeColor = Color::Brown; … … 116 116 valNumC1->Location = Point(30,110); 117 117 valNumC1->Size = System::Drawing::Size(60, 40); 118 valNumC1->Text = " ";//zone de texte initialisée vide118 valNumC1->Text = "xx";//zone de texte initialisée vide 119 119 valNumC1->Font = new System::Drawing::Font(S"Arial", 9, FontStyle::Bold);; 120 120 valNumC1->ForeColor = Color::Brown; … … 132 132 valNumC2->Location = Point(105,110); 133 133 valNumC2->Size = System::Drawing::Size(60, 40); 134 valNumC2->Text = " ";//zone de texte initialisée vide134 valNumC2->Text = "xx";//zone de texte initialisée vide 135 135 valNumC2->Font = new System::Drawing::Font(S"Arial", 9, FontStyle::Bold);; 136 136 valNumC2->ForeColor = Color::Brown; … … 179 179 void CGroupBox::AppliquerBtn_Clicked(Object* pSender, EventArgs* pArgs)//gestionnaire d'evenements associés au bouton Appliquer 180 180 { 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 181 189 if(!String::Compare(name,"a")) 182 190 { 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 } 184 239 } 185 240 if(!String::Compare(name,"b")) 186 241 { 187 242 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 } 188 290 } 189 291 if(!String::Compare(name,"c")) 190 292 { 191 293 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 } 192 341 } 193 342 if(!String::Compare(name,"d")) 194 343 { 195 344 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 197 400 } 198 401 199 402 CDialogConfig::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 462 CDialogConfig::CDialogConfig(uint16_t *tab_rp_registers_low,uint16_t *tab_rp_registers_high) 200 463 { 201 464 // définit les paramètres du formulaire … … 438 701 Thread::Sleep(500); 439 702 Console::WriteLine(S"ThreadProc: read coils..."); 440 adress= 3000;//adresse coils=3000441 size= 13;442 rc = modbus_read_bits(ctx, adress, size, tab_rp_bits);////JCM : adresse coils= 3000703 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 443 706 if (rc != size) 444 707 Console::WriteLine(S"ThreadProc: read coils failed..."); … … 446 709 Thread::Sleep(500); 447 710 Console::WriteLine(S"ThreadProc: read holdings..."); 448 adress= 2000;//adresse holding=2000711 adress=MODBUS_BASEADR_LOW_HOLDINGS;//adresse holding=MODBUS_BASEADR_LOW_HOLDINGS 449 712 size=82; 450 713 rc = modbus_read_registers(ctx, adress, size, tab_rp_registers_low); … … 617 880 Thread::Sleep(500); 618 881 Console::WriteLine(S"ThreadProc: read holdings..."); 619 adress= 2082;//adresse holding=2082620 size= 125;882 adress=MODBUS_BASEADR_HIGH_HOLDINGS;//adresse holding=MODBUS_BASEADR_HIGH_HOLDINGS 883 size=MODBUS_SIZE_READ_HOLDINGS_HIGH; 621 884 rc = modbus_read_registers(ctx, adress, size, tab_rp_registers_high); 622 885 if (rc != size) … … 1071 1334 Console::WriteLine(S"MaDialogUser::BtnStart_Clicked : write holding..."); 1072 1335 int rc = modbus_write_registers(ctx, 2048,1 , tab_rp_registers); 1073 if (rc != 48)1336 if (rc != 1) 1074 1337 Console::WriteLine(S"MaDialogUser::BtnStart_Clicked : write holding failed..."); 1075 1338 } … … 1093 1356 Console::WriteLine(S"MaDialogUser::BtnStart_Clicked : write holding..."); 1094 1357 int rc = modbus_write_registers(ctx, 2048,1 , tab_rp_registers); 1095 if (rc != 48)1358 if (rc != 1) 1096 1359 Console::WriteLine(S"MaDialogUser::BtnStart_Clicked : write holding failed..."); 1097 1360 } … … 1115 1378 Console::WriteLine(S"MaDialogUser::BtnStart_Clicked : write holding..."); 1116 1379 int rc = modbus_write_registers(ctx, 2048,1 , tab_rp_registers); 1117 if (rc != 48)1380 if (rc != 1) 1118 1381 Console::WriteLine(S"MaDialogUser::BtnStart_Clicked : write holding failed..."); 1119 1382 } … … 1137 1400 Console::WriteLine(S"MaDialogUser::BtnStart_Clicked : write holding..."); 1138 1401 int rc = modbus_write_registers(ctx, 2048,1 , tab_rp_registers); 1139 if (rc != 48)1402 if (rc != 1) 1140 1403 Console::WriteLine(S"MaDialogUser::BtnStart_Clicked : write holding failed..."); 1141 1404 } … … 1357 1620 void CppForm::Btn4_Clicked(Object* pSender, EventArgs* pArgs)//gestionnaire d'evenements associés au bouton 4 1358 1621 { 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 */ 1359 1639 //crée la boite de dialogue utilisateur 1360 1640 CDialogConfig* box = new CDialogConfig(); … … 1521 1801 "FC01"; 1522 1802 uint8_t tab_rp_bits[1]; 1523 int rc = modbus_read_bits(ctx, 3000, 1, tab_rp_bits);////JCM : adresse coils=30001803 int rc = modbus_read_bits(ctx, MODBUS_BASEADR_COILS, 1, tab_rp_bits);////JCM : adresse coils=MODBUS_BASEADR_COILS 1524 1804 Console::WriteLine(S"CppForm::Radio_Clicked : read one coil..."); 1525 1805 if (rc != 1) … … 1533 1813 modbus_set_bits_from_bytes(tab_value, 0, 77, UT_BITS_TAB); 1534 1814 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=30001815 int rc = modbus_write_bits(ctx, MODBUS_BASEADR_COILS,//JCM : adresse coils=MODBUS_BASEADR_COILS 1536 1816 77, tab_value); 1537 1817 if (rc != 77) … … 1543 1823 "FC03"; 1544 1824 uint16_t tab_rp_registers[UT_REGISTERS_NB]; 1545 int rc = modbus_read_registers(ctx, 2000,//JCM : adresse holding=20001825 int rc = modbus_read_registers(ctx, MODBUS_BASEADR_LOW_HOLDINGS,//JCM : adresse holding=MODBUS_BASEADR_LOW_HOLDINGS 1546 1826 UT_REGISTERS_NB, tab_rp_registers); 1547 1827 Console::WriteLine(S"CppForm::Radio_Clicked : read holding...");
Note: See TracChangeset
for help on using the changeset viewer.