Skip to content
Snippets Groups Projects
Commit abf70e8b authored by Abbe AHMED-KHALIFA's avatar Abbe AHMED-KHALIFA
Browse files

Model 13/01

parent f4641c2c
No related branches found
No related tags found
1 merge request!297Ahmeda
This commit is part of merge request !297. Comments created here will be created in the context of that merge request.
......@@ -56,7 +56,7 @@ void *mainFunc__Color(void *arg){
case STATE__WAIT_FOR_READY:
traceStateEntering(__myname, "WAIT_FOR_READY");
makeNewRequest(&__req0, 1539, RECEIVE_SYNC_REQUEST, 0, 0, 0, 0, __params0);
makeNewRequest(&__req0, 2647, RECEIVE_SYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.syncChannel = &__Color_ready_to_receive__Controller_ready_to_receive_color;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
......@@ -64,7 +64,7 @@ void *mainFunc__Color(void *arg){
color = Color__checkColor();
traceVariableModification("Color", "color", color,0);
__params0[0] = &color;
makeNewRequest(&__req0, 1540, SEND_SYNC_REQUEST, 0, 0, 0, 1, __params0);
makeNewRequest(&__req0, 2648, SEND_SYNC_REQUEST, 0, 0, 0, 1, __params0);
__req0.syncChannel = &__Color_sendColor__Controller_receiveColor;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
......
......@@ -62,10 +62,10 @@ void *mainFunc__Contact(void *arg){
case STATE__CHECK_CONTACT:
traceStateEntering(__myname, "CHECK_CONTACT");
makeNewRequest(&__req0, 1554, RECEIVE_SYNC_REQUEST, 0, 0, 0, 0, __params0);
makeNewRequest(&__req0, 2662, RECEIVE_SYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.syncChannel = &__Controller_ready_to_receive_cont__Contact_ready_to_receive;
addRequestToList(&__list, &__req0);
makeNewRequest(&__req1, 1576, IMMEDIATE, 0, 0, 0, 0, __params1);
makeNewRequest(&__req1, 2684, IMMEDIATE, 0, 0, 0, 0, __params1);
addRequestToList(&__list, &__req1);
if (nbOfRequests(&__list) == 0) {
debug2Msg(__myname, "No possible request");
......@@ -80,7 +80,7 @@ void *mainFunc__Contact(void *arg){
traceVariableModification("Contact", "contact", contact,0);
__params0[0] = &contact;
__params0[1] = &hasBeenPushed;
makeNewRequest(&__req0, 1555, SEND_SYNC_REQUEST, 0, 0, 0, 2, __params0);
makeNewRequest(&__req0, 2663, SEND_SYNC_REQUEST, 0, 0, 0, 2, __params0);
__req0.syncChannel = &__Controller_receiveContact__Contact_sendContact;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
......@@ -101,11 +101,11 @@ void *mainFunc__Contact(void *arg){
case STATE__choice__0:
traceStateEntering(__myname, "choice__0");
if (!(tmp == 1)) {
makeNewRequest(&__req0, 1560, IMMEDIATE, 0, 0, 0, 0, __params0);
makeNewRequest(&__req0, 2668, IMMEDIATE, 0, 0, 0, 0, __params0);
addRequestToList(&__list, &__req0);
}
if (tmp == 1) {
makeNewRequest(&__req1, 1561, IMMEDIATE, 0, 0, 0, 0, __params1);
makeNewRequest(&__req1, 2669, IMMEDIATE, 0, 0, 0, 0, __params1);
addRequestToList(&__list, &__req1);
}
if (nbOfRequests(&__list) == 0) {
......
......@@ -10,16 +10,17 @@
#define STATE__CHECK_ENVIRONMENT 2
#define STATE__choice__0 3
#define STATE__CHECK_COLOR 4
#define STATE__GO_FORWARD 5
#define STATE__GO_FORWARDS 5
#define STATE__CHECK_CONTACT 6
#define STATE__choice__1 7
#define STATE__TURN_LEFT 8
#define STATE__MOTOR_OFF 9
#define STATE__STOP__STATE 10
#define STATE__GO_BACKWARDS 8
#define STATE__TURN_LEFT 9
#define STATE__MOTOR_OFF 10
#define STATE__STOP__STATE 11
void *mainFunc__Controller(void *arg){
int myGlob__MOTOR_OFF_DELAY = 1;
int myGlob__MOTOR_ON_DELAY = 3;
int myGlob__MOTOR_ON_DELAY = 1;
int myGlob__FACTOR_ACC = 6;
int myGlob__FACTOR_DEC = 5;
int myGlob__MOTOR_SPEED = 500;
......@@ -68,29 +69,28 @@ void *mainFunc__Controller(void *arg){
case STATE__CHECK_ENVIRONMENT:
traceStateEntering(__myname, "CHECK_ENVIRONMENT");
makeNewRequest(&__req0, 1596, SEND_SYNC_REQUEST, 0, 0, 0, 0, __params0);
makeNewRequest(&__req0, 2704, SEND_SYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.syncChannel = &__Sonar_ready_to_receive__Controller_ready_to_receive_dist;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
__params0[0] = &distance;
makeNewRequest(&__req0, 1597, RECEIVE_SYNC_REQUEST, 0, 0, 0, 1, __params0);
makeNewRequest(&__req0, 2705, RECEIVE_SYNC_REQUEST, 0, 0, 0, 1, __params0);
__req0.syncChannel = &__Sonar_sendDistance__Controller_receiveDistance;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
waitFor((myGlob__SONAR_DELAY)*1000000, (myGlob__SONAR_DELAY)*1000000);
__currentState = STATE__choice__0;
break;
case STATE__choice__0:
traceStateEntering(__myname, "choice__0");
if (distance < 100) {
makeNewRequest(&__req0, 1634, IMMEDIATE, 0, 0, 0, 0, __params0);
makeNewRequest(&__req0, 2752, IMMEDIATE, 0, 0, 0, 0, __params0);
addRequestToList(&__list, &__req0);
}
if (!(distance < 100)) {
makeNewRequest(&__req1, 1638, IMMEDIATE, 0, 0, 0, 0, __params1);
makeNewRequest(&__req1, 2756, IMMEDIATE, 0, 0, 0, 0, __params1);
addRequestToList(&__list, &__req1);
}
if (nbOfRequests(&__list) == 0) {
......@@ -106,20 +106,20 @@ void *mainFunc__Controller(void *arg){
}
else if (__returnRequest == &__req1) {
__currentState = STATE__GO_FORWARD;
__currentState = STATE__GO_FORWARDS;
}
break;
case STATE__CHECK_COLOR:
traceStateEntering(__myname, "CHECK_COLOR");
makeNewRequest(&__req0, 1600, SEND_SYNC_REQUEST, 0, 0, 0, 0, __params0);
makeNewRequest(&__req0, 2708, SEND_SYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.syncChannel = &__Color_ready_to_receive__Controller_ready_to_receive_color;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
__params0[0] = &color;
makeNewRequest(&__req0, 1601, RECEIVE_SYNC_REQUEST, 0, 0, 0, 1, __params0);
makeNewRequest(&__req0, 2709, RECEIVE_SYNC_REQUEST, 0, 0, 0, 1, __params0);
__req0.syncChannel = &__Color_sendColor__Controller_receiveColor;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
......@@ -128,22 +128,22 @@ void *mainFunc__Controller(void *arg){
__currentState = STATE__CHECK_COLOR;
break;
case STATE__GO_FORWARD:
traceStateEntering(__myname, "GO_FORWARD");
case STATE__GO_FORWARDS:
traceStateEntering(__myname, "GO_FORWARDS");
speed = myGlob__MOTOR_SPEED;
traceVariableModification("Controller", "speed", speed,0);
flagA = 0;
traceVariableModification("Controller", "flagA", flagA,0);
__params0[0] = &speed;
__params0[1] = &flagA;
makeNewRequest(&__req0, 1603, SEND_SYNC_REQUEST, 0, 0, 0, 2, __params0);
makeNewRequest(&__req0, 2711, SEND_SYNC_REQUEST, 0, 0, 0, 2, __params0);
__req0.syncChannel = &__Controller_run_motor1__Motor1_run_motor;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
__params0[0] = &speed;
__params0[1] = &flagA;
makeNewRequest(&__req0, 1604, SEND_SYNC_REQUEST, 0, 0, 0, 2, __params0);
makeNewRequest(&__req0, 2712, SEND_SYNC_REQUEST, 0, 0, 0, 2, __params0);
__req0.syncChannel = &__Controller_run_motor2__Motor2_run_motor;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
......@@ -154,30 +154,29 @@ void *mainFunc__Controller(void *arg){
case STATE__CHECK_CONTACT:
traceStateEntering(__myname, "CHECK_CONTACT");
makeNewRequest(&__req0, 1606, SEND_SYNC_REQUEST, 0, 0, 0, 0, __params0);
makeNewRequest(&__req0, 2714, SEND_SYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.syncChannel = &__Controller_ready_to_receive_cont__Contact_ready_to_receive;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
__params0[0] = &contact;
__params0[1] = &hasBeenPushed;
makeNewRequest(&__req0, 1607, RECEIVE_SYNC_REQUEST, 0, 0, 0, 2, __params0);
makeNewRequest(&__req0, 2715, RECEIVE_SYNC_REQUEST, 0, 0, 0, 2, __params0);
__req0.syncChannel = &__Controller_receiveContact__Contact_sendContact;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
waitFor((myGlob__CONTACT_DELAY)*1000000, (myGlob__CONTACT_DELAY)*1000000);
__currentState = STATE__choice__1;
break;
case STATE__choice__1:
traceStateEntering(__myname, "choice__1");
if ((hasBeenPushed == 1)||(contact == 1)) {
makeNewRequest(&__req0, 1626, IMMEDIATE, 0, 0, 0, 0, __params0);
makeNewRequest(&__req0, 2726, IMMEDIATE, 0, 0, 0, 0, __params0);
addRequestToList(&__list, &__req0);
}
if (!((hasBeenPushed == 1)||(contact == 1))) {
makeNewRequest(&__req1, 1656, IMMEDIATE, 0, 0, 0, 0, __params1);
makeNewRequest(&__req1, 2774, IMMEDIATE, 0, 0, 0, 0, __params1);
addRequestToList(&__list, &__req1);
}
if (nbOfRequests(&__list) == 0) {
......@@ -189,7 +188,7 @@ void *mainFunc__Controller(void *arg){
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
if (__returnRequest == &__req0) {
__currentState = STATE__TURN_LEFT;
__currentState = STATE__GO_BACKWARDS;
}
else if (__returnRequest == &__req1) {
......@@ -198,22 +197,46 @@ void *mainFunc__Controller(void *arg){
}
break;
case STATE__GO_BACKWARDS:
traceStateEntering(__myname, "GO_BACKWARDS");
speed = myGlob__MOTOR_SPEED;
traceVariableModification("Controller", "speed", speed,0);
flagA = 1;
traceVariableModification("Controller", "flagA", flagA,0);
__params0[0] = &speed;
__params0[1] = &flagA;
makeNewRequest(&__req0, 2718, SEND_SYNC_REQUEST, 0, 0, 0, 2, __params0);
__req0.syncChannel = &__Controller_run_motor1__Motor1_run_motor;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
__params0[0] = &speed;
__params0[1] = &flagA;
makeNewRequest(&__req0, 2719, SEND_SYNC_REQUEST, 0, 0, 0, 2, __params0);
__req0.syncChannel = &__Controller_run_motor2__Motor2_run_motor;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
waitFor((1)*1000000, (1)*1000000);
__currentState = STATE__TURN_LEFT;
break;
case STATE__TURN_LEFT:
traceStateEntering(__myname, "TURN_LEFT");
flag = 1;
flag = 0;
traceVariableModification("Controller", "flag", flag,0);
deg = 90;
deg = 200;
traceVariableModification("Controller", "deg", deg,0);
__params0[0] = &flag;
__params0[1] = &deg;
makeNewRequest(&__req0, 1610, SEND_SYNC_REQUEST, 0, 0, 0, 2, __params0);
makeNewRequest(&__req0, 2721, SEND_SYNC_REQUEST, 0, 0, 0, 2, __params0);
__req0.syncChannel = &__Controller_turn1__Motor1_turn;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
__params0[0] = &flag;
__params0[1] = &deg;
makeNewRequest(&__req0, 1611, SEND_SYNC_REQUEST, 0, 0, 0, 2, __params0);
makeNewRequest(&__req0, 2722, SEND_SYNC_REQUEST, 0, 0, 0, 2, __params0);
__req0.syncChannel = &__Controller_turn2__Motor2_turn;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
......@@ -230,14 +253,14 @@ void *mainFunc__Controller(void *arg){
traceVariableModification("Controller", "flagA", flagA,0);
__params0[0] = &speed;
__params0[1] = &flagA;
makeNewRequest(&__req0, 1613, SEND_SYNC_REQUEST, 0, 0, 0, 2, __params0);
makeNewRequest(&__req0, 2724, SEND_SYNC_REQUEST, 0, 0, 0, 2, __params0);
__req0.syncChannel = &__Controller_run_motor1__Motor1_run_motor;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
__params0[0] = &speed;
__params0[1] = &flagA;
makeNewRequest(&__req0, 1614, SEND_SYNC_REQUEST, 0, 0, 0, 2, __params0);
makeNewRequest(&__req0, 2725, SEND_SYNC_REQUEST, 0, 0, 0, 2, __params0);
__req0.syncChannel = &__Controller_run_motor2__Motor2_run_motor;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
......
......@@ -90,7 +90,6 @@ void *mainFunc__Motor1(void *arg){
switch(__currentState) {
case STATE__START__STATE:
traceStateEntering(__myname, "__StartState");
waitFor((5)*1000000, (5)*1000000);
Motor1__initt(port);
__currentState = STATE__WaitingForMotorCommand;
break;
......@@ -99,19 +98,19 @@ void *mainFunc__Motor1(void *arg){
traceStateEntering(__myname, "WaitingForMotorCommand");
__params0[0] = &flag;
__params0[1] = &deg;
makeNewRequest(&__req0, 1694, RECEIVE_SYNC_REQUEST, 0, 0, 0, 2, __params0);
makeNewRequest(&__req0, 2812, RECEIVE_SYNC_REQUEST, 0, 0, 0, 2, __params0);
__req0.syncChannel = &__Controller_turn1__Motor1_turn;
addRequestToList(&__list, &__req0);
__params1[0] = &speed;
__params1[1] = &factor;
__params1[2] = &flagA;
__params1[3] = &flagB;
makeNewRequest(&__req1, 1696, RECEIVE_SYNC_REQUEST, 0, 0, 0, 4, __params1);
makeNewRequest(&__req1, 2814, RECEIVE_SYNC_REQUEST, 0, 0, 0, 4, __params1);
__req1.syncChannel = &__Controller_modify_motor1__Motor1_modify_motor;
addRequestToList(&__list, &__req1);
__params2[0] = &speed;
__params2[1] = &flagA;
makeNewRequest(&__req2, 1695, RECEIVE_SYNC_REQUEST, 0, 0, 0, 2, __params2);
makeNewRequest(&__req2, 2813, RECEIVE_SYNC_REQUEST, 0, 0, 0, 2, __params2);
__req2.syncChannel = &__Controller_run_motor1__Motor1_run_motor;
addRequestToList(&__list, &__req2);
if (nbOfRequests(&__list) == 0) {
......
......@@ -90,7 +90,6 @@ void *mainFunc__Motor2(void *arg){
switch(__currentState) {
case STATE__START__STATE:
traceStateEntering(__myname, "__StartState");
waitFor((5)*1000000, (5)*1000000);
Motor2__initt(port);
__currentState = STATE__WaitingForMotorCommand;
break;
......@@ -99,19 +98,19 @@ void *mainFunc__Motor2(void *arg){
traceStateEntering(__myname, "WaitingForMotorCommand");
__params0[0] = &speed;
__params0[1] = &flagA;
makeNewRequest(&__req0, 1664, RECEIVE_SYNC_REQUEST, 0, 0, 0, 2, __params0);
makeNewRequest(&__req0, 2782, RECEIVE_SYNC_REQUEST, 0, 0, 0, 2, __params0);
__req0.syncChannel = &__Controller_run_motor2__Motor2_run_motor;
addRequestToList(&__list, &__req0);
__params1[0] = &speed;
__params1[1] = &factor;
__params1[2] = &flagA;
__params1[3] = &flagB;
makeNewRequest(&__req1, 1665, RECEIVE_SYNC_REQUEST, 0, 0, 0, 4, __params1);
makeNewRequest(&__req1, 2783, RECEIVE_SYNC_REQUEST, 0, 0, 0, 4, __params1);
__req1.syncChannel = &__Controller_modify_motor2__Motor2_modify_motor;
addRequestToList(&__list, &__req1);
__params2[0] = &flag;
__params2[1] = &deg;
makeNewRequest(&__req2, 1663, RECEIVE_SYNC_REQUEST, 0, 0, 0, 2, __params2);
makeNewRequest(&__req2, 2781, RECEIVE_SYNC_REQUEST, 0, 0, 0, 2, __params2);
__req2.syncChannel = &__Controller_turn2__Motor2_turn;
addRequestToList(&__list, &__req2);
if (nbOfRequests(&__list) == 0) {
......
......@@ -56,7 +56,7 @@ void *mainFunc__Sonar(void *arg){
case STATE__WAIT_FOR_READY:
traceStateEntering(__myname, "WAIT_FOR_READY");
makeNewRequest(&__req0, 1582, RECEIVE_SYNC_REQUEST, 0, 0, 0, 0, __params0);
makeNewRequest(&__req0, 2690, RECEIVE_SYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.syncChannel = &__Sonar_ready_to_receive__Controller_ready_to_receive_dist;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
......@@ -64,7 +64,7 @@ void *mainFunc__Sonar(void *arg){
distance = Sonar__checkDistance();
traceVariableModification("Sonar", "distance", distance,0);
__params0[0] = &distance;
makeNewRequest(&__req0, 1583, SEND_SYNC_REQUEST, 0, 0, 0, 1, __params0);
makeNewRequest(&__req0, 2691, SEND_SYNC_REQUEST, 0, 0, 0, 1, __params0);
__req0.syncChannel = &__Sonar_sendDistance__Controller_receiveDistance;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
......
......@@ -82,9 +82,8 @@ static bool _check_pressed( uint8_t sn )
}
int checkContact(){
sleep(1);
if ( ev3_search_sensor( LEGO_EV3_TOUCH, &sn_touch, 0 )) {
printf("Press:\n");
sleep(5);
if ( _check_pressed( sn_touch )) {
return 1;
}
......@@ -107,20 +106,20 @@ void init2(int port) {
int set_val(int val, int flag, int port){
if (port==65){
sn=sn1;
if (flag) {
set_tacho_speed_sp( sn, val * 2 / 3 );
} else {
set_tacho_speed_sp( sn, -val * 2/3 );
}
sn=sn1;
if (flag) {
set_tacho_speed_sp( sn, val * 2 / 3 );
} else {
set_tacho_speed_sp( sn, -val * 2/3 );
}
}
else {
sn=sn2;
if (flag) {
set_tacho_speed_sp( sn, val * 2 / 3 );
} else {
set_tacho_speed_sp( sn, -val * 2/3 );
}
sn=sn2;
if (flag) {
set_tacho_speed_sp( sn, val * 2 / 3 );
} else {
set_tacho_speed_sp( sn, -val * 2/3 );
}
}
set_tacho_command_inx( sn, TACHO_RUN_FOREVER);
return val;
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment