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); }
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); }
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(); } }
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(); } }