@Override public void headfreeModeValueDidChange(boolean isHeadfree) { if (settings.isHeadFreeMode()) { aux1Channel.setValue(1); } else { aux1Channel.setValue(-1); } }
@Override public void leftHandedValueDidChange(boolean isLeftHanded) { this.isLeftHanded = isLeftHanded; setJoysticks(); Log.e(TAG, "THRO:" + throttleChannel.getValue()); getRudderAndThrottleJoystick().setYValue(throttleChannel.getValue()); }
private void initChannels() { aileronChannel = settings.getChannel(Channel.CHANNEL_NAME_AILERON); elevatorChannel = settings.getChannel(Channel.CHANNEL_NAME_ELEVATOR); rudderChannel = settings.getChannel(Channel.CHANNEL_NAME_RUDDER); throttleChannel = settings.getChannel(Channel.CHANNEL_NAME_THROTTLE); aux1Channel = settings.getChannel(Channel.CHANNEL_NAME_AUX1); aux2Channel = settings.getChannel(Channel.CHANNEL_NAME_AUX2); aux3Channel = settings.getChannel(Channel.CHANNEL_NAME_AUX3); aux4Channel = settings.getChannel(Channel.CHANNEL_NAME_AUX4); aileronChannel.setValue(0.0f); elevatorChannel.setValue(0.0f); rudderChannel.setValue(0.0f); throttleChannel.setValue(-1); }
@Override public void onDeviceOrientationChanged( float[] orientation, float magneticHeading, int magnetoAccuracy) { if (rollAndPitchJoystickPressed == false) { pitchBase = orientation[PITCH]; rollBase = orientation[ROLL]; aileronChannel.setValue(0.0f); elevatorChannel.setValue(0.0f); Log.d(TAG, "before pressed ROLL:" + rollBase + ",PITCH:" + pitchBase); } else { float x = (orientation[PITCH] - pitchBase); float y = (orientation[ROLL] - rollBase); if (isAccMode) { Log.d(TAG, "ROLL:" + (-x) + ",PITCH:" + y); if (Math.abs(x) > ACCELERO_TRESHOLD || Math.abs(y) > ACCELERO_TRESHOLD) { if (settings.isBeginnerMode()) { aileronChannel.setValue(-x * BEGINNER_AILERON_CHANNEL_RATIO); elevatorChannel.setValue(y * BEGINNER_ELEVATOR_CHANNEL_RATIO); } else { aileronChannel.setValue(-x); elevatorChannel.setValue(y); } } } } }
public HudViewController(Activity context, HudViewControllerDelegate delegate) { this.delegate = delegate; this.context = context; Transmitter.sharedTransmitter().setBleConnectionManager(new BleConnectinManager(context)); settings = ((HexMiniApplication) context.getApplication()).getAppSettings(); joypadOpacity = settings.getInterfaceOpacity(); isLeftHanded = settings.isLeftHanded(); this.context = context; gestureDetector = new EnhancedGestureDetector(context, this); joysticks = new JoystickBase[2]; glView = new GLSurfaceView(context); glView.setEGLContextClientVersion(2); LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); // LinearLayout hud = (LinearLayout)inflater.inflate(R.layout.hud, null); // LayoutParams layoutParams = new LayoutParams(LayoutParams.FILL_PARENT, // LayoutParams.FILL_PARENT); // hud.addView(glView, layoutParams); // glView.setBackgroundResource(R.drawable.settings_bg); context.setContentView(glView); renderer = new UIRenderer(context, null); initGLSurfaceView(); Resources res = context.getResources(); Image topBarBg = new Image(res, R.drawable.bar_top, Align.TOP_CENTER); topBarBg.setSizeParams(SizeParams.FILL_SCREEN, SizeParams.NONE); // Width水平伸缩至全屏,height保持不边 topBarBg.setAlphaEnabled(false); bottomBarBg = new Image(res, R.drawable.bar_bottom, Align.BOTTOM_CENTER); bottomBarBg.setSizeParams(SizeParams.FILL_SCREEN, SizeParams.NONE); bottomBarBg.setAlphaEnabled(false); Image middleBg = new Image(res, R.drawable.bg_tile, Align.CENTER); middleBg.setAlpha(1f); middleBg.setVisible(false); middleBg.setSizeParams( SizeParams.FILL_SCREEN, SizeParams.FILL_SCREEN); // Width水平伸缩至全屏,height保持不边 middleBg.setAlphaEnabled(true); Image bottomLeftSkrew = new Image(res, R.drawable.screw, Align.BOTTOM_LEFT); Image bottomRightSkrew = new Image(res, R.drawable.screw, Align.BOTTOM_RIGHT); Image logo = new Image(res, R.drawable.logo, Align.BOTTOM_LEFT); logo.setMargin( 0, 0, (int) res.getDimension(R.dimen.hud_logo_margin_bottom), (int) res.getDimension(R.dimen.hud_logo_margin_left)); Image statusBar = new Image(res, R.drawable.status_bar, Align.TOP_LEFT); statusBar.setMargin( (int) res.getDimension(R.dimen.hud_status_bar_margin_top), 0, 0, (int) res.getDimension(R.dimen.hud_status_bar_margin_left)); settingsBtn = new Button( res, R.drawable.btn_settings_normal, R.drawable.btn_settings_hl, Align.TOP_RIGHT); settingsBtn.setMargin( (int) res.getDimension(R.dimen.hud_btn_settings_margin_top), (int) res.getDimension(R.dimen.hud_btn_settings_margin_right), 0, 0); Button helpBtn = new Button(res, R.drawable.btn_help_normal, R.drawable.btn_help_hl, Align.TOP_RIGHT); helpBtn.setMargin( (int) res.getDimension(R.dimen.hud_btn_settings_margin_top), (int) res.getDimension(R.dimen.hud_btn_settings_margin_right) * 4, 0, 0); takeOffBtn = new Button( res, R.drawable.btn_take_off_normal, R.drawable.btn_take_off_hl, Align.BOTTOM_CENTER); stopBtn = new Button(res, R.drawable.btn_stop_normal, R.drawable.btn_stop_hl, Align.TOP_CENTER); String state = context.getResources().getString(R.string.settings_item_connection_state_not_conneceted); stateTextView = new Text(context, state, Align.TOP_LEFT); stateTextView.setMargin( (int) res.getDimension(R.dimen.hud_state_text_margin_top), 0, 0, (int) res.getDimension(R.dimen.hud_state_text_margin_left)); stateTextView.setTextColor(Color.WHITE); stateTextView.setTypeface(FontUtils.TYPEFACE.Helvetica(context)); stateTextView.setTextSize(res.getDimensionPixelSize(R.dimen.hud_state_text_size)); altHoldToggleBtn = new ToggleButton( res, R.drawable.alt_hold_off, R.drawable.alt_hold_off_hl, R.drawable.alt_hold_on, R.drawable.alt_hold_on_hl, R.drawable.alt_hold_on, Align.TOP_LEFT); altHoldToggleBtn.setMargin( res.getDimensionPixelOffset(R.dimen.hud_alt_hold_toggle_btn_margin_top), 0, 0, res.getDimensionPixelOffset(R.dimen.hud_alt_hold_toggle_btn_margin_left)); altHoldToggleBtn.setChecked(settings.isAltHoldMode()); buttons = new Button[5]; buttons[0] = settingsBtn; buttons[1] = takeOffBtn; buttons[2] = stopBtn; buttons[3] = altHoldToggleBtn; buttons[4] = helpBtn; renderer.addSprite(MIDLLE_BG_ID, middleBg); renderer.addSprite(TOP_BAR_ID, topBarBg); renderer.addSprite(BOTTOM_BAR_ID, bottomBarBg); renderer.addSprite(BOTTOM_LEFT_SKREW, bottomLeftSkrew); renderer.addSprite(BOTTOM_RIGHT_SKREW, bottomRightSkrew); renderer.addSprite(LOGO, logo); renderer.addSprite(STATUS_BAR, statusBar); renderer.addSprite(TAKE_OFF_BTN_ID, takeOffBtn); renderer.addSprite(STOP_BTN_ID, stopBtn); renderer.addSprite(SETTINGS_BTN_ID, settingsBtn); renderer.addSprite(ALT_HOLD_TOGGLE_BTN, altHoldToggleBtn); renderer.addSprite(STATE_TEXT_VIEW, stateTextView); renderer.addSprite(HELP_BTN, helpBtn); isAccMode = settings.isAccMode(); deviceOrientationManager = new DeviceOrientationManager(new DeviceSensorManagerWrapper(this.context), this); deviceOrientationManager.onCreate(); initJoystickListeners(); helpBtn.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(HudViewController.this.context, HelpActivity.class); HudViewController.this.context.startActivity(intent); } }); if (isAccMode) { initJoysticks(JoystickType.ACCELERO); } else { initJoysticks(JoystickType.ANALOGUE); } initListeners(); initChannels(); if (settings.isHeadFreeMode()) { aux1Channel.setValue(1); } else { aux1Channel.setValue(-1); } if (settings.isAltHoldMode()) { aux2Channel.setValue(1); } else { aux2Channel.setValue(-1); } if (settings.isBeginnerMode()) { new AlertDialog.Builder(context) .setIcon(android.R.drawable.ic_dialog_alert) .setTitle(R.string.dialog_title_info) .setMessage(R.string.beginner_mode_info) .setPositiveButton( R.string.dialog_btn_ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) {} }) .show(); } }