/** Upload the parameters of the current category to the AeroQuad */ private void uploadSettings() { AQSerial mAQSerial = ((MainApplication) getActivity().getApplication()).getAQSerial(); String[] values; switch (UiEnum.fromValue(CurrentUiR)) { case RateMode: values = new String[6]; values[0] = GetParameter("pid_ratemode_rpv_preference"); values[1] = GetParameter("pid_ratemode_riv_preference"); values[2] = GetParameter("pid_ratemode_rdv_preference"); values[3] = GetParameter("pid_ratemode_ppv_preference"); values[4] = GetParameter("pid_ratemode_piv_preference"); values[5] = GetParameter("pid_ratemode_pdv_preference"); mAQSerial.writeRateMode(values); // TODO: Check if upload was successful break; // TODO : The others case AltitudeMode: values = new String[13]; values[0] = GetParameter("pid_altimode_rapv_preference"); values[1] = GetParameter("pid_altimode_raiv_preference"); values[2] = GetParameter("pid_altimode_radv_preference"); values[3] = GetParameter("pid_altimode_papv_preference"); values[4] = GetParameter("pid_altimode_paiv_preference"); values[5] = GetParameter("pid_altimode_padv_preference"); values[6] = GetParameter("pid_altimode_rgpv_preference"); values[7] = GetParameter("pid_altimode_rgiv_preference"); values[8] = GetParameter("pid_altimode_rgdv_preference"); values[9] = GetParameter("pid_altimode_pgpv_preference"); values[10] = GetParameter("pid_altimode_pgiv_preference"); values[11] = GetParameter("pid_altimode_pgdv_preference"); values[12] = GetParameter("pid_altimode_windupguard_preference"); mAQSerial.writeAltitudeMode(values); break; case YawConfiguration: values = new String[7]; values[0] = GetParameter("pid_yawconfig_ypv_preference"); values[1] = GetParameter("pid_yawconfig_yiv_preference"); values[2] = GetParameter("pid_yawconfig_ydv_preference"); values[3] = GetParameter("pid_yawconfig_hhpv_preference"); values[4] = GetParameter("pid_yawconfig_hhiv_preference"); values[5] = GetParameter("pid_yawconfig_hhdv_preference"); values[6] = GetParameter("pid_yawconfig_hhc_preference"); mAQSerial.writeYawConfig(values); case AltitudeHold: values = new String[12]; values[0] = GetParameter("pid_altihold_apv_preference"); values[1] = GetParameter("pid_altihold_aiv_preference"); values[2] = GetParameter("pid_altihold_adv_preference"); values[3] = GetParameter("pid_altihold_awindupguard_preference"); values[4] = GetParameter("pid_altihold_tminav_preference"); values[5] = GetParameter("pid_altihold_tbv_preference"); values[6] = GetParameter("pid_altihold_tpv_preference"); values[7] = GetParameter("pid_altihold_tmaxav_preference"); values[8] = GetParameter("pid_altihold_asf_preference"); values[9] = GetParameter("pid_altihold_zdpv_preference"); values[10] = GetParameter("pid_altihold_zdiv_preference"); values[11] = GetParameter("pid_altihold_zddv_preference"); mAQSerial.writeAltitudeHold(values); break; case MiscConfiguration: values = new String[2]; values[0] = GetParameter("pid_miscconfig_vrv_preference"); values[1] = GetParameter("pid_miscconfig_minatv_preference"); mAQSerial.writeMiscConfig(values); break; case TransmitterSmoothing: values = new String[9]; values[0] = GetParameter("pid_transsmth_tfv_preference"); values[1] = GetParameter("pid_transsmth_rsv_preference"); values[2] = GetParameter("pid_transsmth_psv_preference"); values[3] = GetParameter("pid_transsmth_ysv_preference"); values[4] = GetParameter("pid_transsmth_tsv_preference"); values[5] = GetParameter("pid_transsmth_msv_preference"); values[6] = GetParameter("pid_transsmth_asv_one_preference"); values[7] = GetParameter("pid_transsmth_asv_two_preference"); values[8] = GetParameter("pid_transsmth_asv_three_preference"); mAQSerial.writeTransSmooth(values); break; case BatteryMonitor: values = new String[3]; values[0] = GetParameter("pid_battmon_avv_preference"); values[1] = GetParameter("pid_battmon_ttv_preference"); values[2] = GetParameter("pid_battmon_gdtv_preference"); mAQSerial.writeBattMon(values); break; case CameraStabilization: values = new String[13]; values[0] = GetParameter("pid_camstab_mv_preference"); values[1] = GetParameter("pid_camstab_pcv_preference"); values[2] = GetParameter("pid_camstab_rcv_preference"); values[3] = GetParameter("pid_camstab_ycv_preference"); values[4] = GetParameter("pid_camstab_psav_preference"); values[5] = GetParameter("pid_camstab_rsav_preference"); values[6] = GetParameter("pid_camstab_ysav_preference"); values[7] = GetParameter("pid_camstab_mininpsv_preference"); values[8] = GetParameter("pid_camstab_mininrsv_preference"); values[9] = GetParameter("pid_camstab_mininysv_preference"); values[10] = GetParameter("pid_camstab_maxpsv_preference"); values[11] = GetParameter("pid_camstab_maxrsv_preference"); values[12] = GetParameter("pid_camstab_maxysv_preference"); mAQSerial.writeCameraStab(values); break; default: break; } }