/* * (C) Copyright 2015 by fr3ts0n <erwin.scheuch-heilig@gmx.at> * * 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 2 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, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA */ package com.fr3ts0n.ecu.gui.application; /** * Fault code propertiy panel * * @author erwin */ public class VagCodeStatPanel extends javax.swing.JPanel { public static final long serialVersionUID = 1L; /** DFC symptoms to display */ static final String[] Symptoms = { "No display", "Value above MAX", "Value below MIN", "Mechanical fault", "No signal / no communication", "Base adjustment / adaption", "Shortcut to battery", "Shortcut to ground", "Signal plausibility", "Open load / Shortcut to ground", "Open load / Shortcut to battery", "Open load", "Electric fault ", "Please read fault codes", "Defect", "Currently not checkable", }; /** Creates new form VagCodeStatPanel */ public VagCodeStatPanel() { initComponents(); } /** * This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; jPanel1 = new javax.swing.JPanel(); panStatus = new javax.swing.JPanel(); panMilStatus = new javax.swing.JPanel(); cbMilStatus = new javax.swing.JCheckBox(); panTestStatus = new javax.swing.JPanel(); cbTestComplete = new javax.swing.JCheckBox(); panFaultStatus = new javax.swing.JPanel(); cbSporadic = new javax.swing.JCheckBox(); cbShortTerm = new javax.swing.JCheckBox(); cbStatic = new javax.swing.JCheckBox(); panSymptom = new javax.swing.JPanel(); lblSymptom = new javax.swing.JLabel(); setFont(new java.awt.Font("Dialog", 0, 10)); // NOI18N setLayout(new java.awt.BorderLayout()); jPanel1.setLayout(new java.awt.GridBagLayout()); panStatus.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Status", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 0, 10))); // NOI18N panStatus.setLayout(new java.awt.GridBagLayout()); panMilStatus.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "MIL status", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 0, 10))); // NOI18N panMilStatus.setEnabled(false); panMilStatus.setLayout(new java.awt.BorderLayout()); cbMilStatus.setFont(new java.awt.Font("Dialog", 0, 10)); // NOI18N cbMilStatus.setText("MIL on"); cbMilStatus.setEnabled(false); panMilStatus.add(cbMilStatus, java.awt.BorderLayout.CENTER); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; panStatus.add(panMilStatus, gridBagConstraints); panTestStatus.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "DTC com.fr3ts0n.test status", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 0, 10))); // NOI18N panTestStatus.setEnabled(false); panTestStatus.setLayout(new java.awt.BorderLayout()); cbTestComplete.setFont(new java.awt.Font("Dialog", 0, 10)); // NOI18N cbTestComplete.setText("DTC com.fr3ts0n.test complete"); cbTestComplete.setEnabled(false); panTestStatus.add(cbTestComplete, java.awt.BorderLayout.CENTER); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; panStatus.add(panTestStatus, gridBagConstraints); panFaultStatus.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Fault status", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 0, 10))); // NOI18N panFaultStatus.setEnabled(false); panFaultStatus.setLayout(new java.awt.GridLayout(0, 3)); cbSporadic.setFont(new java.awt.Font("Dialog", 0, 10)); cbSporadic.setText("sporadic"); cbSporadic.setEnabled(false); panFaultStatus.add(cbSporadic); cbShortTerm.setFont(new java.awt.Font("Dialog", 0, 10)); cbShortTerm.setText("short term"); cbShortTerm.setEnabled(false); panFaultStatus.add(cbShortTerm); cbStatic.setFont(new java.awt.Font("Dialog", 0, 10)); cbStatic.setText("static"); cbStatic.setEnabled(false); panFaultStatus.add(cbStatic); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; panStatus.add(panFaultStatus, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; gridBagConstraints.weightx = 1.0; jPanel1.add(panStatus, gridBagConstraints); panSymptom.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Symptom", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 0, 10))); // NOI18N panSymptom.setLayout(new java.awt.BorderLayout()); lblSymptom.setText("Symptom"); lblSymptom.setEnabled(false); panSymptom.add(lblSymptom, java.awt.BorderLayout.CENTER); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; jPanel1.add(panSymptom, gridBagConstraints); add(jPanel1, java.awt.BorderLayout.CENTER); }// </editor-fold>//GEN-END:initComponents /** * set all status flags from status integer * * @param newStatus DFC status */ public void setStatusFlags(int newStatus) { int symptom = newStatus & 0x0F; boolean testComplete = (newStatus & 0x10) == 0x10; boolean sporadic = (newStatus & 0x60) == 0x20; boolean shortTerm = (newStatus & 0x60) == 0x40; boolean staticFault = (newStatus & 0x60) == 0x60; boolean milStatus = (newStatus & 0x80) == 0x80; lblSymptom.setText(Symptoms[symptom]); cbTestComplete.setSelected(testComplete); cbSporadic.setSelected(sporadic); cbShortTerm.setSelected(shortTerm); cbStatic.setSelected(staticFault); cbMilStatus.setSelected(milStatus); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JCheckBox cbMilStatus; private javax.swing.JCheckBox cbShortTerm; private javax.swing.JCheckBox cbSporadic; private javax.swing.JCheckBox cbStatic; private javax.swing.JCheckBox cbTestComplete; private javax.swing.JPanel jPanel1; private javax.swing.JLabel lblSymptom; private javax.swing.JPanel panFaultStatus; private javax.swing.JPanel panMilStatus; private javax.swing.JPanel panStatus; private javax.swing.JPanel panSymptom; private javax.swing.JPanel panTestStatus; // End of variables declaration//GEN-END:variables }