de.lazyzero.kkMulticopterFlashTool.gui.widgets.FirmwareSettings.KKQuadSettings.java Source code

Java tutorial

Introduction

Here is the source code for de.lazyzero.kkMulticopterFlashTool.gui.widgets.FirmwareSettings.KKQuadSettings.java

Source

/**
 * KKMulticopterFlashTool, a avrdude GUI for flashing KK boards and other
 *   equipment.
 *   Copyright (C) 2011 Christian Moll
 *
 *   This program is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *   (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package de.lazyzero.kkMulticopterFlashTool.gui.widgets.FirmwareSettings;

import static lu.tudor.santec.i18n.Translatrix._;

import java.util.LinkedHashMap;
import java.util.logging.Logger;

import javax.swing.JLabel;
import javax.swing.JPanel;

import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;

import de.lazyzero.kkMulticopterFlashTool.KKMulticopterFlashTool;
import de.lazyzero.kkMulticopterFlashTool.gui.widgets.EEpromFirmwareSettings;
import de.lazyzero.kkMulticopterFlashTool.gui.widgets.EEpromItemPanel;
import de.lazyzero.kkMulticopterFlashTool.utils.EEprom.EEpromBooleanItem;

public class KKQuadSettings extends EEpromFirmwareSettings {

    Logger logger = KKMulticopterFlashTool.getLogger();
    private EEpromBooleanItem rollGyro;
    private EEpromBooleanItem nickGyro;
    private EEpromBooleanItem yawGyro;
    private EEpromBooleanItem potDirection;

    public KKQuadSettings(KKMulticopterFlashTool parent) {
        super(parent);
    }

    @Override
    public String toString() {
        return "KapteinKuk Quadrocopter \u22644.7";
    }

    @Override
    protected JPanel addEEpromDataItems() {
        readEEprom(this);

        JPanel settingsPanel = new JPanel();
        LinkedHashMap<Short, String> dataMapping = new LinkedHashMap<Short, String>();
        dataMapping.put((short) 127, "true");
        dataMapping.put((short) 255, "false");

        wait4EEprom();

        // create the CellContraints
        CellConstraints cc = new CellConstraints();

        // create the Layout for Panel this
        String panelColumns = "fill:pref:grow,3dlu,fill:pref:grow,3dlu,fill:pref:grow";
        String panelRows = "pref,3dlu,pref";
        FormLayout panelLayout = new FormLayout(panelColumns, panelRows);
        settingsPanel.setLayout(panelLayout);

        if (eeprom != null) {
            rollGyro = new EEpromBooleanItem(eeprom, "Roll gyro", 0, 1, EEpromBooleanItem.BOOLEAN, dataMapping,
                    "inverted");
            nickGyro = new EEpromBooleanItem(eeprom, "Nick gyro", 1, 1, EEpromBooleanItem.BOOLEAN, dataMapping,
                    "inverted");
            yawGyro = new EEpromBooleanItem(eeprom, "Yaw gyro", 2, 1, EEpromBooleanItem.BOOLEAN, dataMapping,
                    "inverted");

            potDirection = new EEpromBooleanItem(eeprom, "Pot direction", 3, 1, EEpromBooleanItem.BOOLEAN,
                    dataMapping, "inverted");

            settingsPanel.add(new EEpromItemPanel(rollGyro), cc.xy(1, 1));
            settingsPanel.add(new EEpromItemPanel(nickGyro), cc.xy(3, 1));
            settingsPanel.add(new EEpromItemPanel(yawGyro), cc.xy(5, 1));
            settingsPanel.add(new EEpromItemPanel(potDirection), cc.xy(1, 3));
        } else {
            settingsPanel.add(new JLabel(_("EEPromSettingsPanel.failed2read")), cc.xyw(1, 1, 5));
        }

        return settingsPanel;
    }

    @Override
    public void flashSettings() {
        if (rollGyro != null && nickGyro != null && yawGyro != null) {
            logger.info("Write back settings to eeprom object.");
            eeprom = rollGyro.updateEEprom(eeprom);
            eeprom = nickGyro.updateEEprom(eeprom);
            eeprom = yawGyro.updateEEprom(eeprom);
            eeprom = potDirection.updateEEprom(eeprom);

            writeEEprom(this);
        }
    }

}