- TRY {
- gras_msg_wait(60,gras_msgtype_by_name("step"),&from,&step);
- } CATCH(e) {
- RETHROW0("I Can't get a Next Step message from Maestro : %s");
- }
- INFO1("Recive a step message from maestro: step = %d ",step);
-
- if (step < MATRIX_SIZE ){
- /* a row brodcast */
- gras_os_sleep(3); // IL FAUT EXPRIMER LE TEMPS D'ATTENTE EN FONCTION DE "SENSOR_NBR"
- if(myrow==step){
- INFO2("step(%d) = Myrow(%d)",step,myrow);
- for (l=1;l < MATRIX_SIZE ;l++){
- gras_msg_send(socket_column[l-1], gras_msgtype_by_name("dataB"), &mydataB);
- bB=mydataB;
- INFO1("send my data B (%.3g) to my (vertical) neighbors",bB);
- }
+ TRY {
+ gras_msg_wait(200,gras_msgtype_by_name("step"),&from,&step);
+ } CATCH(e) {
+ RETHROW0("I Can't get a Next Step message from master : %s");
+ }
+ INFO1("Recive a step message from master: step = %d ",step);
+
+ if (step < PROC_MATRIX_SIZE ){
+ /* a row brodcast */
+ gras_os_sleep(3); // IL FAUT EXPRIMER LE TEMPS D'ATTENTE EN FONCTION DE "SLAVE_COUNT"
+ if(myrow==step){
+ INFO2("step(%d) = Myrow(%d)",step,myrow);
+ for (l=1;l < PROC_MATRIX_SIZE ;l++){
+ gras_msg_send(socket_column[l-1], gras_msgtype_by_name("dataB"), &mydataB);
+ bB=mydataB;
+ INFO1("send my data B (%.3g) to my (vertical) neighbors",bB);
+ }
+ }
+ if(myrow != step){
+ INFO2("step(%d) <> Myrow(%d)",step,myrow);
+ TRY {
+ gras_msg_wait(600,gras_msgtype_by_name("dataB"),
+ &from,&bB);
+ } CATCH(e) {
+ RETHROW0("I Can't get a data message from row : %s");
+ }
+ INFO2("Recive data B (%.3g) from my neighbor: %s",bB,gras_socket_peer_name(from));
+ }
+ /* a column brodcast */
+ if(mycol==step){
+ for (l=1;l < PROC_MATRIX_SIZE ;l++){
+ gras_msg_send(socket_row[l-1],gras_msgtype_by_name("dataA"), &mydataA);
+ bA=mydataA;
+ INFO1("send my data A (%.3g) to my (horizontal) neighbors",bA);