Esempio n. 1
0
bool VCWaitReady(Command_t * command, int msecond)
{
	int ret_val, time_wait;
	reset_time_out();
	
	time_wait = 0;
	while( time_wait <= msecond)
	{
		ret_val = test_version(command);
		if(ret_val == 0)
		{
			return(1);
		}
		time_wait = get_time_wait();
	}
	return (0);
}
Esempio n. 2
0
int VCSetDACVolume(Command_t * command, cmd_dac_gain_id dac_gain_id)
{
	int ret_val, mem_info;

	reset_time_out();
	mem_info = dac_gain_id;
	command->data[0] = 0;
	command->data[1] = 0;
	command->data[2] = 1;
	command->data[3] = mkword(0x34, mem_info);
	ret_val = send_cmd(command, APP_ID_CTRL, CMD_SET(CONTROL_APP_I2C_TUNNEL_DATA), 4);
	if (ret_val<0)
	{
		return ret_val; /* err code*/
	}
	command->data[0] = 0;
	ret_val = send_cmd(command, APP_ID_CTRL, CONTROL_APP_I2C_TUNNEL_APPLY, 1);
	if (ret_val<0)
	{
		return ret_val; /* err code*/
	}

	mem_info |= 0x100;
	command->data[0] = 0;
	command->data[1] = 0;
	command->data[2] = 1;
	command->data[3] = mkword(0x35, mem_info);
	ret_val = send_cmd(command, APP_ID_CTRL, CMD_SET(CONTROL_APP_I2C_TUNNEL_DATA), 4);
	if (ret_val<0)
	{
		return ret_val; /* err code*/
	}
	command->data[0] = 0;
	ret_val = send_cmd(command, APP_ID_CTRL, CONTROL_APP_I2C_TUNNEL_APPLY, 1);
	if (ret_val<0)
	{
		return ret_val; /* err code*/
	}
	return(0);
}
Esempio n. 3
0
void Pince::trigger(int transition)
{
 // add things here for MAE
 //
 //
 //
     if (transition == T_BAS|| transition == RANGE || transition == TAPE || transition == T_ACTIF_FEU || transition == T_ACTIF_TORCHE || transition == POSE)
    {
         Serial.print("new trigger to be ");
         Serial.println(transition);
        trigger_to_be = transition;
    }


  int old_state;
    old_state = state;
   switch(state)
    {
        case RANGE_DEPART :
           if (transition == TAPE)
           {
            state = TAPE_VERTICAL;
           }
           else if (transition == T_BAS)
           {
            state = INTERMEDIAIRE_SORTIE;
           }
           break;
        case TAPE_VERTICAL :
            if (transition == RANGE)
            {
                state = RANGE_DEPART;
            }
            else if (transition == T_BAS)
            {
                state = INTERMEDIAIRE_SORTIE;
            }
            break;
        case INTERMEDIAIRE_SORTIE :
            if (transition == TAPE)
                {
                    state = TAPE_VERTICAL;
                }
            else if (transition == T_BAS)
                {
                    state = HORIZ_VERT;
                }
            else if (transition == RANGE)
                {
                    state = RANGE_DEPART;
                }
            break;
        case HORIZ_VERT :
            if (transition == T_ACTIF_FEU || transition == T_ACTIF_TORCHE)
                {
                    state = NOMINAL_VIDE;
                }
            break;
        case NOMINAL_VIDE : 
            if (transition == T_ACTIF_FEU)
            {
                state = ACTIF_FEU;
            }
            else if (transition == T_ACTIF_TORCHE)
            {
                state = ACTIF_TORCHE;
            
            }
            break;
            
        case ACTIF_TORCHE :
            if (transition == T_IR)
            {
                state = PRISE_TORCHE;
            }
            break;

        case PRISE_TORCHE : 
            if (transition == POSE)
            {
                state = NOMINAL_VIDE;
            }
            break;
        case ACTIF_FEU :
            if (transition == T_IR)
            {
                state = PRISE_FEU;
            }
            break;

        case PRISE_FEU:
            if (transition == TIME_OUT)
            {
                state = MONTE_COOL;
            }
            break;
        case MONTE_COOL:
            if (transition == TIME_OUT || transition == T_BUMP_HAUT)
            {
                state = MONTE_COOL2;
            }
            break;
        case MONTE_COOL2 :
            if (transition == COOL_OK)
            {
                state = WAIT_COOL_OK;
            }
            else if (transition == COOL_NOT_OK)
            {
                state = RETOURNE_COOL_N;
            }
            break;
        case WAIT_COOL_OK :
            if (transition == POSE)
                {
                   state = HORIZ_VERT;
                }
            break;
        case RETOURNE_COOL_N :
            if (transition == TIME_OUT)
            {
                state = DESCEND_COOL_N;
            }
            break;
        case DESCEND_COOL_N :
            if (transition == POSE)
                {
                    state = POSE_COOL_N;
                }
            break;
        case POSE_COOL_N :
            if (transition == TIME_OUT)
            {
                state = INT1_COOL_N;
            }
            break;
        case INT1_COOL_N :
            if (transition == TIME_OUT)
            {
                state = INT2_COOL_N;
            }
            break;
        case INT2_COOL_N :
            if (transition == TIME_OUT)
            {
                state = INT3_COOL_N;
            }
            break;
        case INT3_COOL_N :
            if (transition == TIME_OUT)
            {
                state = HORIZ_VERT;
            }
            break;
        case INT_RANGE :
            if (transition == T_BUMP_HAUT)
            {
                state = INT2_RANGE; 
            }
            break;
        case INT2_RANGE :
            if (transition == RANGE || transition == TAPE)
            {
                state = INTERMEDIAIRE_SORTIE; 
            }
            break;
    }
   if (state >= 10 && (transition == RANGE || transition == TAPE))
   {
    state = INT_RANGE;
   }
   if (old_state != state)
    {
        Serial.print("new state: ");
        Serial.println(state);

        reset_time_out();
        in_state_func();
    }
}
Esempio n. 4
0
void Bras::trigger(int transition)

{
 // add things here for MAE
 //
 //
 //
     if (transition == T_RANGE|| transition == T_ACTIF_NOMINAL )
    {
         Serial.print("new trigger to be ");
         Serial.println(transition);
        trigger_to_be = transition;
    }


  int old_state;
    old_state = state;
   switch(state)
    {
        
        case RANGE_DEPART :
           if (transition == T_ACTIF_NOMINAL)
           {
            state = INT2_RANGE;
           }
           break;
        case INT_RANGE :
            if (transition == T_BUMP_HAUT)
           {
            state = INT2_RANGE;
           }
            break;
        case INT2_RANGE :
            if (transition == T_RANGE)
           {
            state = RANGE_DEPART;
           }
            else if (transition == T_ACTIF_NOMINAL || transition == TIME_OUT)
            {
                state = GO_ATTENTE; 
            }
            break;

        case GO_ATTENTE:
            if (transition == T_ASC_PRESQUE_ARRIVE)
            {
                state = ATTENTE_ACTIF;
            }   
            break;
        case ATTENTE_ACTIF :
            if (transition == T_MON_IR && mon_ir_actif)
           {
            state = DESCENTE_LAT;
           }
            else if (transition == T_CALL_FOR_HELP)
            {
             state = PRISE_COPAIN;
            }
            else if (transition == T_PRISE_VERT)
            {
             state = SEND_MINE;
            }
            break;

        case DESCENTE_LAT :
            if (transition == T_ASC_PRESQUE_ARRIVE)
           {
            state = DESCENTE_POMPE_LAT;
           }
            break;

        case DESCENTE_POMPE_LAT :
            if (transition == T_ASC_PRESQUE_ARRIVE) // ou pression ? 
           {
            state = PRISE_LAT;
           }
            break;

        case PRISE_LAT :
             if (transition == T_COUL_OK) // ou pression ? 
           {
            state = MONTE;
           }
             else if (transition == T_COUL_NOT_OK)
           {
            state = MONTE_ECH;
           }
            break;
        case MONTE_VERT :
            if (transition == TIME_OUT) // ou pression ? 
           {
            state = MONTE;
           }
            break;
 
        case MONTE :
            if (transition == T_BUMP_HAUT) // ou pression ? 
           {
            state = RANGE_PRISE;
           }
            break;
        case RANGE_PRISE :
           if (transition == TIME_OUT) // ou pression ? 
           {
            state = LACHE;
           }
           break;
        
        case LACHE :
            if (transition == TIME_OUT) // ou pression ? 
           {
            state = INT_RANGE;
           }
            break;
        case MONTE_ECH :
            if (transition == T_ASC_PRESQUE_ARRIVE) // ou pression ? 
           {
            state = RETOURNE_ECH;
           }
            break;
        case RETOURNE_ECH :
            if (transition == T_PRISE_COPAIN) // ou pression ? 
           {
            state = REPLACE_APRES_ECH;
           }
            break;
        case REPLACE_APRES_ECH :
            if (transition == TIME_OUT) // ou pression ? 
           {
            state = ATTENTE_ACTIF; //si faut rebumper metttre INT_RANGE
           }
            break;

        case SEND_MINE :
            if (transition == T_ASC_PRESQUE_ARRIVE) 
           {
            state = SENDMASTER_PRET; 
           }
            break;

        case SENDMASTER_PRET :
            if (transition == T_CAPT_PRESSION_ON) // peut etre declenchee par le master 
           {
            state = PRISE_VERT; 
           }
            break;
        
        case PRISE_VERT :
            if (transition == T_COUL_OK_MASTER) // peut etre declenchee par le master 
           {
            state = MONTE_VERT; 
           }
            else if (transition == T_COUL_NOT_OK_MASTER)
            {
            state = MONTE_ECH_VERT;
            }
            break;

         case MONTE_ECH_VERT :
            if (transition == T_ASC_PRESQUE_ARRIVE) // peut etre declenchee par le master 
           {
            state = RETOURNE_ECH; 
           }
            break;
     
        case PRISE_COPAIN :
            if (transition == T_ASC_ARRIVE)
             {
                prise_copain();
                state = MONTE; 
             }
            break;

       
    }
if (state >= 10 && (transition == T_RANGE))
   {
    state = INT_RANGE;
   }
   if (old_state != state)
    {
        Serial.print(" BRAS");
        Serial.print (cote);
        Serial.print(" -> new state: ");
        Serial.println(state);
        Serial.print("after transition ");
        Serial.println(transition);

        reset_time_out();
        in_state_func();
    }
}