package ufrcoderadvance;

import javax.swing.JOptionPane;
import com.sun.jna.ptr.ShortByReference;
import java.io.UnsupportedEncodingException;

public class frmLinearReadWrite extends javax.swing.JInternalFrame {

    Global GL = new Global();
    int result = 0;
    static final int RES_LIGHT_OK = 4,
            RES_SOUND_OK = 4,
            ERR_LIGHT = 2,
            ERR_SOUND = 2,
            DL_OK = 0,
            AUTH1A = 96,
            AUTH1B = 97,
            MAX_BYTES = 752;
    final static String ANY_DATA = "You must enter any data !",
            APPROPRIATE_FORMAT = "You must enter the appropriate format !";

    public frmLinearReadWrite() {
        initComponents();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        btnGroup = new javax.swing.ButtonGroup();
        stbFunction = new javax.swing.JPanel();
        lblFunctionError = new javax.swing.JLabel();
        lblFunction_explain = new javax.swing.JLabel();
        lblFunction_code = new javax.swing.JLabel();
        pnlHeader = new javax.swing.JPanel();
        rbAUTH1A = new javax.swing.JRadioButton();
        rbAUTH1B = new javax.swing.JRadioButton();
        lblKeyIndex = new javax.swing.JLabel();
        cboKeyIndex = new javax.swing.JComboBox();
        jLabel1 = new javax.swing.JLabel();
        pgLinearReadWrite = new javax.swing.JTabbedPane();
        lblReadData = new javax.swing.JPanel();
        txtLRLinearAddress = new javax.swing.JTextField();
        txtLRDataLength = new javax.swing.JTextField();
        btnLinearRead = new javax.swing.JButton();
        lblLRReadData = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        txtLinearRead = new javax.swing.JTextArea();
        lblLRLinearAddress = new javax.swing.JLabel();
        lblLRDataLength = new javax.swing.JLabel();
        lblReadBytes = new javax.swing.JLabel();
        txtReadBytes = new javax.swing.JTextField();
        chkAscii = new javax.swing.JCheckBox();
        tabLinearReadAKM12 = new javax.swing.JPanel();
        pgLinearReadAKM12 = new javax.swing.JTabbedPane();
        tabLinearReadAKM1 = new javax.swing.JPanel();
        lblLRReadDataAKM1 = new javax.swing.JLabel();
        chkAsciiAKM1 = new javax.swing.JCheckBox();
        jScrollPane2 = new javax.swing.JScrollPane();
        txtLinearReadAKM1 = new javax.swing.JTextArea();
        lblLRLinearAddressAKM1 = new javax.swing.JLabel();
        txtLRLinearAddressAKM1 = new javax.swing.JTextField();
        lblLRDataLengthAKM1 = new javax.swing.JLabel();
        txtLRDataLengthAKM1 = new javax.swing.JTextField();
        lblReadBytesAKM1 = new javax.swing.JLabel();
        txtReadBytesAKM1 = new javax.swing.JTextField();
        btnLinearReadAKM1 = new javax.swing.JButton();
        tabLinearReadAKM2 = new javax.swing.JPanel();
        lblLRReadDataAKM2 = new javax.swing.JLabel();
        chkAsciiAKM2 = new javax.swing.JCheckBox();
        jScrollPane3 = new javax.swing.JScrollPane();
        txtLinearReadAKM2 = new javax.swing.JTextArea();
        lblLRLinearAddressAKM2 = new javax.swing.JLabel();
        txtLRLinearAddressAKM2 = new javax.swing.JTextField();
        lblLRDataLengthAKM2 = new javax.swing.JLabel();
        txtLRDataLengthAKM2 = new javax.swing.JTextField();
        lblReadBytesAKM2 = new javax.swing.JLabel();
        txtReadBytesAKM2 = new javax.swing.JTextField();
        btnLinearReadAKM2 = new javax.swing.JButton();
        tabLinearReadPK = new javax.swing.JPanel();
        lblLRReadDataPK = new javax.swing.JLabel();
        chkAsciiPK = new javax.swing.JCheckBox();
        lblLRLinearAddressPK = new javax.swing.JLabel();
        txtLRLinearAddressPK = new javax.swing.JTextField();
        lblLRDataLengthPK = new javax.swing.JLabel();
        txtLRDataLengthPK = new javax.swing.JTextField();
        lblReadBytesPK = new javax.swing.JLabel();
        txtReadBytesPK = new javax.swing.JTextField();
        btnLinearReadPK = new javax.swing.JButton();
        jScrollPane4 = new javax.swing.JScrollPane();
        txtLinearReadPK = new javax.swing.JTextArea();
        tabLinearWrite = new javax.swing.JPanel();
        lblWriteData = new javax.swing.JLabel();
        jScrollPane5 = new javax.swing.JScrollPane();
        txtLinearWrite = new javax.swing.JTextArea();
        lblLWLinearAddress = new javax.swing.JLabel();
        txtLWLinearAddress = new javax.swing.JTextField();
        lblLWDataLength = new javax.swing.JLabel();
        txtLWDataLength = new javax.swing.JTextField();
        lblBytesWritten = new javax.swing.JLabel();
        txtBytesWritten = new javax.swing.JTextField();
        btnLinearWrite = new javax.swing.JButton();
        tabLinearWriteAKM12 = new javax.swing.JPanel();
        pgLinearWriteAKM12 = new javax.swing.JTabbedPane();
        tabLinearWriteAKM1 = new javax.swing.JPanel();
        lblWriteDataAKM1 = new javax.swing.JLabel();
        jScrollPane7 = new javax.swing.JScrollPane();
        txtLinearWriteAKM1 = new javax.swing.JTextArea();
        lblLWLinearAddressAKM1 = new javax.swing.JLabel();
        txtLWLinearAddressAKM1 = new javax.swing.JTextField();
        lblLWDataLengthAKM1 = new javax.swing.JLabel();
        txtLWDataLengthAKM1 = new javax.swing.JTextField();
        lblbytesWrittenAKM1 = new javax.swing.JLabel();
        txtBytesWrittenAKM1 = new javax.swing.JTextField();
        btnLinearWriteAKM1 = new javax.swing.JButton();
        tabLinearWriteAKM2 = new javax.swing.JPanel();
        lblWriteDataAKM2 = new javax.swing.JLabel();
        jScrollPane8 = new javax.swing.JScrollPane();
        txtLinearWriteAKM2 = new javax.swing.JTextArea();
        lblLWLinearAddressAKM2 = new javax.swing.JLabel();
        txtLWLinearAddressAKM2 = new javax.swing.JTextField();
        lblLWDataLengthAKM2 = new javax.swing.JLabel();
        txtLWDataLengthAKM2 = new javax.swing.JTextField();
        lblbytesWrittenAKM3 = new javax.swing.JLabel();
        txtBytesWrittenAKM2 = new javax.swing.JTextField();
        btnLinearWriteAKM2 = new javax.swing.JButton();
        tabLinearWritePK = new javax.swing.JPanel();
        lblWriteDataPK = new javax.swing.JLabel();
        jScrollPane6 = new javax.swing.JScrollPane();
        txtLinearWritePK = new javax.swing.JTextArea();
        lblLWLinearAddressPK = new javax.swing.JLabel();
        txtLWLinearAddressPK = new javax.swing.JTextField();
        lblLWDataLengthPK = new javax.swing.JLabel();
        txtLWDataLengthPK = new javax.swing.JTextField();
        lblBytesWrittenPK = new javax.swing.JLabel();
        txtBytesWrittenPK = new javax.swing.JTextField();
        btnLinearWritePK = new javax.swing.JButton();
        jInternalFrame1 = new javax.swing.JInternalFrame();
        stbFunction1 = new javax.swing.JPanel();
        lblFunctionError1 = new javax.swing.JLabel();
        lblFunction_explain1 = new javax.swing.JLabel();
        lblFunction_code1 = new javax.swing.JLabel();
        pnlHeader1 = new javax.swing.JPanel();
        rbAUTH1A1 = new javax.swing.JRadioButton();
        rbAUTH1B1 = new javax.swing.JRadioButton();
        lblKeyIndex1 = new javax.swing.JLabel();
        cboKeyIndex1 = new javax.swing.JComboBox();
        jLabel2 = new javax.swing.JLabel();
        pgLinearReadWrite1 = new javax.swing.JTabbedPane();
        lblReadData1 = new javax.swing.JPanel();
        txtLRLinearAddress1 = new javax.swing.JTextField();
        txtLRDataLength1 = new javax.swing.JTextField();
        btnLinearRead1 = new javax.swing.JButton();
        lblLRReadData1 = new javax.swing.JLabel();
        jScrollPane9 = new javax.swing.JScrollPane();
        txtLinearRead1 = new javax.swing.JTextArea();
        lblLRLinearAddress1 = new javax.swing.JLabel();
        lblLRDataLength1 = new javax.swing.JLabel();
        lblReadBytes1 = new javax.swing.JLabel();
        txtReadBytes1 = new javax.swing.JTextField();
        chkAscii1 = new javax.swing.JCheckBox();
        tabLinearReadAKM13 = new javax.swing.JPanel();
        pgLinearReadAKM13 = new javax.swing.JTabbedPane();
        tabLinearReadAKM3 = new javax.swing.JPanel();
        lblLRReadDataAKM3 = new javax.swing.JLabel();
        chkAsciiAKM3 = new javax.swing.JCheckBox();
        jScrollPane10 = new javax.swing.JScrollPane();
        txtLinearReadAKM3 = new javax.swing.JTextArea();
        lblLRLinearAddressAKM3 = new javax.swing.JLabel();
        txtLRLinearAddressAKM3 = new javax.swing.JTextField();
        lblLRDataLengthAKM3 = new javax.swing.JLabel();
        txtLRDataLengthAKM3 = new javax.swing.JTextField();
        lblReadBytesAKM3 = new javax.swing.JLabel();
        txtReadBytesAKM3 = new javax.swing.JTextField();
        btnLinearReadAKM3 = new javax.swing.JButton();
        tabLinearReadAKM4 = new javax.swing.JPanel();
        lblLRReadDataAKM4 = new javax.swing.JLabel();
        chkAsciiAKM4 = new javax.swing.JCheckBox();
        jScrollPane11 = new javax.swing.JScrollPane();
        txtLinearReadAKM4 = new javax.swing.JTextArea();
        lblLRLinearAddressAKM4 = new javax.swing.JLabel();
        txtLRLinearAddressAKM4 = new javax.swing.JTextField();
        lblLRDataLengthAKM4 = new javax.swing.JLabel();
        txtLRDataLengthAKM4 = new javax.swing.JTextField();
        lblReadBytesAKM4 = new javax.swing.JLabel();
        txtReadBytesAKM4 = new javax.swing.JTextField();
        btnLinearReadAKM4 = new javax.swing.JButton();
        tabLinearReadPK1 = new javax.swing.JPanel();
        lblLRReadDataPK1 = new javax.swing.JLabel();
        jScrollPane12 = new javax.swing.JScrollPane();
        txtLinearReadPK1 = new javax.swing.JTextArea();
        chkAsciiPK1 = new javax.swing.JCheckBox();
        lblLRLinearAddressPK1 = new javax.swing.JLabel();
        txtLRLinearAddressPK1 = new javax.swing.JTextField();
        lblLRDataLengthPK1 = new javax.swing.JLabel();
        txtLRDataLengthPK1 = new javax.swing.JTextField();
        lblReadBytesPK1 = new javax.swing.JLabel();
        txtReadBytesPK1 = new javax.swing.JTextField();
        btnLinearReadPK1 = new javax.swing.JButton();
        tabLinearWrite1 = new javax.swing.JPanel();
        lblWriteData1 = new javax.swing.JLabel();
        jScrollPane13 = new javax.swing.JScrollPane();
        txtLinearWrite1 = new javax.swing.JTextArea();
        lblLWLinearAddress1 = new javax.swing.JLabel();
        txtLWLinearAddress1 = new javax.swing.JTextField();
        lblLWDataLength1 = new javax.swing.JLabel();
        txtLWDataLength1 = new javax.swing.JTextField();
        lblBytesWritten1 = new javax.swing.JLabel();
        txtBytesWritten1 = new javax.swing.JTextField();
        btnLinearWrite1 = new javax.swing.JButton();
        tabLinearWriteAKM13 = new javax.swing.JPanel();
        pgLinearWriteAKM13 = new javax.swing.JTabbedPane();
        tabLinearWriteAKM3 = new javax.swing.JPanel();
        lblWriteDataAKM3 = new javax.swing.JLabel();
        jScrollPane14 = new javax.swing.JScrollPane();
        txtLinearWriteAKM3 = new javax.swing.JTextArea();
        lblLWLinearAddressAKM3 = new javax.swing.JLabel();
        txtLWLinearAddressAKM3 = new javax.swing.JTextField();
        lblLWDataLengthAKM3 = new javax.swing.JLabel();
        txtLWDataLengthAKM3 = new javax.swing.JTextField();
        lblbytesWrittenAKM2 = new javax.swing.JLabel();
        txtBytesWrittenAKM3 = new javax.swing.JTextField();
        btnLinearWriteAKM3 = new javax.swing.JButton();
        tabLinearWriteAKM4 = new javax.swing.JPanel();
        lblWriteDataAKM4 = new javax.swing.JLabel();
        jScrollPane15 = new javax.swing.JScrollPane();
        txtLinearWriteAKM4 = new javax.swing.JTextArea();
        lblLWLinearAddressAKM4 = new javax.swing.JLabel();
        txtLWLinearAddressAKM4 = new javax.swing.JTextField();
        lblLWDataLengthAKM4 = new javax.swing.JLabel();
        txtLWDataLengthAKM4 = new javax.swing.JTextField();
        lbBytesWrittenAKM3 = new javax.swing.JLabel();
        txtBytesWrittenAKM4 = new javax.swing.JTextField();
        btnLinearWriteAKM4 = new javax.swing.JButton();
        tabLinearWritePK1 = new javax.swing.JPanel();
        lblWriteDataPK1 = new javax.swing.JLabel();
        jScrollPane16 = new javax.swing.JScrollPane();
        txtLinearWritePK1 = new javax.swing.JTextArea();
        lblLWLinearAddressPK1 = new javax.swing.JLabel();
        txtLWLinearAddressPK1 = new javax.swing.JTextField();
        lblLWDataLengthPK1 = new javax.swing.JLabel();
        txtLWDataLengthPK1 = new javax.swing.JTextField();
        lblBytesWrittenPK1 = new javax.swing.JLabel();
        txtBytesWrittenPK1 = new javax.swing.JTextField();
        btnLinearWritePK1 = new javax.swing.JButton();

        setBackground(new java.awt.Color(255, 255, 255));
        setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
        setTitle("LinearRead/Write");
        setAlignmentX(0.0F);
        setAlignmentY(0.0F);
        setMaximumSize(new java.awt.Dimension(524, 327));
        setMinimumSize(new java.awt.Dimension(524, 320));
        setName("frmLinearReadWrite"); // NOI18N
        setPreferredSize(new java.awt.Dimension(555, 385));
        addInternalFrameListener(new javax.swing.event.InternalFrameListener() {
            public void internalFrameActivated(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameDeactivated(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameDeiconified(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameIconified(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameClosed(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameClosing(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameOpened(javax.swing.event.InternalFrameEvent evt) {
                formInternalFrameOpened(evt);
            }
        });

        stbFunction.setBackground(new java.awt.Color(187, 185, 185));
        stbFunction.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        lblFunctionError.setBackground(new java.awt.Color(153, 153, 153));
        lblFunctionError.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblFunctionError.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        lblFunctionError.setText("Function Error:");
        lblFunctionError.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblFunction_explain.setBackground(new java.awt.Color(153, 153, 153));
        lblFunction_explain.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N
        lblFunction_explain.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        lblFunction_explain.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblFunction_code.setBackground(new java.awt.Color(153, 153, 153));
        lblFunction_code.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N
        lblFunction_code.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        lblFunction_code.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        javax.swing.GroupLayout stbFunctionLayout = new javax.swing.GroupLayout(stbFunction);
        stbFunction.setLayout(stbFunctionLayout);
        stbFunctionLayout.setHorizontalGroup(
            stbFunctionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(stbFunctionLayout.createSequentialGroup()
                .addComponent(lblFunctionError, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(lblFunction_code, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(lblFunction_explain, javax.swing.GroupLayout.DEFAULT_SIZE, 393, Short.MAX_VALUE))
        );
        stbFunctionLayout.setVerticalGroup(
            stbFunctionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(lblFunctionError, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addComponent(lblFunction_explain, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addComponent(lblFunction_code, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        pnlHeader.setBackground(new java.awt.Color(255, 255, 255));
        pnlHeader.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        rbAUTH1A.setBackground(new java.awt.Color(255, 255, 255));
        btnGroup.add(rbAUTH1A);
        rbAUTH1A.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        rbAUTH1A.setSelected(true);
        rbAUTH1A.setText("AUTH 1A");
        rbAUTH1A.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));

        rbAUTH1B.setBackground(new java.awt.Color(255, 255, 255));
        btnGroup.add(rbAUTH1B);
        rbAUTH1B.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        rbAUTH1B.setText("AUTH 1B");
        rbAUTH1B.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));

        lblKeyIndex.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblKeyIndex.setText("Key Index");

        cboKeyIndex.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31" }));
        cboKeyIndex.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));

        jLabel1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        jLabel1.setText("PK");

        javax.swing.GroupLayout pnlHeaderLayout = new javax.swing.GroupLayout(pnlHeader);
        pnlHeader.setLayout(pnlHeaderLayout);
        pnlHeaderLayout.setHorizontalGroup(
            pnlHeaderLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(pnlHeaderLayout.createSequentialGroup()
                .addGap(4, 4, 4)
                .addComponent(rbAUTH1A)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(rbAUTH1B)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(lblKeyIndex)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(cboKeyIndex, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel1)
                .addContainerGap(272, Short.MAX_VALUE))
        );
        pnlHeaderLayout.setVerticalGroup(
            pnlHeaderLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(pnlHeaderLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(rbAUTH1A)
                .addComponent(rbAUTH1B)
                .addComponent(lblKeyIndex)
                .addComponent(cboKeyIndex, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(jLabel1))
        );

        pgLinearReadWrite.setTabLayoutPolicy(javax.swing.JTabbedPane.SCROLL_TAB_LAYOUT);
        pgLinearReadWrite.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N

        lblReadData.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        txtLRLinearAddress.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLRLinearAddress.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLRLinearAddress.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        txtLRLinearAddress.setNextFocusableComponent(lblLRDataLength);

        txtLRDataLength.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLRDataLength.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLRDataLength.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        btnLinearRead.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        btnLinearRead.setText("READ");
        btnLinearRead.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        btnLinearRead.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnLinearReadActionPerformed(evt);
            }
        });

        lblLRReadData.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRReadData.setText("Read Data");

        txtLinearRead.setColumns(20);
        txtLinearRead.setEditable(false);
        txtLinearRead.setFont(new java.awt.Font("Dialog", 1, 11)); // NOI18N
        txtLinearRead.setLineWrap(true);
        txtLinearRead.setRows(10);
        txtLinearRead.setWrapStyleWord(true);
        txtLinearRead.setAutoscrolls(false);
        jScrollPane1.setViewportView(txtLinearRead);

        lblLRLinearAddress.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRLinearAddress.setText("Linear Address");

        lblLRDataLength.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRDataLength.setText("Data Length");

        lblReadBytes.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblReadBytes.setText("Read Bytes");

        txtReadBytes.setEditable(false);
        txtReadBytes.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtReadBytes.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtReadBytes.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        chkAscii.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        chkAscii.setText("Ascii");
        chkAscii.setVisible(false);
        chkAscii.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));

        javax.swing.GroupLayout lblReadDataLayout = new javax.swing.GroupLayout(lblReadData);
        lblReadData.setLayout(lblReadDataLayout);
        lblReadDataLayout.setHorizontalGroup(
            lblReadDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(lblReadDataLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(lblReadDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, lblReadDataLayout.createSequentialGroup()
                        .addComponent(lblLRReadData)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 380, Short.MAX_VALUE)
                        .addComponent(chkAscii)
                        .addContainerGap())
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, lblReadDataLayout.createSequentialGroup()
                        .addGroup(lblReadDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 479, Short.MAX_VALUE)
                            .addGroup(lblReadDataLayout.createSequentialGroup()
                                .addGroup(lblReadDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(lblLRLinearAddress)
                                    .addComponent(lblLRDataLength))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(lblReadDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(txtLRDataLength)
                                    .addComponent(txtLRLinearAddress, javax.swing.GroupLayout.DEFAULT_SIZE, 45, Short.MAX_VALUE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 33, Short.MAX_VALUE)
                                .addComponent(lblReadBytes)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(txtReadBytes, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(46, 46, 46)
                                .addComponent(btnLinearRead, javax.swing.GroupLayout.PREFERRED_SIZE, 129, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGap(18, 18, 18))))
        );
        lblReadDataLayout.setVerticalGroup(
            lblReadDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(lblReadDataLayout.createSequentialGroup()
                .addGroup(lblReadDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(lblLRReadData)
                    .addComponent(chkAscii))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(lblReadDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(lblReadDataLayout.createSequentialGroup()
                        .addGroup(lblReadDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(txtLRLinearAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(lblLRLinearAddress))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(lblReadDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(txtLRDataLength, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(lblLRDataLength)))
                    .addGroup(lblReadDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(btnLinearRead, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(lblReadBytes)
                        .addComponent(txtReadBytes, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(38, 38, 38))
        );

        pgLinearReadWrite.addTab("Linear Read", lblReadData);

        pgLinearReadAKM12.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N

        lblLRReadDataAKM1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRReadDataAKM1.setText("Read Data");

        chkAsciiAKM1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        chkAsciiAKM1.setText("Ascii");
        chkAsciiAKM1.setVisible(false);
        chkAsciiAKM1.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));

        txtLinearReadAKM1.setColumns(20);
        txtLinearReadAKM1.setEditable(false);
        txtLinearReadAKM1.setFont(new java.awt.Font("Dialog", 1, 11)); // NOI18N
        txtLinearReadAKM1.setLineWrap(true);
        txtLinearReadAKM1.setRows(10);
        txtLinearReadAKM1.setAutoscrolls(false);
        jScrollPane2.setViewportView(txtLinearReadAKM1);

        lblLRLinearAddressAKM1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRLinearAddressAKM1.setText("Linear Address");

        txtLRLinearAddressAKM1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLRLinearAddressAKM1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLRLinearAddressAKM1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblLRDataLengthAKM1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRDataLengthAKM1.setText("Data Length");

        txtLRDataLengthAKM1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLRDataLengthAKM1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLRDataLengthAKM1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblReadBytesAKM1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblReadBytesAKM1.setText("Read Bytes");

        txtReadBytesAKM1.setEditable(false);
        txtReadBytesAKM1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtReadBytesAKM1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtReadBytesAKM1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        btnLinearReadAKM1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        btnLinearReadAKM1.setText("READ");
        btnLinearReadAKM1.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        btnLinearReadAKM1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnLinearReadAKM1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout tabLinearReadAKM1Layout = new javax.swing.GroupLayout(tabLinearReadAKM1);
        tabLinearReadAKM1.setLayout(tabLinearReadAKM1Layout);
        tabLinearReadAKM1Layout.setHorizontalGroup(
            tabLinearReadAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearReadAKM1Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(tabLinearReadAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 473, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(tabLinearReadAKM1Layout.createSequentialGroup()
                        .addGroup(tabLinearReadAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(lblLRReadDataAKM1)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearReadAKM1Layout.createSequentialGroup()
                                .addGroup(tabLinearReadAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(lblLRLinearAddressAKM1)
                                    .addComponent(lblLRDataLengthAKM1))
                                .addGap(18, 18, 18)
                                .addGroup(tabLinearReadAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(txtLRDataLengthAKM1)
                                    .addComponent(txtLRLinearAddressAKM1, javax.swing.GroupLayout.DEFAULT_SIZE, 43, Short.MAX_VALUE))
                                .addGap(18, 18, 18)
                                .addComponent(lblReadBytesAKM1)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(txtReadBytesAKM1, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(18, 18, 18)))
                        .addGap(54, 54, 54)
                        .addGroup(tabLinearReadAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(chkAsciiAKM1)
                            .addComponent(btnLinearReadAKM1, javax.swing.GroupLayout.PREFERRED_SIZE, 121, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addGap(24, 24, 24))
        );
        tabLinearReadAKM1Layout.setVerticalGroup(
            tabLinearReadAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearReadAKM1Layout.createSequentialGroup()
                .addGroup(tabLinearReadAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(lblLRReadDataAKM1)
                    .addComponent(chkAsciiAKM1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 129, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(tabLinearReadAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(tabLinearReadAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                        .addGroup(tabLinearReadAKM1Layout.createSequentialGroup()
                            .addGroup(tabLinearReadAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(lblLRLinearAddressAKM1)
                                .addComponent(txtLRLinearAddressAKM1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGap(11, 11, 11)
                            .addGroup(tabLinearReadAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(lblLRDataLengthAKM1)
                                .addComponent(txtLRDataLengthAKM1, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGap(3, 3, 3))
                        .addGroup(tabLinearReadAKM1Layout.createSequentialGroup()
                            .addGroup(tabLinearReadAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(lblReadBytesAKM1)
                                .addComponent(txtReadBytesAKM1, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGap(21, 21, 21)))
                    .addComponent(btnLinearReadAKM1, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        pgLinearReadAKM12.addTab("LinearRead AKM1", tabLinearReadAKM1);

        lblLRReadDataAKM2.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRReadDataAKM2.setText("Read Data");

        chkAsciiAKM2.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        chkAsciiAKM2.setText("Ascii");
        chkAsciiAKM2.setVisible(false);
        chkAsciiAKM2.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));

        txtLinearReadAKM2.setColumns(20);
        txtLinearReadAKM2.setEditable(false);
        txtLinearReadAKM2.setFont(new java.awt.Font("Dialog", 1, 11)); // NOI18N
        txtLinearReadAKM2.setLineWrap(true);
        txtLinearReadAKM2.setRows(10);
        txtLinearReadAKM2.setAutoscrolls(false);
        jScrollPane3.setViewportView(txtLinearReadAKM2);

        lblLRLinearAddressAKM2.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRLinearAddressAKM2.setText("Linear Address");

        txtLRLinearAddressAKM2.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLRLinearAddressAKM2.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLRLinearAddressAKM2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblLRDataLengthAKM2.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRDataLengthAKM2.setText("Data Length");

        txtLRDataLengthAKM2.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLRDataLengthAKM2.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLRDataLengthAKM2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblReadBytesAKM2.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblReadBytesAKM2.setText("Read Bytes");

        txtReadBytesAKM2.setEditable(false);
        txtReadBytesAKM2.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtReadBytesAKM2.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtReadBytesAKM2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        btnLinearReadAKM2.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        btnLinearReadAKM2.setText("READ");
        btnLinearReadAKM2.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        btnLinearReadAKM2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnLinearReadAKM2ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout tabLinearReadAKM2Layout = new javax.swing.GroupLayout(tabLinearReadAKM2);
        tabLinearReadAKM2.setLayout(tabLinearReadAKM2Layout);
        tabLinearReadAKM2Layout.setHorizontalGroup(
            tabLinearReadAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearReadAKM2Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(tabLinearReadAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(tabLinearReadAKM2Layout.createSequentialGroup()
                        .addGroup(tabLinearReadAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(lblLRReadDataAKM2)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearReadAKM2Layout.createSequentialGroup()
                                .addGroup(tabLinearReadAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(lblLRLinearAddressAKM2)
                                    .addComponent(lblLRDataLengthAKM2))
                                .addGap(18, 18, 18)
                                .addGroup(tabLinearReadAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(txtLRDataLengthAKM2)
                                    .addComponent(txtLRLinearAddressAKM2, javax.swing.GroupLayout.DEFAULT_SIZE, 43, Short.MAX_VALUE))
                                .addGap(18, 18, 18)
                                .addComponent(lblReadBytesAKM2)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(txtReadBytesAKM2, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(18, 18, 18)))
                        .addGap(58, 58, 58)
                        .addGroup(tabLinearReadAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(chkAsciiAKM2)
                            .addComponent(btnLinearReadAKM2, javax.swing.GroupLayout.PREFERRED_SIZE, 121, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 477, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(20, 20, 20))
        );
        tabLinearReadAKM2Layout.setVerticalGroup(
            tabLinearReadAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearReadAKM2Layout.createSequentialGroup()
                .addGroup(tabLinearReadAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(lblLRReadDataAKM2)
                    .addComponent(chkAsciiAKM2))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 122, Short.MAX_VALUE)
                .addGap(18, 18, 18)
                .addGroup(tabLinearReadAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(tabLinearReadAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                        .addGroup(tabLinearReadAKM2Layout.createSequentialGroup()
                            .addGroup(tabLinearReadAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(lblLRLinearAddressAKM2)
                                .addComponent(txtLRLinearAddressAKM2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGap(11, 11, 11)
                            .addGroup(tabLinearReadAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(lblLRDataLengthAKM2)
                                .addComponent(txtLRDataLengthAKM2, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGap(3, 3, 3))
                        .addGroup(tabLinearReadAKM2Layout.createSequentialGroup()
                            .addGroup(tabLinearReadAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(lblReadBytesAKM2)
                                .addComponent(txtReadBytesAKM2, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGap(21, 21, 21)))
                    .addComponent(btnLinearReadAKM2, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        pgLinearReadAKM12.addTab("LinearRead AKM2", tabLinearReadAKM2);

        javax.swing.GroupLayout tabLinearReadAKM12Layout = new javax.swing.GroupLayout(tabLinearReadAKM12);
        tabLinearReadAKM12.setLayout(tabLinearReadAKM12Layout);
        tabLinearReadAKM12Layout.setHorizontalGroup(
            tabLinearReadAKM12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(pgLinearReadAKM12)
        );
        tabLinearReadAKM12Layout.setVerticalGroup(
            tabLinearReadAKM12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(pgLinearReadAKM12)
        );

        pgLinearReadWrite.addTab("LinearRead AKM1/AKM2", tabLinearReadAKM12);

        lblLRReadDataPK.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRReadDataPK.setText("Read Data");

        chkAsciiPK.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        chkAsciiPK.setText("Ascii");
        chkAsciiPK.setVisible(false);
        chkAsciiPK.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));

        lblLRLinearAddressPK.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRLinearAddressPK.setText("Linear Address");

        txtLRLinearAddressPK.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLRLinearAddressPK.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLRLinearAddressPK.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblLRDataLengthPK.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRDataLengthPK.setText("Data Length");

        txtLRDataLengthPK.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLRDataLengthPK.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLRDataLengthPK.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblReadBytesPK.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblReadBytesPK.setText("Read Bytes");

        txtReadBytesPK.setEditable(false);
        txtReadBytesPK.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtReadBytesPK.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtReadBytesPK.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        btnLinearReadPK.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        btnLinearReadPK.setText("READ");
        btnLinearReadPK.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        btnLinearReadPK.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnLinearReadPKActionPerformed(evt);
            }
        });

        txtLinearReadPK.setColumns(20);
        txtLinearReadPK.setEditable(false);
        txtLinearReadPK.setFont(new java.awt.Font("Dialog", 1, 11)); // NOI18N
        txtLinearReadPK.setLineWrap(true);
        txtLinearReadPK.setRows(10);
        txtLinearReadPK.setAutoscrolls(false);
        jScrollPane4.setViewportView(txtLinearReadPK);

        javax.swing.GroupLayout tabLinearReadPKLayout = new javax.swing.GroupLayout(tabLinearReadPK);
        tabLinearReadPK.setLayout(tabLinearReadPKLayout);
        tabLinearReadPKLayout.setHorizontalGroup(
            tabLinearReadPKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearReadPKLayout.createSequentialGroup()
                .addGroup(tabLinearReadPKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(tabLinearReadPKLayout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 479, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(tabLinearReadPKLayout.createSequentialGroup()
                        .addGap(190, 190, 190)
                        .addComponent(lblReadBytesPK)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(txtReadBytesPK, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(22, Short.MAX_VALUE))
            .addGroup(tabLinearReadPKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(tabLinearReadPKLayout.createSequentialGroup()
                    .addGap(12, 12, 12)
                    .addGroup(tabLinearReadPKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearReadPKLayout.createSequentialGroup()
                            .addComponent(lblLRReadDataPK)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 376, Short.MAX_VALUE)
                            .addComponent(chkAsciiPK))
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearReadPKLayout.createSequentialGroup()
                            .addGroup(tabLinearReadPKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(lblLRLinearAddressPK)
                                .addComponent(lblLRDataLengthPK))
                            .addGap(19, 19, 19)
                            .addGroup(tabLinearReadPKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(txtLRDataLengthPK, javax.swing.GroupLayout.DEFAULT_SIZE, 45, Short.MAX_VALUE)
                                .addComponent(txtLRLinearAddressPK, javax.swing.GroupLayout.DEFAULT_SIZE, 48, Short.MAX_VALUE))
                            .addGap(198, 198, 198)
                            .addComponent(btnLinearReadPK, javax.swing.GroupLayout.PREFERRED_SIZE, 129, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(8, 8, 8)))
                    .addGap(12, 12, 12)))
        );
        tabLinearReadPKLayout.setVerticalGroup(
            tabLinearReadPKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearReadPKLayout.createSequentialGroup()
                .addGap(37, 37, 37)
                .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 129, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 32, Short.MAX_VALUE)
                .addGroup(tabLinearReadPKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(lblReadBytesPK)
                    .addComponent(txtReadBytesPK, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(29, 29, 29))
            .addGroup(tabLinearReadPKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(tabLinearReadPKLayout.createSequentialGroup()
                    .addGap(12, 12, 12)
                    .addGroup(tabLinearReadPKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(lblLRReadDataPK)
                        .addComponent(chkAsciiPK))
                    .addGap(151, 151, 151)
                    .addGroup(tabLinearReadPKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(tabLinearReadPKLayout.createSequentialGroup()
                            .addGroup(tabLinearReadPKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(txtLRLinearAddressPK, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(lblLRLinearAddressPK))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                            .addGroup(tabLinearReadPKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(txtLRDataLengthPK, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(lblLRDataLengthPK)))
                        .addComponent(btnLinearReadPK, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addContainerGap(13, Short.MAX_VALUE)))
        );

        pgLinearReadWrite.addTab("LinearRead PK", tabLinearReadPK);

        lblWriteData.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblWriteData.setText("Write Data");

        txtLinearWrite.setColumns(20);
        txtLinearWrite.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N
        txtLinearWrite.setLineWrap(true);
        txtLinearWrite.setRows(10);
        txtLinearWrite.setAutoscrolls(false);
        jScrollPane5.setViewportView(txtLinearWrite);

        lblLWLinearAddress.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLWLinearAddress.setText("Linear Address");

        txtLWLinearAddress.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLWLinearAddress.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLWLinearAddress.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblLWDataLength.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLWDataLength.setText("Data Length");

        txtLWDataLength.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLWDataLength.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLWDataLength.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblBytesWritten.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblBytesWritten.setText("Bytes Written");

        txtBytesWritten.setEditable(false);
        txtBytesWritten.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtBytesWritten.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtBytesWritten.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        btnLinearWrite.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        btnLinearWrite.setText("WRITE");
        btnLinearWrite.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        btnLinearWrite.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnLinearWriteActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout tabLinearWriteLayout = new javax.swing.GroupLayout(tabLinearWrite);
        tabLinearWrite.setLayout(tabLinearWriteLayout);
        tabLinearWriteLayout.setHorizontalGroup(
            tabLinearWriteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearWriteLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(tabLinearWriteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(tabLinearWriteLayout.createSequentialGroup()
                        .addComponent(lblBytesWritten)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED))
                    .addGroup(tabLinearWriteLayout.createSequentialGroup()
                        .addComponent(lblLWLinearAddress)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 34, Short.MAX_VALUE)
                        .addGroup(tabLinearWriteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(tabLinearWriteLayout.createSequentialGroup()
                                .addComponent(txtLWDataLength, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearWriteLayout.createSequentialGroup()
                                .addComponent(txtLWLinearAddress, javax.swing.GroupLayout.DEFAULT_SIZE, 45, Short.MAX_VALUE)
                                .addGap(100, 100, 100)))))
                .addComponent(txtBytesWritten, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(29, 29, 29)
                .addComponent(btnLinearWrite, javax.swing.GroupLayout.PREFERRED_SIZE, 132, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(29, 29, 29))
            .addGroup(tabLinearWriteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(tabLinearWriteLayout.createSequentialGroup()
                    .addGap(12, 12, 12)
                    .addGroup(tabLinearWriteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(tabLinearWriteLayout.createSequentialGroup()
                            .addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, 479, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addContainerGap())
                        .addGroup(tabLinearWriteLayout.createSequentialGroup()
                            .addGroup(tabLinearWriteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addGroup(javax.swing.GroupLayout.Alignment.LEADING, tabLinearWriteLayout.createSequentialGroup()
                                    .addComponent(lblWriteData)
                                    .addGap(417, 417, 417))
                                .addGroup(javax.swing.GroupLayout.Alignment.LEADING, tabLinearWriteLayout.createSequentialGroup()
                                    .addComponent(lblLWDataLength, javax.swing.GroupLayout.DEFAULT_SIZE, 108, Short.MAX_VALUE)
                                    .addGap(379, 379, 379)))
                            .addGap(12, 12, 12)))))
        );
        tabLinearWriteLayout.setVerticalGroup(
            tabLinearWriteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearWriteLayout.createSequentialGroup()
                .addContainerGap(180, Short.MAX_VALUE)
                .addGroup(tabLinearWriteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearWriteLayout.createSequentialGroup()
                        .addGroup(tabLinearWriteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(txtLWLinearAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(lblLWLinearAddress))
                        .addGap(19, 19, 19)
                        .addComponent(txtLWDataLength, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearWriteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(txtBytesWritten, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(lblBytesWritten)
                        .addComponent(btnLinearWrite, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
            .addGroup(tabLinearWriteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(tabLinearWriteLayout.createSequentialGroup()
                    .addGap(9, 9, 9)
                    .addComponent(lblWriteData)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, 133, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 67, Short.MAX_VALUE)
                    .addComponent(lblLWDataLength)
                    .addContainerGap()))
        );

        pgLinearReadWrite.addTab("Linear Write", tabLinearWrite);

        pgLinearWriteAKM12.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N

        lblWriteDataAKM1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblWriteDataAKM1.setText("Write Data");

        txtLinearWriteAKM1.setColumns(20);
        txtLinearWriteAKM1.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N
        txtLinearWriteAKM1.setLineWrap(true);
        txtLinearWriteAKM1.setRows(10);
        txtLinearWriteAKM1.setAutoscrolls(false);
        jScrollPane7.setViewportView(txtLinearWriteAKM1);

        lblLWLinearAddressAKM1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLWLinearAddressAKM1.setText("Linear Address");

        txtLWLinearAddressAKM1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLWLinearAddressAKM1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLWLinearAddressAKM1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblLWDataLengthAKM1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLWDataLengthAKM1.setText("Data Length");

        txtLWDataLengthAKM1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLWDataLengthAKM1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLWDataLengthAKM1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblbytesWrittenAKM1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblbytesWrittenAKM1.setText("Bytes Written");

        txtBytesWrittenAKM1.setEditable(false);
        txtBytesWrittenAKM1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtBytesWrittenAKM1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtBytesWrittenAKM1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        btnLinearWriteAKM1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        btnLinearWriteAKM1.setText("WRITE");
        btnLinearWriteAKM1.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        btnLinearWriteAKM1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnLinearWriteAKM1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout tabLinearWriteAKM1Layout = new javax.swing.GroupLayout(tabLinearWriteAKM1);
        tabLinearWriteAKM1.setLayout(tabLinearWriteAKM1Layout);
        tabLinearWriteAKM1Layout.setHorizontalGroup(
            tabLinearWriteAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearWriteAKM1Layout.createSequentialGroup()
                .addGap(10, 10, 10)
                .addGroup(tabLinearWriteAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jScrollPane7, javax.swing.GroupLayout.PREFERRED_SIZE, 478, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(tabLinearWriteAKM1Layout.createSequentialGroup()
                        .addGroup(tabLinearWriteAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(lblWriteDataAKM1)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearWriteAKM1Layout.createSequentialGroup()
                                .addGroup(tabLinearWriteAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(lblLWDataLengthAKM1)
                                    .addComponent(lblLWLinearAddressAKM1))
                                .addGap(18, 18, 18)
                                .addGroup(tabLinearWriteAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(txtLWLinearAddressAKM1)
                                    .addComponent(txtLWDataLengthAKM1, javax.swing.GroupLayout.DEFAULT_SIZE, 53, Short.MAX_VALUE))
                                .addGap(18, 18, 18)
                                .addComponent(lblbytesWrittenAKM1)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(txtBytesWrittenAKM1, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(btnLinearWriteAKM1, javax.swing.GroupLayout.PREFERRED_SIZE, 146, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
        tabLinearWriteAKM1Layout.setVerticalGroup(
            tabLinearWriteAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearWriteAKM1Layout.createSequentialGroup()
                .addComponent(lblWriteDataAKM1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane7, javax.swing.GroupLayout.DEFAULT_SIZE, 113, Short.MAX_VALUE)
                .addGap(18, 18, 18)
                .addGroup(tabLinearWriteAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearWriteAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(txtBytesWrittenAKM1, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(lblbytesWrittenAKM1)
                        .addComponent(btnLinearWriteAKM1, javax.swing.GroupLayout.PREFERRED_SIZE, 58, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearWriteAKM1Layout.createSequentialGroup()
                        .addGroup(tabLinearWriteAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(lblLWLinearAddressAKM1)
                            .addComponent(txtLWLinearAddressAKM1, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addGroup(tabLinearWriteAKM1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(lblLWDataLengthAKM1)
                            .addComponent(txtLWDataLengthAKM1, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap())
        );

        pgLinearWriteAKM12.addTab("LinearWrite AKM1", tabLinearWriteAKM1);

        lblWriteDataAKM2.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblWriteDataAKM2.setText("Write Data");

        txtLinearWriteAKM2.setColumns(20);
        txtLinearWriteAKM2.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N
        txtLinearWriteAKM2.setLineWrap(true);
        txtLinearWriteAKM2.setRows(10);
        txtLinearWriteAKM2.setAutoscrolls(false);
        jScrollPane8.setViewportView(txtLinearWriteAKM2);

        lblLWLinearAddressAKM2.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLWLinearAddressAKM2.setText("Linear Address");

        txtLWLinearAddressAKM2.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLWLinearAddressAKM2.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLWLinearAddressAKM2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblLWDataLengthAKM2.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLWDataLengthAKM2.setText("Data Length");

        txtLWDataLengthAKM2.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLWDataLengthAKM2.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLWDataLengthAKM2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblbytesWrittenAKM3.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblbytesWrittenAKM3.setText("Bytes Written");

        txtBytesWrittenAKM2.setEditable(false);
        txtBytesWrittenAKM2.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtBytesWrittenAKM2.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtBytesWrittenAKM2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        btnLinearWriteAKM2.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        btnLinearWriteAKM2.setText("WRITE");
        btnLinearWriteAKM2.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        btnLinearWriteAKM2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnLinearWriteAKM2ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout tabLinearWriteAKM2Layout = new javax.swing.GroupLayout(tabLinearWriteAKM2);
        tabLinearWriteAKM2.setLayout(tabLinearWriteAKM2Layout);
        tabLinearWriteAKM2Layout.setHorizontalGroup(
            tabLinearWriteAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearWriteAKM2Layout.createSequentialGroup()
                .addGap(10, 10, 10)
                .addGroup(tabLinearWriteAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jScrollPane8, javax.swing.GroupLayout.PREFERRED_SIZE, 478, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(tabLinearWriteAKM2Layout.createSequentialGroup()
                        .addGroup(tabLinearWriteAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(lblWriteDataAKM2)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearWriteAKM2Layout.createSequentialGroup()
                                .addGroup(tabLinearWriteAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(lblLWDataLengthAKM2)
                                    .addComponent(lblLWLinearAddressAKM2))
                                .addGap(18, 18, 18)
                                .addGroup(tabLinearWriteAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(txtLWLinearAddressAKM2)
                                    .addComponent(txtLWDataLengthAKM2, javax.swing.GroupLayout.DEFAULT_SIZE, 53, Short.MAX_VALUE))
                                .addGap(18, 18, 18)
                                .addComponent(lblbytesWrittenAKM3)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(txtBytesWrittenAKM2, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(btnLinearWriteAKM2, javax.swing.GroupLayout.PREFERRED_SIZE, 146, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
        tabLinearWriteAKM2Layout.setVerticalGroup(
            tabLinearWriteAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearWriteAKM2Layout.createSequentialGroup()
                .addComponent(lblWriteDataAKM2)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, 113, Short.MAX_VALUE)
                .addGap(18, 18, 18)
                .addGroup(tabLinearWriteAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearWriteAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(txtBytesWrittenAKM2, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(lblbytesWrittenAKM3)
                        .addComponent(btnLinearWriteAKM2, javax.swing.GroupLayout.PREFERRED_SIZE, 58, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearWriteAKM2Layout.createSequentialGroup()
                        .addGroup(tabLinearWriteAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(lblLWLinearAddressAKM2)
                            .addComponent(txtLWLinearAddressAKM2, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addGroup(tabLinearWriteAKM2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(lblLWDataLengthAKM2)
                            .addComponent(txtLWDataLengthAKM2, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap())
        );

        pgLinearWriteAKM12.addTab("LinearWrite AKM2", tabLinearWriteAKM2);

        javax.swing.GroupLayout tabLinearWriteAKM12Layout = new javax.swing.GroupLayout(tabLinearWriteAKM12);
        tabLinearWriteAKM12.setLayout(tabLinearWriteAKM12Layout);
        tabLinearWriteAKM12Layout.setHorizontalGroup(
            tabLinearWriteAKM12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(pgLinearWriteAKM12, javax.swing.GroupLayout.DEFAULT_SIZE, 511, Short.MAX_VALUE)
        );
        tabLinearWriteAKM12Layout.setVerticalGroup(
            tabLinearWriteAKM12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(pgLinearWriteAKM12)
        );

        pgLinearReadWrite.addTab("LinearWrite AKM1/AKM2", tabLinearWriteAKM12);

        lblWriteDataPK.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblWriteDataPK.setText("Write Data");

        txtLinearWritePK.setColumns(20);
        txtLinearWritePK.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N
        txtLinearWritePK.setLineWrap(true);
        txtLinearWritePK.setRows(10);
        txtLinearWritePK.setAutoscrolls(false);
        jScrollPane6.setViewportView(txtLinearWritePK);

        lblLWLinearAddressPK.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLWLinearAddressPK.setText("Linear Address");

        txtLWLinearAddressPK.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLWLinearAddressPK.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLWLinearAddressPK.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblLWDataLengthPK.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLWDataLengthPK.setText("Data Length");

        txtLWDataLengthPK.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLWDataLengthPK.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLWDataLengthPK.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblBytesWrittenPK.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblBytesWrittenPK.setText("Bytes Written");

        txtBytesWrittenPK.setEditable(false);
        txtBytesWrittenPK.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtBytesWrittenPK.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtBytesWrittenPK.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        btnLinearWritePK.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        btnLinearWritePK.setText("WRITE");
        btnLinearWritePK.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnLinearWritePKActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout tabLinearWritePKLayout = new javax.swing.GroupLayout(tabLinearWritePK);
        tabLinearWritePK.setLayout(tabLinearWritePKLayout);
        tabLinearWritePKLayout.setHorizontalGroup(
            tabLinearWritePKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearWritePKLayout.createSequentialGroup()
                .addGroup(tabLinearWritePKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, tabLinearWritePKLayout.createSequentialGroup()
                        .addGap(18, 18, 18)
                        .addGroup(tabLinearWritePKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(lblLWDataLengthPK, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(lblLWLinearAddressPK, javax.swing.GroupLayout.Alignment.TRAILING))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(tabLinearWritePKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(txtLWLinearAddressPK, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(txtLWDataLengthPK, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addComponent(lblBytesWrittenPK)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(txtBytesWrittenPK, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(40, 40, 40)
                        .addComponent(btnLinearWritePK, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, tabLinearWritePKLayout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(tabLinearWritePKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jScrollPane6)
                            .addComponent(lblWriteDataPK))))
                .addGap(34, 34, 34))
        );
        tabLinearWritePKLayout.setVerticalGroup(
            tabLinearWritePKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearWritePKLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(lblWriteDataPK)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane6, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(tabLinearWritePKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(tabLinearWritePKLayout.createSequentialGroup()
                        .addGroup(tabLinearWritePKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(lblLWLinearAddressPK)
                            .addComponent(txtLWLinearAddressPK, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(tabLinearWritePKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(lblLWDataLengthPK)
                            .addComponent(txtLWDataLengthPK, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(tabLinearWritePKLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(btnLinearWritePK, javax.swing.GroupLayout.DEFAULT_SIZE, 60, Short.MAX_VALUE)
                        .addComponent(lblBytesWrittenPK)
                        .addComponent(txtBytesWrittenPK, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(11, 11, 11))
        );

        pgLinearReadWrite.addTab("LinearWrite_PK", tabLinearWritePK);

        jInternalFrame1.setBackground(new java.awt.Color(255, 255, 255));
        jInternalFrame1.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
        jInternalFrame1.setTitle("LinearRead/Write");
        jInternalFrame1.setAlignmentX(0.0F);
        jInternalFrame1.setAlignmentY(0.0F);
        jInternalFrame1.setMaximumSize(new java.awt.Dimension(524, 327));
        jInternalFrame1.setMinimumSize(new java.awt.Dimension(524, 320));
        jInternalFrame1.setName("frmLinearReadWrite"); // NOI18N
        jInternalFrame1.setPreferredSize(new java.awt.Dimension(524, 327));
        jInternalFrame1.addInternalFrameListener(new javax.swing.event.InternalFrameListener() {
            public void internalFrameActivated(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameDeactivated(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameDeiconified(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameIconified(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameClosed(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameClosing(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameOpened(javax.swing.event.InternalFrameEvent evt) {
                jInternalFrame1formInternalFrameOpened(evt);
            }
        });

        stbFunction1.setBackground(new java.awt.Color(187, 185, 185));
        stbFunction1.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        lblFunctionError1.setBackground(new java.awt.Color(153, 153, 153));
        lblFunctionError1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblFunctionError1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        lblFunctionError1.setText("Function Error:");
        lblFunctionError1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblFunction_explain1.setBackground(new java.awt.Color(153, 153, 153));
        lblFunction_explain1.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N
        lblFunction_explain1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        lblFunction_explain1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblFunction_code1.setBackground(new java.awt.Color(153, 153, 153));
        lblFunction_code1.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N
        lblFunction_code1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        lblFunction_code1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        javax.swing.GroupLayout stbFunction1Layout = new javax.swing.GroupLayout(stbFunction1);
        stbFunction1.setLayout(stbFunction1Layout);
        stbFunction1Layout.setHorizontalGroup(
            stbFunction1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(stbFunction1Layout.createSequentialGroup()
                .addComponent(lblFunctionError1, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(lblFunction_code1, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(lblFunction_explain1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        stbFunction1Layout.setVerticalGroup(
            stbFunction1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(lblFunctionError1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addComponent(lblFunction_explain1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addComponent(lblFunction_code1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        pnlHeader1.setBackground(new java.awt.Color(255, 255, 255));
        pnlHeader1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        rbAUTH1A1.setBackground(new java.awt.Color(255, 255, 255));
        btnGroup.add(rbAUTH1A1);
        rbAUTH1A1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        rbAUTH1A1.setText("AUTH 1A");
        rbAUTH1A1.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));

        rbAUTH1B1.setBackground(new java.awt.Color(255, 255, 255));
        btnGroup.add(rbAUTH1B1);
        rbAUTH1B1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        rbAUTH1B1.setText("AUTH 1B");
        rbAUTH1B1.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));

        lblKeyIndex1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblKeyIndex1.setText("Key Index");

        cboKeyIndex1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31" }));
        cboKeyIndex1.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));

        jLabel2.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        jLabel2.setText("PK");

        javax.swing.GroupLayout pnlHeader1Layout = new javax.swing.GroupLayout(pnlHeader1);
        pnlHeader1.setLayout(pnlHeader1Layout);
        pnlHeader1Layout.setHorizontalGroup(
            pnlHeader1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(pnlHeader1Layout.createSequentialGroup()
                .addGap(4, 4, 4)
                .addComponent(rbAUTH1A1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(rbAUTH1B1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(lblKeyIndex1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(cboKeyIndex1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel2)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        pnlHeader1Layout.setVerticalGroup(
            pnlHeader1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlHeader1Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(pnlHeader1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(rbAUTH1A1)
                    .addComponent(rbAUTH1B1)
                    .addComponent(lblKeyIndex1)
                    .addComponent(cboKeyIndex1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel2)))
        );

        pgLinearReadWrite1.setTabLayoutPolicy(javax.swing.JTabbedPane.SCROLL_TAB_LAYOUT);
        pgLinearReadWrite1.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N

        lblReadData1.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        txtLRLinearAddress1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLRLinearAddress1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLRLinearAddress1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        txtLRDataLength1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLRDataLength1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLRDataLength1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        btnLinearRead1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        btnLinearRead1.setText("READ");
        btnLinearRead1.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        btnLinearRead1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnLinearRead1ActionPerformed(evt);
            }
        });

        lblLRReadData1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRReadData1.setText("Read Data");

        txtLinearRead1.setColumns(20);
        txtLinearRead1.setEditable(false);
        txtLinearRead1.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N
        txtLinearRead1.setLineWrap(true);
        txtLinearRead1.setRows(10);
        txtLinearRead1.setAutoscrolls(false);
        jScrollPane9.setViewportView(txtLinearRead1);

        lblLRLinearAddress1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRLinearAddress1.setText("Linear Address");

        lblLRDataLength1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRDataLength1.setText("Data Length");

        lblReadBytes1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblReadBytes1.setText("Read Bytes");

        txtReadBytes1.setEditable(false);
        txtReadBytes1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtReadBytes1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtReadBytes1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        chkAscii1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        chkAscii1.setText("Ascii");
        chkAscii1.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));

        javax.swing.GroupLayout lblReadData1Layout = new javax.swing.GroupLayout(lblReadData1);
        lblReadData1.setLayout(lblReadData1Layout);
        lblReadData1Layout.setHorizontalGroup(
            lblReadData1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, lblReadData1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(lblReadData1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jScrollPane9, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 472, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, lblReadData1Layout.createSequentialGroup()
                        .addComponent(lblLRReadData1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 361, Short.MAX_VALUE)
                        .addComponent(chkAscii1))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, lblReadData1Layout.createSequentialGroup()
                        .addGroup(lblReadData1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(lblReadData1Layout.createSequentialGroup()
                                .addComponent(lblLRLinearAddress1)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addGroup(lblReadData1Layout.createSequentialGroup()
                                .addComponent(lblLRDataLength1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addGap(3, 3, 3)))
                        .addGroup(lblReadData1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addComponent(txtLRDataLength1)
                            .addComponent(txtLRLinearAddress1, javax.swing.GroupLayout.DEFAULT_SIZE, 47, Short.MAX_VALUE))
                        .addGroup(lblReadData1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(lblReadData1Layout.createSequentialGroup()
                                .addGap(18, 18, 18)
                                .addComponent(lblReadBytes1)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(txtReadBytes1, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(192, 192, 192))
                            .addGroup(lblReadData1Layout.createSequentialGroup()
                                .addGap(169, 169, 169)
                                .addComponent(btnLinearRead1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))))
                .addContainerGap())
        );
        lblReadData1Layout.setVerticalGroup(
            lblReadData1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(lblReadData1Layout.createSequentialGroup()
                .addGroup(lblReadData1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(lblLRReadData1)
                    .addComponent(chkAscii1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane9, javax.swing.GroupLayout.PREFERRED_SIZE, 131, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGroup(lblReadData1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(lblReadData1Layout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addGroup(lblReadData1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(txtLRLinearAddress1, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(lblLRLinearAddress1))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 30, Short.MAX_VALUE)
                        .addGroup(lblReadData1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(txtLRDataLength1, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(lblLRDataLength1))
                        .addContainerGap())
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, lblReadData1Layout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 36, Short.MAX_VALUE)
                        .addGroup(lblReadData1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, lblReadData1Layout.createSequentialGroup()
                                .addGroup(lblReadData1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(lblReadBytes1)
                                    .addComponent(txtReadBytes1, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGap(21, 21, 21))
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, lblReadData1Layout.createSequentialGroup()
                                .addComponent(btnLinearRead1, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addContainerGap())))))
        );

        pgLinearReadWrite1.addTab("Linear Read", lblReadData1);

        pgLinearReadAKM13.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N

        lblLRReadDataAKM3.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRReadDataAKM3.setText("Read Data");

        chkAsciiAKM3.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        chkAsciiAKM3.setText("Ascii");
        chkAsciiAKM3.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));

        txtLinearReadAKM3.setColumns(20);
        txtLinearReadAKM3.setEditable(false);
        txtLinearReadAKM3.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N
        txtLinearReadAKM3.setLineWrap(true);
        txtLinearReadAKM3.setRows(10);
        txtLinearReadAKM3.setAutoscrolls(false);
        jScrollPane10.setViewportView(txtLinearReadAKM3);

        lblLRLinearAddressAKM3.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRLinearAddressAKM3.setText("Linear Address");

        txtLRLinearAddressAKM3.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLRLinearAddressAKM3.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLRLinearAddressAKM3.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblLRDataLengthAKM3.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRDataLengthAKM3.setText("Data Length");

        txtLRDataLengthAKM3.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLRDataLengthAKM3.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLRDataLengthAKM3.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblReadBytesAKM3.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblReadBytesAKM3.setText("Read Bytes");

        txtReadBytesAKM3.setEditable(false);
        txtReadBytesAKM3.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtReadBytesAKM3.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtReadBytesAKM3.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        btnLinearReadAKM3.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        btnLinearReadAKM3.setText("READ");
        btnLinearReadAKM3.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        btnLinearReadAKM3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnLinearReadAKM3ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout tabLinearReadAKM3Layout = new javax.swing.GroupLayout(tabLinearReadAKM3);
        tabLinearReadAKM3.setLayout(tabLinearReadAKM3Layout);
        tabLinearReadAKM3Layout.setHorizontalGroup(
            tabLinearReadAKM3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearReadAKM3Layout.createSequentialGroup()
                .addGap(10, 10, 10)
                .addGroup(tabLinearReadAKM3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(tabLinearReadAKM3Layout.createSequentialGroup()
                        .addComponent(lblLRReadDataAKM3)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 359, Short.MAX_VALUE)
                        .addComponent(chkAsciiAKM3))
                    .addComponent(jScrollPane10, javax.swing.GroupLayout.DEFAULT_SIZE, 470, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearReadAKM3Layout.createSequentialGroup()
                        .addGroup(tabLinearReadAKM3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(tabLinearReadAKM3Layout.createSequentialGroup()
                                .addComponent(lblLRLinearAddressAKM3)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addGroup(tabLinearReadAKM3Layout.createSequentialGroup()
                                .addComponent(lblLRDataLengthAKM3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addGap(3, 3, 3)))
                        .addGroup(tabLinearReadAKM3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addComponent(txtLRDataLengthAKM3)
                            .addComponent(txtLRLinearAddressAKM3, javax.swing.GroupLayout.DEFAULT_SIZE, 47, Short.MAX_VALUE))
                        .addGap(18, 18, 18)
                        .addComponent(lblReadBytesAKM3)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(txtReadBytesAKM3, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(35, 35, 35)
                        .addComponent(btnLinearReadAKM3, javax.swing.GroupLayout.PREFERRED_SIZE, 159, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(106, 106, 106))
        );
        tabLinearReadAKM3Layout.setVerticalGroup(
            tabLinearReadAKM3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearReadAKM3Layout.createSequentialGroup()
                .addGroup(tabLinearReadAKM3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(lblLRReadDataAKM3)
                    .addComponent(chkAsciiAKM3))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane10, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(tabLinearReadAKM3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btnLinearReadAKM3, javax.swing.GroupLayout.DEFAULT_SIZE, 111, Short.MAX_VALUE)
                    .addGroup(tabLinearReadAKM3Layout.createSequentialGroup()
                        .addGap(12, 12, 12)
                        .addGroup(tabLinearReadAKM3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(lblReadBytesAKM3)
                            .addComponent(txtReadBytesAKM3, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(16, 16, 16))
                    .addGroup(tabLinearReadAKM3Layout.createSequentialGroup()
                        .addGroup(tabLinearReadAKM3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(txtLRLinearAddressAKM3, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(lblLRLinearAddressAKM3))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 49, Short.MAX_VALUE)
                        .addGroup(tabLinearReadAKM3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(txtLRDataLengthAKM3, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(lblLRDataLengthAKM3))))
                .addContainerGap())
        );

        pgLinearReadAKM13.addTab("LinearRead AKM1", tabLinearReadAKM3);

        lblLRReadDataAKM4.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRReadDataAKM4.setText("Read Data");

        chkAsciiAKM4.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        chkAsciiAKM4.setText("Ascii");
        chkAsciiAKM4.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));

        txtLinearReadAKM4.setColumns(20);
        txtLinearReadAKM4.setEditable(false);
        txtLinearReadAKM4.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N
        txtLinearReadAKM4.setLineWrap(true);
        txtLinearReadAKM4.setRows(10);
        txtLinearReadAKM4.setAutoscrolls(false);
        jScrollPane11.setViewportView(txtLinearReadAKM4);

        lblLRLinearAddressAKM4.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRLinearAddressAKM4.setText("Linear Address");

        txtLRLinearAddressAKM4.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLRLinearAddressAKM4.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLRLinearAddressAKM4.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblLRDataLengthAKM4.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRDataLengthAKM4.setText("Data Length");

        txtLRDataLengthAKM4.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLRDataLengthAKM4.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLRDataLengthAKM4.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblReadBytesAKM4.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblReadBytesAKM4.setText("Read Bytes");

        txtReadBytesAKM4.setEditable(false);
        txtReadBytesAKM4.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtReadBytesAKM4.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtReadBytesAKM4.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        btnLinearReadAKM4.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        btnLinearReadAKM4.setText("READ");
        btnLinearReadAKM4.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        btnLinearReadAKM4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnLinearReadAKM4ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout tabLinearReadAKM4Layout = new javax.swing.GroupLayout(tabLinearReadAKM4);
        tabLinearReadAKM4.setLayout(tabLinearReadAKM4Layout);
        tabLinearReadAKM4Layout.setHorizontalGroup(
            tabLinearReadAKM4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearReadAKM4Layout.createSequentialGroup()
                .addGap(10, 10, 10)
                .addGroup(tabLinearReadAKM4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(tabLinearReadAKM4Layout.createSequentialGroup()
                        .addComponent(lblLRReadDataAKM4)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 366, Short.MAX_VALUE)
                        .addComponent(chkAsciiAKM4))
                    .addComponent(jScrollPane11, javax.swing.GroupLayout.DEFAULT_SIZE, 477, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearReadAKM4Layout.createSequentialGroup()
                        .addGroup(tabLinearReadAKM4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(tabLinearReadAKM4Layout.createSequentialGroup()
                                .addComponent(lblLRLinearAddressAKM4)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addGroup(tabLinearReadAKM4Layout.createSequentialGroup()
                                .addComponent(lblLRDataLengthAKM4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addGap(3, 3, 3)))
                        .addGroup(tabLinearReadAKM4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addComponent(txtLRDataLengthAKM4)
                            .addComponent(txtLRLinearAddressAKM4, javax.swing.GroupLayout.DEFAULT_SIZE, 47, Short.MAX_VALUE))
                        .addGap(18, 18, 18)
                        .addComponent(lblReadBytesAKM4)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(txtReadBytesAKM4, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(35, 35, 35)
                        .addComponent(btnLinearReadAKM4, javax.swing.GroupLayout.PREFERRED_SIZE, 166, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(99, 99, 99))
        );
        tabLinearReadAKM4Layout.setVerticalGroup(
            tabLinearReadAKM4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearReadAKM4Layout.createSequentialGroup()
                .addGroup(tabLinearReadAKM4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(lblLRReadDataAKM4)
                    .addComponent(chkAsciiAKM4))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane11, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(tabLinearReadAKM4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btnLinearReadAKM4, javax.swing.GroupLayout.DEFAULT_SIZE, 111, Short.MAX_VALUE)
                    .addGroup(tabLinearReadAKM4Layout.createSequentialGroup()
                        .addGap(12, 12, 12)
                        .addGroup(tabLinearReadAKM4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(lblReadBytesAKM4)
                            .addComponent(txtReadBytesAKM4, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(16, 16, 16))
                    .addGroup(tabLinearReadAKM4Layout.createSequentialGroup()
                        .addGroup(tabLinearReadAKM4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(txtLRLinearAddressAKM4, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(lblLRLinearAddressAKM4))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 49, Short.MAX_VALUE)
                        .addGroup(tabLinearReadAKM4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(txtLRDataLengthAKM4, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(lblLRDataLengthAKM4))))
                .addContainerGap())
        );

        pgLinearReadAKM13.addTab("LinearRead AKM2", tabLinearReadAKM4);

        javax.swing.GroupLayout tabLinearReadAKM13Layout = new javax.swing.GroupLayout(tabLinearReadAKM13);
        tabLinearReadAKM13.setLayout(tabLinearReadAKM13Layout);
        tabLinearReadAKM13Layout.setHorizontalGroup(
            tabLinearReadAKM13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(pgLinearReadAKM13, javax.swing.GroupLayout.DEFAULT_SIZE, 502, Short.MAX_VALUE)
        );
        tabLinearReadAKM13Layout.setVerticalGroup(
            tabLinearReadAKM13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(pgLinearReadAKM13)
        );

        pgLinearReadWrite1.addTab("LinearRead AKM1/AKM2", tabLinearReadAKM13);

        lblLRReadDataPK1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRReadDataPK1.setText("Read Data");

        txtLinearReadPK1.setColumns(20);
        txtLinearReadPK1.setEditable(false);
        txtLinearReadPK1.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N
        txtLinearReadPK1.setLineWrap(true);
        txtLinearReadPK1.setRows(10);
        txtLinearReadPK1.setAutoscrolls(false);
        jScrollPane12.setViewportView(txtLinearReadPK1);

        chkAsciiPK1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        chkAsciiPK1.setText("Ascii");
        chkAsciiPK1.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));

        lblLRLinearAddressPK1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRLinearAddressPK1.setText("Linear Address");

        txtLRLinearAddressPK1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLRLinearAddressPK1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLRLinearAddressPK1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblLRDataLengthPK1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLRDataLengthPK1.setText("Data Length");

        txtLRDataLengthPK1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLRDataLengthPK1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLRDataLengthPK1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblReadBytesPK1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblReadBytesPK1.setText("Read Bytes");

        txtReadBytesPK1.setEditable(false);
        txtReadBytesPK1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtReadBytesPK1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtReadBytesPK1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        btnLinearReadPK1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        btnLinearReadPK1.setText("READ");
        btnLinearReadPK1.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        btnLinearReadPK1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnLinearReadPK1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout tabLinearReadPK1Layout = new javax.swing.GroupLayout(tabLinearReadPK1);
        tabLinearReadPK1.setLayout(tabLinearReadPK1Layout);
        tabLinearReadPK1Layout.setHorizontalGroup(
            tabLinearReadPK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearReadPK1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(tabLinearReadPK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jScrollPane12, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 476, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, tabLinearReadPK1Layout.createSequentialGroup()
                        .addComponent(lblLRReadDataPK1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 365, Short.MAX_VALUE)
                        .addComponent(chkAsciiPK1))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, tabLinearReadPK1Layout.createSequentialGroup()
                        .addGroup(tabLinearReadPK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(tabLinearReadPK1Layout.createSequentialGroup()
                                .addComponent(lblLRLinearAddressPK1)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 31, Short.MAX_VALUE))
                            .addGroup(tabLinearReadPK1Layout.createSequentialGroup()
                                .addComponent(lblLRDataLengthPK1, javax.swing.GroupLayout.DEFAULT_SIZE, 114, Short.MAX_VALUE)
                                .addGap(3, 3, 3)))
                        .addGroup(tabLinearReadPK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addComponent(txtLRDataLengthPK1)
                            .addComponent(txtLRLinearAddressPK1, javax.swing.GroupLayout.DEFAULT_SIZE, 47, Short.MAX_VALUE))
                        .addGap(18, 18, 18)
                        .addComponent(lblReadBytesPK1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(txtReadBytesPK1, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(29, 29, 29)
                        .addComponent(btnLinearReadPK1, javax.swing.GroupLayout.DEFAULT_SIZE, 135, Short.MAX_VALUE)))
                .addContainerGap())
        );
        tabLinearReadPK1Layout.setVerticalGroup(
            tabLinearReadPK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearReadPK1Layout.createSequentialGroup()
                .addGroup(tabLinearReadPK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(lblLRReadDataPK1)
                    .addComponent(chkAsciiPK1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane12, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGroup(tabLinearReadPK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(tabLinearReadPK1Layout.createSequentialGroup()
                        .addGap(30, 30, 30)
                        .addGroup(tabLinearReadPK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(lblReadBytesPK1)
                            .addComponent(txtReadBytesPK1, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(21, 21, 21))
                    .addGroup(tabLinearReadPK1Layout.createSequentialGroup()
                        .addGap(18, 18, 18)
                        .addGroup(tabLinearReadPK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(btnLinearReadPK1, javax.swing.GroupLayout.DEFAULT_SIZE, 128, Short.MAX_VALUE)
                            .addGroup(tabLinearReadPK1Layout.createSequentialGroup()
                                .addGroup(tabLinearReadPK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(txtLRLinearAddressPK1, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(lblLRLinearAddressPK1))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 70, Short.MAX_VALUE)
                                .addGroup(tabLinearReadPK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(txtLRDataLengthPK1, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(lblLRDataLengthPK1))))
                        .addContainerGap())))
        );

        pgLinearReadWrite1.addTab("LinearRead PK", tabLinearReadPK1);

        lblWriteData1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblWriteData1.setText("Write Data");

        txtLinearWrite1.setColumns(20);
        txtLinearWrite1.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N
        txtLinearWrite1.setLineWrap(true);
        txtLinearWrite1.setRows(10);
        txtLinearWrite1.setAutoscrolls(false);
        jScrollPane13.setViewportView(txtLinearWrite1);

        lblLWLinearAddress1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLWLinearAddress1.setText("Linear Address");

        txtLWLinearAddress1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLWLinearAddress1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLWLinearAddress1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblLWDataLength1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLWDataLength1.setText("Data Length");

        txtLWDataLength1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLWDataLength1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLWDataLength1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblBytesWritten1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblBytesWritten1.setText("Bytes Written");

        txtBytesWritten1.setEditable(false);
        txtBytesWritten1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtBytesWritten1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtBytesWritten1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        btnLinearWrite1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        btnLinearWrite1.setText("WRITE");
        btnLinearWrite1.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        btnLinearWrite1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnLinearWrite1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout tabLinearWrite1Layout = new javax.swing.GroupLayout(tabLinearWrite1);
        tabLinearWrite1.setLayout(tabLinearWrite1Layout);
        tabLinearWrite1Layout.setHorizontalGroup(
            tabLinearWrite1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearWrite1Layout.createSequentialGroup()
                .addContainerGap(280, Short.MAX_VALUE)
                .addComponent(txtBytesWritten1, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(btnLinearWrite1, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(27, 27, 27))
            .addGroup(tabLinearWrite1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(tabLinearWrite1Layout.createSequentialGroup()
                    .addGap(12, 12, 12)
                    .addGroup(tabLinearWrite1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(tabLinearWrite1Layout.createSequentialGroup()
                            .addComponent(jScrollPane13, javax.swing.GroupLayout.PREFERRED_SIZE, 470, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addContainerGap())
                        .addGroup(tabLinearWrite1Layout.createSequentialGroup()
                            .addGroup(tabLinearWrite1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addGroup(javax.swing.GroupLayout.Alignment.LEADING, tabLinearWrite1Layout.createSequentialGroup()
                                    .addComponent(lblWriteData1)
                                    .addGap(417, 417, 417))
                                .addGroup(javax.swing.GroupLayout.Alignment.LEADING, tabLinearWrite1Layout.createSequentialGroup()
                                    .addGroup(tabLinearWrite1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addGroup(tabLinearWrite1Layout.createSequentialGroup()
                                            .addComponent(lblLWLinearAddress1)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                        .addGroup(tabLinearWrite1Layout.createSequentialGroup()
                                            .addComponent(lblLWDataLength1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                            .addGap(3, 3, 3)))
                                    .addGroup(tabLinearWrite1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                        .addComponent(txtLWDataLength1)
                                        .addComponent(txtLWLinearAddress1, javax.swing.GroupLayout.DEFAULT_SIZE, 47, Short.MAX_VALUE))
                                    .addGap(18, 18, 18)
                                    .addComponent(lblBytesWritten1)
                                    .addGap(224, 224, 224)))
                            .addGap(12, 12, 12)))))
        );
        tabLinearWrite1Layout.setVerticalGroup(
            tabLinearWrite1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearWrite1Layout.createSequentialGroup()
                .addContainerGap(183, Short.MAX_VALUE)
                .addGroup(tabLinearWrite1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearWrite1Layout.createSequentialGroup()
                        .addComponent(txtBytesWritten1, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(26, 26, 26))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearWrite1Layout.createSequentialGroup()
                        .addComponent(btnLinearWrite1, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap())))
            .addGroup(tabLinearWrite1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(tabLinearWrite1Layout.createSequentialGroup()
                    .addGap(9, 9, 9)
                    .addComponent(lblWriteData1)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(jScrollPane13, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(tabLinearWrite1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(tabLinearWrite1Layout.createSequentialGroup()
                            .addGap(30, 30, 30)
                            .addComponent(lblBytesWritten1)
                            .addGap(13, 13, 13))
                        .addGroup(tabLinearWrite1Layout.createSequentialGroup()
                            .addGroup(tabLinearWrite1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(txtLWLinearAddress1, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(lblLWLinearAddress1))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 83, Short.MAX_VALUE)
                            .addGroup(tabLinearWrite1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(txtLWDataLength1, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(lblLWDataLength1))))
                    .addContainerGap()))
        );

        pgLinearReadWrite1.addTab("Linear Write", tabLinearWrite1);

        pgLinearWriteAKM13.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N

        lblWriteDataAKM3.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblWriteDataAKM3.setText("Write Data");

        txtLinearWriteAKM3.setColumns(20);
        txtLinearWriteAKM3.setEditable(false);
        txtLinearWriteAKM3.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N
        txtLinearWriteAKM3.setLineWrap(true);
        txtLinearWriteAKM3.setRows(10);
        txtLinearWriteAKM3.setAutoscrolls(false);
        jScrollPane14.setViewportView(txtLinearWriteAKM3);

        lblLWLinearAddressAKM3.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLWLinearAddressAKM3.setText("Linear Address");

        txtLWLinearAddressAKM3.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLWLinearAddressAKM3.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLWLinearAddressAKM3.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblLWDataLengthAKM3.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLWDataLengthAKM3.setText("Data Length");

        txtLWDataLengthAKM3.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLWDataLengthAKM3.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLWDataLengthAKM3.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblbytesWrittenAKM2.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblbytesWrittenAKM2.setText("Bytes Written");

        txtBytesWrittenAKM3.setEditable(false);
        txtBytesWrittenAKM3.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtBytesWrittenAKM3.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtBytesWrittenAKM3.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        btnLinearWriteAKM3.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        btnLinearWriteAKM3.setText("WRITE");
        btnLinearWriteAKM3.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        btnLinearWriteAKM3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnLinearWriteAKM3ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout tabLinearWriteAKM3Layout = new javax.swing.GroupLayout(tabLinearWriteAKM3);
        tabLinearWriteAKM3.setLayout(tabLinearWriteAKM3Layout);
        tabLinearWriteAKM3Layout.setHorizontalGroup(
            tabLinearWriteAKM3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearWriteAKM3Layout.createSequentialGroup()
                .addGap(10, 10, 10)
                .addGroup(tabLinearWriteAKM3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(lblWriteDataAKM3)
                    .addComponent(jScrollPane14, javax.swing.GroupLayout.DEFAULT_SIZE, 482, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearWriteAKM3Layout.createSequentialGroup()
                        .addGroup(tabLinearWriteAKM3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(tabLinearWriteAKM3Layout.createSequentialGroup()
                                .addComponent(lblLWLinearAddressAKM3)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addGroup(tabLinearWriteAKM3Layout.createSequentialGroup()
                                .addComponent(lblLWDataLengthAKM3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addGap(3, 3, 3)))
                        .addGroup(tabLinearWriteAKM3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addComponent(txtLWDataLengthAKM3)
                            .addComponent(txtLWLinearAddressAKM3, javax.swing.GroupLayout.DEFAULT_SIZE, 47, Short.MAX_VALUE))
                        .addGap(26, 26, 26)
                        .addComponent(lblbytesWrittenAKM2)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(txtBytesWrittenAKM3, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(btnLinearWriteAKM3, javax.swing.GroupLayout.PREFERRED_SIZE, 162, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(14, 14, 14)))
                .addGap(94, 94, 94))
        );
        tabLinearWriteAKM3Layout.setVerticalGroup(
            tabLinearWriteAKM3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearWriteAKM3Layout.createSequentialGroup()
                .addComponent(lblWriteDataAKM3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane14, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(tabLinearWriteAKM3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btnLinearWriteAKM3, javax.swing.GroupLayout.DEFAULT_SIZE, 115, Short.MAX_VALUE)
                    .addGroup(tabLinearWriteAKM3Layout.createSequentialGroup()
                        .addGap(12, 12, 12)
                        .addGroup(tabLinearWriteAKM3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(txtBytesWrittenAKM3, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(lblbytesWrittenAKM2))
                        .addGap(16, 16, 16))
                    .addGroup(tabLinearWriteAKM3Layout.createSequentialGroup()
                        .addGroup(tabLinearWriteAKM3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(txtLWLinearAddressAKM3, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(lblLWLinearAddressAKM3))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 56, Short.MAX_VALUE)
                        .addGroup(tabLinearWriteAKM3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(txtLWDataLengthAKM3, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(lblLWDataLengthAKM3))))
                .addContainerGap())
        );

        pgLinearWriteAKM13.addTab("LinearWrite AKM1", tabLinearWriteAKM3);

        lblWriteDataAKM4.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblWriteDataAKM4.setText("Write Data");

        txtLinearWriteAKM4.setColumns(20);
        txtLinearWriteAKM4.setEditable(false);
        txtLinearWriteAKM4.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N
        txtLinearWriteAKM4.setLineWrap(true);
        txtLinearWriteAKM4.setRows(10);
        txtLinearWriteAKM4.setAutoscrolls(false);
        jScrollPane15.setViewportView(txtLinearWriteAKM4);

        lblLWLinearAddressAKM4.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLWLinearAddressAKM4.setText("Linear Address");

        txtLWLinearAddressAKM4.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLWLinearAddressAKM4.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLWLinearAddressAKM4.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblLWDataLengthAKM4.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLWDataLengthAKM4.setText("Data Length");

        txtLWDataLengthAKM4.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLWDataLengthAKM4.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLWDataLengthAKM4.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lbBytesWrittenAKM3.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lbBytesWrittenAKM3.setText("Bytes Written");

        txtBytesWrittenAKM4.setEditable(false);
        txtBytesWrittenAKM4.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtBytesWrittenAKM4.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtBytesWrittenAKM4.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        btnLinearWriteAKM4.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        btnLinearWriteAKM4.setText("WRITE");
        btnLinearWriteAKM4.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        btnLinearWriteAKM4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnLinearWriteAKM4ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout tabLinearWriteAKM4Layout = new javax.swing.GroupLayout(tabLinearWriteAKM4);
        tabLinearWriteAKM4.setLayout(tabLinearWriteAKM4Layout);
        tabLinearWriteAKM4Layout.setHorizontalGroup(
            tabLinearWriteAKM4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearWriteAKM4Layout.createSequentialGroup()
                .addGap(10, 10, 10)
                .addGroup(tabLinearWriteAKM4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(lblWriteDataAKM4)
                    .addComponent(jScrollPane15, javax.swing.GroupLayout.DEFAULT_SIZE, 482, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearWriteAKM4Layout.createSequentialGroup()
                        .addGroup(tabLinearWriteAKM4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(tabLinearWriteAKM4Layout.createSequentialGroup()
                                .addComponent(lblLWLinearAddressAKM4)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addGroup(tabLinearWriteAKM4Layout.createSequentialGroup()
                                .addComponent(lblLWDataLengthAKM4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addGap(3, 3, 3)))
                        .addGroup(tabLinearWriteAKM4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addComponent(txtLWDataLengthAKM4)
                            .addComponent(txtLWLinearAddressAKM4, javax.swing.GroupLayout.DEFAULT_SIZE, 47, Short.MAX_VALUE))
                        .addGap(26, 26, 26)
                        .addComponent(lbBytesWrittenAKM3)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(txtBytesWrittenAKM4, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(btnLinearWriteAKM4, javax.swing.GroupLayout.PREFERRED_SIZE, 162, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(14, 14, 14)))
                .addGap(94, 94, 94))
        );
        tabLinearWriteAKM4Layout.setVerticalGroup(
            tabLinearWriteAKM4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearWriteAKM4Layout.createSequentialGroup()
                .addComponent(lblWriteDataAKM4)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane15, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(tabLinearWriteAKM4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btnLinearWriteAKM4, javax.swing.GroupLayout.DEFAULT_SIZE, 115, Short.MAX_VALUE)
                    .addGroup(tabLinearWriteAKM4Layout.createSequentialGroup()
                        .addGap(12, 12, 12)
                        .addGroup(tabLinearWriteAKM4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(txtBytesWrittenAKM4, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(lbBytesWrittenAKM3))
                        .addGap(16, 16, 16))
                    .addGroup(tabLinearWriteAKM4Layout.createSequentialGroup()
                        .addGroup(tabLinearWriteAKM4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(txtLWLinearAddressAKM4, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(lblLWLinearAddressAKM4))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 56, Short.MAX_VALUE)
                        .addGroup(tabLinearWriteAKM4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(txtLWDataLengthAKM4, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(lblLWDataLengthAKM4))))
                .addContainerGap())
        );

        pgLinearWriteAKM13.addTab("LinearWrite AKM2", tabLinearWriteAKM4);

        javax.swing.GroupLayout tabLinearWriteAKM13Layout = new javax.swing.GroupLayout(tabLinearWriteAKM13);
        tabLinearWriteAKM13.setLayout(tabLinearWriteAKM13Layout);
        tabLinearWriteAKM13Layout.setHorizontalGroup(
            tabLinearWriteAKM13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(pgLinearWriteAKM13, javax.swing.GroupLayout.DEFAULT_SIZE, 507, Short.MAX_VALUE)
        );
        tabLinearWriteAKM13Layout.setVerticalGroup(
            tabLinearWriteAKM13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(pgLinearWriteAKM13)
        );

        pgLinearReadWrite1.addTab("LinearWrite AKM1/AKM2", tabLinearWriteAKM13);

        lblWriteDataPK1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblWriteDataPK1.setText("Write Data");

        txtLinearWritePK1.setColumns(20);
        txtLinearWritePK1.setEditable(false);
        txtLinearWritePK1.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N
        txtLinearWritePK1.setLineWrap(true);
        txtLinearWritePK1.setRows(10);
        txtLinearWritePK1.setAutoscrolls(false);
        jScrollPane16.setViewportView(txtLinearWritePK1);

        lblLWLinearAddressPK1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLWLinearAddressPK1.setText("Linear Address");

        txtLWLinearAddressPK1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLWLinearAddressPK1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLWLinearAddressPK1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblLWDataLengthPK1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblLWDataLengthPK1.setText("Data Length");

        txtLWDataLengthPK1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtLWDataLengthPK1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtLWDataLengthPK1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        lblBytesWrittenPK1.setFont(new java.awt.Font("Verdana", 0, 11)); // NOI18N
        lblBytesWrittenPK1.setText("Bytes Written");

        txtBytesWrittenPK1.setEditable(false);
        txtBytesWrittenPK1.setFont(new java.awt.Font("Verdana", 1, 12)); // NOI18N
        txtBytesWrittenPK1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtBytesWrittenPK1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        btnLinearWritePK1.setFont(new java.awt.Font("Verdana", 1, 11)); // NOI18N
        btnLinearWritePK1.setText("WRITE");
        btnLinearWritePK1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnLinearWritePK1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout tabLinearWritePK1Layout = new javax.swing.GroupLayout(tabLinearWritePK1);
        tabLinearWritePK1.setLayout(tabLinearWritePK1Layout);
        tabLinearWritePK1Layout.setHorizontalGroup(
            tabLinearWritePK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearWritePK1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(tabLinearWritePK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(tabLinearWritePK1Layout.createSequentialGroup()
                        .addComponent(jScrollPane16, javax.swing.GroupLayout.DEFAULT_SIZE, 476, Short.MAX_VALUE)
                        .addContainerGap())
                    .addGroup(tabLinearWritePK1Layout.createSequentialGroup()
                        .addComponent(lblWriteDataPK1)
                        .addContainerGap(425, Short.MAX_VALUE))
                    .addGroup(tabLinearWritePK1Layout.createSequentialGroup()
                        .addGroup(tabLinearWritePK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(lblLWDataLengthPK1, javax.swing.GroupLayout.DEFAULT_SIZE, 124, Short.MAX_VALUE)
                            .addComponent(lblLWLinearAddressPK1))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(tabLinearWritePK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(txtLWLinearAddressPK1, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(txtLWDataLengthPK1, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addComponent(lblBytesWrittenPK1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(txtBytesWrittenPK1, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(btnLinearWritePK1, javax.swing.GroupLayout.PREFERRED_SIZE, 128, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(8, 8, 8))))
        );
        tabLinearWritePK1Layout.setVerticalGroup(
            tabLinearWritePK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tabLinearWritePK1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(lblWriteDataPK1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane16, javax.swing.GroupLayout.PREFERRED_SIZE, 83, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGroup(tabLinearWritePK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, tabLinearWritePK1Layout.createSequentialGroup()
                        .addGap(21, 21, 21)
                        .addGroup(tabLinearWritePK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(lblBytesWrittenPK1)
                            .addComponent(txtBytesWrittenPK1, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(tabLinearWritePK1Layout.createSequentialGroup()
                        .addGap(6, 6, 6)
                        .addGroup(tabLinearWritePK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(btnLinearWritePK1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabLinearWritePK1Layout.createSequentialGroup()
                                .addGroup(tabLinearWritePK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(txtLWLinearAddressPK1, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(lblLWLinearAddressPK1))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addGroup(tabLinearWritePK1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(txtLWDataLengthPK1, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(lblLWDataLengthPK1))))))
                .addGap(169, 169, 169))
        );

        pgLinearReadWrite1.addTab("LinearWrite_PK", tabLinearWritePK1);

        javax.swing.GroupLayout jInternalFrame1Layout = new javax.swing.GroupLayout(jInternalFrame1.getContentPane());
        jInternalFrame1.getContentPane().setLayout(jInternalFrame1Layout);
        jInternalFrame1Layout.setHorizontalGroup(
            jInternalFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(pnlHeader1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addComponent(stbFunction1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addGroup(jInternalFrame1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(pgLinearReadWrite1, javax.swing.GroupLayout.PREFERRED_SIZE, 501, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        jInternalFrame1Layout.setVerticalGroup(
            jInternalFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jInternalFrame1Layout.createSequentialGroup()
                .addComponent(pnlHeader1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(pgLinearReadWrite1, javax.swing.GroupLayout.PREFERRED_SIZE, 288, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(stbFunction1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(stbFunction, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addComponent(pnlHeader, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(pgLinearReadWrite, javax.swing.GroupLayout.PREFERRED_SIZE, 516, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(27, Short.MAX_VALUE))
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(0, 276, Short.MAX_VALUE)
                    .addComponent(jInternalFrame1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(0, 277, Short.MAX_VALUE)))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(pnlHeader, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(pgLinearReadWrite, javax.swing.GroupLayout.PREFERRED_SIZE, 285, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 21, Short.MAX_VALUE)
                .addComponent(stbFunction, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(0, 179, Short.MAX_VALUE)
                    .addComponent(jInternalFrame1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(0, 179, Short.MAX_VALUE)))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) {//GEN-FIRST:event_formInternalFrameOpened
        GL.CreateKey(312, 5, 31, 29, "txtPKKey", pnlHeader);
    }//GEN-LAST:event_formInternalFrameOpened

    private void btnLinearReadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLinearReadActionPerformed
        frmMain M = new frmMain();
        if (M.functionOn) {
            return;
        }
        new frmMain().ReaderOff();
        if (M.thread_start) {
            M.ReaderOn();
            M.functionOn = false;
            return;
        }
        
        byte[] read_data = new byte[MAX_BYTES + 1];
        short linear_address = 0;
        short data_length = 0;
        byte auth_mode = 0;
        byte key_index = 0;
        ShortByReference bytes_ret = new ShortByReference();
        try {
            if (txtLRLinearAddress.getText().trim().isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, "You must enter LINEAR ADDRESS !", "Warning", JOptionPane.WARNING_MESSAGE);
                txtLRLinearAddress.requestFocus();
                return;
            }
            if (txtLRDataLength.getText().trim().isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, "You must enter DATA LENGTH!", "Warning", JOptionPane.WARNING_MESSAGE);
                txtLRDataLength.requestFocus();
                return;
            }

            key_index = (byte) cboKeyIndex.getSelectedIndex();
            if (rbAUTH1A.isSelected()) {
                auth_mode = AUTH1A;
            } else {
                auth_mode = AUTH1B;
            }
            linear_address = Short.parseShort(txtLRLinearAddress.getText());
            data_length = Short.parseShort(txtLRDataLength.getText());
            txtReadBytes.setText("");
            result = UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.LinearRead(read_data, linear_address, data_length, bytes_ret, auth_mode, key_index);
            if (result == DL_OK) {
                if (chkAscii.isSelected()) {
                    for (int br = 0; br < data_length; br++) {
                        if (read_data[br] < 32) {
                            read_data[br] = 127;
                        }
                    }
                }
                txtLinearRead.setText(new String(read_data, 0, data_length));
                txtReadBytes.setText(Short.toString(bytes_ret.getValue()));
                UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.ReaderUISignal(RES_LIGHT_OK, RES_SOUND_OK);
                GL.ERRORS_CODE(result, lblFunction_code, lblFunction_explain);
            } else {
                txtLinearRead.setText(new String(read_data, 0, data_length));
                txtReadBytes.setText(Short.toString(bytes_ret.getValue()));
                UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.ReaderUISignal(ERR_LIGHT, ERR_SOUND);
                GL.ERRORS_CODE(result, lblFunction_code, lblFunction_explain);
            }
        } catch (NumberFormatException e) {
            JOptionPane.showMessageDialog(rootPane, APPROPRIATE_FORMAT, "Error !", JOptionPane.ERROR_MESSAGE);
        } finally {
            M.ReaderOn();
            M.functionOn = false;
        }

    }//GEN-LAST:event_btnLinearReadActionPerformed

    private void btnLinearReadAKM1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLinearReadAKM1ActionPerformed
        frmMain M = new frmMain();
        if (M.functionOn) {
            return;
        }
        M.ReaderOff();
        if (M.thread_start) {
            M.ReaderOn();
            M.functionOn = false;
            return;
        }
        byte[] read_data = new byte[MAX_BYTES];
        short linear_address = 0;
        short data_length = 0;
        byte auth_mode = 0;
        ShortByReference bytes_ret = new ShortByReference();
        try {
            if (txtLRLinearAddressAKM1.getText().trim().isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, "You must enter LINEAR ADDRESS !", "Warning", JOptionPane.WARNING_MESSAGE);
                txtLRLinearAddressAKM1.requestFocus();
                return;
            }
            if (txtLRDataLengthAKM1.getText().trim().isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, "You must enter DATA LENGTH !", "Warning", JOptionPane.WARNING_MESSAGE);
                txtLRDataLengthAKM1.requestFocus();
                return;
            }

            if (rbAUTH1A.isSelected()) {
                auth_mode = AUTH1A;
            } else {
                auth_mode = AUTH1B;
            }
            linear_address = Short.parseShort(txtLRLinearAddressAKM1.getText());
            data_length = Short.parseShort(txtLRDataLengthAKM1.getText());
            txtReadBytesAKM1.setText("");
            result = UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.LinearRead_AKM1(read_data, linear_address, data_length, bytes_ret, auth_mode);
            if (result == DL_OK) {
                if (chkAsciiAKM1.isSelected()) {
                    for (int br = 0; br < data_length; br++) {
                        if (read_data[br] < 32) {
                            read_data[br] = 127;
                        }
                    }
                }

                txtLinearReadAKM1.setText(new String(read_data, 0, data_length));
                txtReadBytesAKM1.setText(Short.toString(bytes_ret.getValue()));
                UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.ReaderUISignal(RES_LIGHT_OK, RES_SOUND_OK);
                GL.ERRORS_CODE(result, lblFunction_code, lblFunction_explain);
            } else {

                txtLinearReadAKM1.setText(new String(read_data, 0, data_length));
                txtReadBytesAKM1.setText(Short.toString(bytes_ret.getValue()));
                UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.ReaderUISignal(ERR_LIGHT, ERR_SOUND);
                GL.ERRORS_CODE(result, lblFunction_code, lblFunction_explain);
            }
        } catch (NumberFormatException e) {
            JOptionPane.showMessageDialog(rootPane, APPROPRIATE_FORMAT, "Error !", JOptionPane.ERROR_MESSAGE);
        } finally {
            M.ReaderOn();
            M.functionOn = false;
        }
    }//GEN-LAST:event_btnLinearReadAKM1ActionPerformed

    private void btnLinearWriteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLinearWriteActionPerformed
        frmMain M = new frmMain();
        if (M.functionOn) {
            return;
        }
        M.ReaderOff();
        if (M.thread_start) {
            M.ReaderOn();
            M.functionOn = false;
            return;
        }
        byte[] write_data = new byte[MAX_BYTES];
        short linear_address = 0;
        short data_length = 0;
        byte key_index = 0;
        byte auth_mode = 0;
        ShortByReference bytes_written = new ShortByReference();
        try {
            if (txtLinearWrite.getText().trim().isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, ANY_DATA, "Warning !", JOptionPane.WARNING_MESSAGE);
                txtLinearWrite.requestFocus();
                return;
            }
            if (txtLWLinearAddress.getText().trim().isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, "You must enter LINEAR ADDRESS !", "Warning !", JOptionPane.WARNING_MESSAGE);
                txtLWLinearAddress.requestFocus();
                return;
            }
            if (txtLWDataLength.getText().trim().isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, "You must enter DATA LENGTH !", "Warning !", JOptionPane.WARNING_MESSAGE);
                txtLWDataLength.requestFocus();
                return;
            }
            key_index = (byte) cboKeyIndex.getSelectedIndex();
            if (rbAUTH1A.isSelected()) {
                auth_mode = AUTH1A;
            } else {
                auth_mode = AUTH1B;
            }
            linear_address = Short.parseShort(txtLWLinearAddress.getText());
            data_length = Short.parseShort(txtLWDataLength.getText());

            txtBytesWritten.setText("");
            write_data = txtLinearWrite.getText().getBytes();
            result = UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.LinearWrite(new Global().WriteArray(write_data, data_length, MAX_BYTES), linear_address, data_length, bytes_written, auth_mode, key_index);
            if (result == DL_OK) {
                txtBytesWritten.setText(Short.toString(bytes_written.getValue()));
                UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.ReaderUISignal(RES_LIGHT_OK, RES_SOUND_OK);
                GL.ERRORS_CODE(result, lblFunction_code, lblFunction_explain);

            } else {
                txtBytesWritten.setText(Short.toString(bytes_written.getValue()));
                UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.ReaderUISignal(ERR_LIGHT, ERR_SOUND);
                GL.ERRORS_CODE(result, lblFunction_code, lblFunction_explain);
            }
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(rootPane, APPROPRIATE_FORMAT, "Error !", JOptionPane.ERROR_MESSAGE);
        } finally {
            M.ReaderOn();
            M.functionOn = false;
        }

    }//GEN-LAST:event_btnLinearWriteActionPerformed

    private void btnLinearWriteAKM1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLinearWriteAKM1ActionPerformed
        frmMain M = new frmMain();
        if (M.functionOn) {
            return;
        }
        M.ReaderOff();
        if (M.thread_start) {
            M.ReaderOn();
            M.functionOn = false;
            return;
        }
        byte[] write_data = new byte[MAX_BYTES];
        short linear_address = 0;
        short data_length = 0;
        byte auth_mode = 0;
        ShortByReference bytes_written = new ShortByReference();
        try {
            if (txtLinearWriteAKM1.getText().trim().isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, ANY_DATA, "Warning !", JOptionPane.WARNING_MESSAGE);
                txtLinearWriteAKM1.requestFocus();
                return;
            }
            if (txtLWLinearAddressAKM1.getText().trim().isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, "You must enter LINEAR ADDRESS !", "Warning !", JOptionPane.WARNING_MESSAGE);
                txtLWLinearAddressAKM1.requestFocus();
                return;
            }
            if (txtLWDataLengthAKM1.getText().trim().isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, "You must enter DATA LENGTH !", "Warning !", JOptionPane.WARNING_MESSAGE);
                txtLWDataLengthAKM1.requestFocus();
                return;
            }

            if (rbAUTH1A.isSelected()) {
                auth_mode = AUTH1A;
            } else {
                auth_mode = AUTH1B;
            }
            linear_address = Short.parseShort(txtLWLinearAddressAKM1.getText());
            data_length = Short.parseShort(txtLWDataLengthAKM1.getText());

            txtBytesWrittenAKM1.setText("");
            write_data = txtLinearWriteAKM1.getText().getBytes();
            result = UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.LinearWrite_AKM1(new Global().WriteArray(write_data, data_length, MAX_BYTES), linear_address, data_length, bytes_written, auth_mode);
            if (result == DL_OK) {
                txtBytesWrittenAKM1.setText(Short.toString(bytes_written.getValue()));
                UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.ReaderUISignal(RES_LIGHT_OK, RES_SOUND_OK);
                GL.ERRORS_CODE(result, lblFunction_code, lblFunction_explain);

            } else {
                txtBytesWrittenAKM1.setText(Short.toString(bytes_written.getValue()));
                UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.ReaderUISignal(ERR_LIGHT, ERR_SOUND);
                GL.ERRORS_CODE(result, lblFunction_code, lblFunction_explain);
            }
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(rootPane, APPROPRIATE_FORMAT, "Error !", JOptionPane.ERROR_MESSAGE);
        } finally {
            M.ReaderOn();
            M.functionOn = false;
        }
    }//GEN-LAST:event_btnLinearWriteAKM1ActionPerformed

    private void btnLinearRead1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLinearRead1ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_btnLinearRead1ActionPerformed

    private void btnLinearReadAKM3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLinearReadAKM3ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_btnLinearReadAKM3ActionPerformed

    private void btnLinearReadAKM4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLinearReadAKM4ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_btnLinearReadAKM4ActionPerformed

    private void btnLinearReadPK1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLinearReadPK1ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_btnLinearReadPK1ActionPerformed

    private void btnLinearWrite1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLinearWrite1ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_btnLinearWrite1ActionPerformed

    private void btnLinearWriteAKM3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLinearWriteAKM3ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_btnLinearWriteAKM3ActionPerformed

    private void btnLinearWriteAKM4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLinearWriteAKM4ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_btnLinearWriteAKM4ActionPerformed

    private void btnLinearWritePK1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLinearWritePK1ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_btnLinearWritePK1ActionPerformed

    private void jInternalFrame1formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) {//GEN-FIRST:event_jInternalFrame1formInternalFrameOpened
        // TODO add your handling code here:
    }//GEN-LAST:event_jInternalFrame1formInternalFrameOpened

    private void btnLinearReadAKM2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLinearReadAKM2ActionPerformed
        frmMain M = new frmMain();
        if (M.functionOn) {
            return;
        }
        M.ReaderOff();
        if (M.thread_start) {
            M.ReaderOn();
            M.functionOn = false;
            return;
        }
        byte[] read_data = new byte[MAX_BYTES];
        short linear_address = 0;
        short data_length = 0;
        byte auth_mode = 0;
        ShortByReference bytes_ret = new ShortByReference();
        try {
            if (txtLRLinearAddressAKM2.getText().trim().isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, "You must enter LINEAR ADDRESS !", "Warning", JOptionPane.WARNING_MESSAGE);
                txtLRLinearAddressAKM2.requestFocus();
                return;
            }
            if (txtLRDataLengthAKM2.getText().trim().isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, "You must enter DATA LENGTH !", "Warning", JOptionPane.WARNING_MESSAGE);
                txtLRDataLengthAKM1.requestFocus();
                return;
            }

            if (rbAUTH1A.isSelected()) {
                auth_mode = AUTH1A;
            } else {
                auth_mode = AUTH1B;
            }
            linear_address = Short.parseShort(txtLRLinearAddressAKM2.getText());
            data_length = Short.parseShort(txtLRDataLengthAKM2.getText());
            txtReadBytesAKM2.setText("");
            result = UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.LinearRead_AKM2(read_data, linear_address, data_length, bytes_ret, auth_mode);
            if (result == DL_OK) {
                if (chkAsciiAKM2.isSelected()) {
                    for (int br = 0; br < data_length; br++) {
                        if (read_data[br] < 32) {
                            read_data[br] = 127;
                        }
                    }
                }
                txtLinearReadAKM2.setText(new String(read_data, 0, data_length));
                txtReadBytesAKM2.setText(Short.toString(bytes_ret.getValue()));
                UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.ReaderUISignal(RES_LIGHT_OK, RES_SOUND_OK);
                GL.ERRORS_CODE(result, lblFunction_code, lblFunction_explain);
            } else {

                txtLinearReadAKM2.setText(new String(read_data, 0, data_length));
                txtReadBytesAKM2.setText(Integer.toString(bytes_ret.getValue()));
                UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.ReaderUISignal(ERR_LIGHT, ERR_SOUND);
                GL.ERRORS_CODE(result, lblFunction_code, lblFunction_explain);
            }
        } catch (NumberFormatException e) {
            JOptionPane.showMessageDialog(rootPane, APPROPRIATE_FORMAT, "Error !", JOptionPane.ERROR_MESSAGE);
        } finally {
            M.ReaderOn();
            M.functionOn = false;
        }
    }//GEN-LAST:event_btnLinearReadAKM2ActionPerformed

    private void btnLinearReadPKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLinearReadPKActionPerformed
        frmMain M = new frmMain();
        if (M.functionOn) {
            return;
        }
        M.ReaderOff();
        if (M.thread_start) {
            M.ReaderOn();
            M.functionOn = false;
            return;
        }
        byte[] read_data = new byte[MAX_BYTES];
        short linear_address = 0;
        short data_length = 0;
        byte auth_mode = 0;
        ShortByReference bytes_ret = new ShortByReference();
        try {
            if (txtLRLinearAddressPK.getText().trim().isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, "You must enter LINEAR ADDRESS !", "Warning", JOptionPane.WARNING_MESSAGE);
                txtLRLinearAddressPK.requestFocus();
                return;
            }
            if (txtLRDataLengthPK.getText().trim().isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, "You must enter DATA LENGTH !", "Warning", JOptionPane.WARNING_MESSAGE);
                txtLRDataLengthPK.requestFocus();
                return;
            }

            if (rbAUTH1A.isSelected()) {
                auth_mode = AUTH1A;
            } else {
                auth_mode = AUTH1B;
            }
            linear_address = Short.parseShort(txtLRLinearAddressPK.getText());
            data_length = Short.parseShort(txtLRDataLengthPK.getText());
            txtReadBytesPK.setText("");
            result = UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.LinearRead_PK(read_data, linear_address, data_length, bytes_ret, auth_mode, GL.PK_KEY(pnlHeader));
            if (result == DL_OK) {
                if (chkAsciiPK.isSelected()) {
                    for (int br = 0; br < data_length; br++) {
                        if (read_data[br] < 32) {
                            read_data[br] = 127;
                        }
                    }
                }

                txtLinearReadPK.setText(new String(read_data, 0, data_length));
                txtReadBytesPK.setText(Short.toString(bytes_ret.getValue()));
                UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.ReaderUISignal(RES_LIGHT_OK, RES_SOUND_OK);
                GL.ERRORS_CODE(result, lblFunction_code, lblFunction_explain);
            } else {

                txtLinearReadPK.setText(new String(read_data, 0, data_length));
                txtReadBytesPK.setText(Short.toString(bytes_ret.getValue()));
                UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.ReaderUISignal(ERR_LIGHT, ERR_SOUND);
                GL.ERRORS_CODE(result, lblFunction_code, lblFunction_explain);
            }
        } catch (NumberFormatException e) {
            JOptionPane.showMessageDialog(rootPane, APPROPRIATE_FORMAT, "Error !", JOptionPane.ERROR_MESSAGE);
        } finally {
            M.ReaderOn();
            M.functionOn = false;
        }
    }//GEN-LAST:event_btnLinearReadPKActionPerformed

    private void btnLinearWriteAKM2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLinearWriteAKM2ActionPerformed
        frmMain M = new frmMain();
        if (M.functionOn) {
            return;
        }
        M.ReaderOff();
        if (M.thread_start) {
            M.ReaderOn();
            M.functionOn = false;
            return;
        }
        byte[] write_data = new byte[MAX_BYTES];
        short linear_address = 0;
        short data_length = 0;
        byte auth_mode = 0;
        ShortByReference bytes_written = new ShortByReference();
        try {
            if (txtLinearWriteAKM2.getText().trim().isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, ANY_DATA, "Warning !", JOptionPane.WARNING_MESSAGE);
                txtLinearWriteAKM2.requestFocus();
                return;
            }
            if (txtLWLinearAddressAKM2.getText().trim().isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, "You must enter LINEAR ADDRESS !", "Warning !", JOptionPane.WARNING_MESSAGE);
                txtLWLinearAddressAKM2.requestFocus();
                return;
            }
            if (txtLWDataLengthAKM2.getText().trim().isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, "You must enter DATA LENGTH !", "Warning !", JOptionPane.WARNING_MESSAGE);
                txtLWDataLengthAKM2.requestFocus();
                return;
            }

            if (rbAUTH1A.isSelected()) {
                auth_mode = AUTH1A;
            } else {
                auth_mode = AUTH1B;
            }
            linear_address = Short.parseShort(txtLWLinearAddressAKM2.getText());
            data_length = Short.parseShort(txtLWDataLengthAKM2.getText());

            txtBytesWrittenAKM2.setText("");
            write_data = txtLinearWriteAKM2.getText().getBytes();
            result = UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.LinearWrite_AKM2(new Global().WriteArray(write_data, data_length, MAX_BYTES), linear_address, data_length, bytes_written, auth_mode);
            if (result == DL_OK) {
                txtBytesWrittenAKM2.setText(Short.toString(bytes_written.getValue()));
                UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.ReaderUISignal(RES_LIGHT_OK, RES_SOUND_OK);
                GL.ERRORS_CODE(result, lblFunction_code, lblFunction_explain);

            } else {
                txtBytesWrittenAKM2.setText(Short.toString(bytes_written.getValue()));
                UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.ReaderUISignal(ERR_LIGHT, ERR_SOUND);
                GL.ERRORS_CODE(result, lblFunction_code, lblFunction_explain);
            }
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(rootPane, APPROPRIATE_FORMAT, "Error !", JOptionPane.ERROR_MESSAGE);
        } finally {
            M.ReaderOn();
            M.functionOn = false;
        }
    }//GEN-LAST:event_btnLinearWriteAKM2ActionPerformed

    private void btnLinearWritePKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLinearWritePKActionPerformed
        frmMain M = new frmMain();
        if (M.functionOn) {
            return;
        }
        M.ReaderOff();
        if (M.thread_start) {
            M.ReaderOn();
            M.functionOn = false;
            return;
        }
        byte[] write_data = new byte[MAX_BYTES];
        short linear_address = 0;
        short data_length = 0;
        byte auth_mode = 0;
        ShortByReference bytes_written = new ShortByReference();
        try {
            if (txtLinearWritePK.getText().trim().isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, ANY_DATA, "Warning !", JOptionPane.WARNING_MESSAGE);
                txtLinearWritePK.requestFocus();
                return;
            }
            if (txtLWLinearAddressPK.getText().trim().isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, "You must enter LINEAR ADDRESS !", "Warning !", JOptionPane.WARNING_MESSAGE);
                txtLWLinearAddressPK.requestFocus();
                return;
            }
            if (txtLWDataLengthPK.getText().trim().isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, "You must enter DATA LENGTH !", "Warning !", JOptionPane.WARNING_MESSAGE);
                txtLWDataLengthPK.requestFocus();
                return;
            }

            if (rbAUTH1A.isSelected()) {
                auth_mode = AUTH1A;
            } else {
                auth_mode = AUTH1B;
            }
            linear_address = Short.parseShort(txtLWLinearAddressPK.getText());
            data_length = Short.parseShort(txtLWDataLengthPK.getText());
            txtBytesWrittenPK.setText("");
            write_data = txtLinearWritePK.getText().getBytes();
            result = UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.LinearWrite_PK(new Global().WriteArray(write_data, data_length, MAX_BYTES), linear_address, data_length, bytes_written, auth_mode, GL.PK_KEY(pnlHeader));
            if (result == DL_OK) {
                txtBytesWrittenPK.setText(Short.toString(bytes_written.getValue()));
                UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.ReaderUISignal(RES_LIGHT_OK, RES_SOUND_OK);
                GL.ERRORS_CODE(result, lblFunction_code, lblFunction_explain);
            } else {
                txtBytesWrittenPK.setText(Short.toString(bytes_written.getValue()));
                UFRCoderWrapper.UFRCoderDeclaration.UFRInstance.ReaderUISignal(ERR_LIGHT, ERR_SOUND);
                GL.ERRORS_CODE(result, lblFunction_code, lblFunction_explain);
            }
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(rootPane, APPROPRIATE_FORMAT, "Error !", JOptionPane.ERROR_MESSAGE);
        } finally {
            M.ReaderOn();
            M.functionOn = false;
        }
}//GEN-LAST:event_btnLinearWritePKActionPerformed
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.ButtonGroup btnGroup;
    private javax.swing.JButton btnLinearRead;
    private javax.swing.JButton btnLinearRead1;
    private javax.swing.JButton btnLinearReadAKM1;
    private javax.swing.JButton btnLinearReadAKM2;
    private javax.swing.JButton btnLinearReadAKM3;
    private javax.swing.JButton btnLinearReadAKM4;
    private javax.swing.JButton btnLinearReadPK;
    private javax.swing.JButton btnLinearReadPK1;
    private javax.swing.JButton btnLinearWrite;
    private javax.swing.JButton btnLinearWrite1;
    private javax.swing.JButton btnLinearWriteAKM1;
    private javax.swing.JButton btnLinearWriteAKM2;
    private javax.swing.JButton btnLinearWriteAKM3;
    private javax.swing.JButton btnLinearWriteAKM4;
    private javax.swing.JButton btnLinearWritePK;
    private javax.swing.JButton btnLinearWritePK1;
    private javax.swing.JComboBox cboKeyIndex;
    private javax.swing.JComboBox cboKeyIndex1;
    private javax.swing.JCheckBox chkAscii;
    private javax.swing.JCheckBox chkAscii1;
    private javax.swing.JCheckBox chkAsciiAKM1;
    private javax.swing.JCheckBox chkAsciiAKM2;
    private javax.swing.JCheckBox chkAsciiAKM3;
    private javax.swing.JCheckBox chkAsciiAKM4;
    private javax.swing.JCheckBox chkAsciiPK;
    private javax.swing.JCheckBox chkAsciiPK1;
    private javax.swing.JInternalFrame jInternalFrame1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane10;
    private javax.swing.JScrollPane jScrollPane11;
    private javax.swing.JScrollPane jScrollPane12;
    private javax.swing.JScrollPane jScrollPane13;
    private javax.swing.JScrollPane jScrollPane14;
    private javax.swing.JScrollPane jScrollPane15;
    private javax.swing.JScrollPane jScrollPane16;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JScrollPane jScrollPane5;
    private javax.swing.JScrollPane jScrollPane6;
    private javax.swing.JScrollPane jScrollPane7;
    private javax.swing.JScrollPane jScrollPane8;
    private javax.swing.JScrollPane jScrollPane9;
    private javax.swing.JLabel lbBytesWrittenAKM3;
    private javax.swing.JLabel lblBytesWritten;
    private javax.swing.JLabel lblBytesWritten1;
    private javax.swing.JLabel lblBytesWrittenPK;
    private javax.swing.JLabel lblBytesWrittenPK1;
    private javax.swing.JLabel lblFunctionError;
    private javax.swing.JLabel lblFunctionError1;
    private javax.swing.JLabel lblFunction_code;
    private javax.swing.JLabel lblFunction_code1;
    private javax.swing.JLabel lblFunction_explain;
    private javax.swing.JLabel lblFunction_explain1;
    private javax.swing.JLabel lblKeyIndex;
    private javax.swing.JLabel lblKeyIndex1;
    private javax.swing.JLabel lblLRDataLength;
    private javax.swing.JLabel lblLRDataLength1;
    private javax.swing.JLabel lblLRDataLengthAKM1;
    private javax.swing.JLabel lblLRDataLengthAKM2;
    private javax.swing.JLabel lblLRDataLengthAKM3;
    private javax.swing.JLabel lblLRDataLengthAKM4;
    private javax.swing.JLabel lblLRDataLengthPK;
    private javax.swing.JLabel lblLRDataLengthPK1;
    private javax.swing.JLabel lblLRLinearAddress;
    private javax.swing.JLabel lblLRLinearAddress1;
    private javax.swing.JLabel lblLRLinearAddressAKM1;
    private javax.swing.JLabel lblLRLinearAddressAKM2;
    private javax.swing.JLabel lblLRLinearAddressAKM3;
    private javax.swing.JLabel lblLRLinearAddressAKM4;
    private javax.swing.JLabel lblLRLinearAddressPK;
    private javax.swing.JLabel lblLRLinearAddressPK1;
    private javax.swing.JLabel lblLRReadData;
    private javax.swing.JLabel lblLRReadData1;
    private javax.swing.JLabel lblLRReadDataAKM1;
    private javax.swing.JLabel lblLRReadDataAKM2;
    private javax.swing.JLabel lblLRReadDataAKM3;
    private javax.swing.JLabel lblLRReadDataAKM4;
    private javax.swing.JLabel lblLRReadDataPK;
    private javax.swing.JLabel lblLRReadDataPK1;
    private javax.swing.JLabel lblLWDataLength;
    private javax.swing.JLabel lblLWDataLength1;
    private javax.swing.JLabel lblLWDataLengthAKM1;
    private javax.swing.JLabel lblLWDataLengthAKM2;
    private javax.swing.JLabel lblLWDataLengthAKM3;
    private javax.swing.JLabel lblLWDataLengthAKM4;
    private javax.swing.JLabel lblLWDataLengthPK;
    private javax.swing.JLabel lblLWDataLengthPK1;
    private javax.swing.JLabel lblLWLinearAddress;
    private javax.swing.JLabel lblLWLinearAddress1;
    private javax.swing.JLabel lblLWLinearAddressAKM1;
    private javax.swing.JLabel lblLWLinearAddressAKM2;
    private javax.swing.JLabel lblLWLinearAddressAKM3;
    private javax.swing.JLabel lblLWLinearAddressAKM4;
    private javax.swing.JLabel lblLWLinearAddressPK;
    private javax.swing.JLabel lblLWLinearAddressPK1;
    private javax.swing.JLabel lblReadBytes;
    private javax.swing.JLabel lblReadBytes1;
    private javax.swing.JLabel lblReadBytesAKM1;
    private javax.swing.JLabel lblReadBytesAKM2;
    private javax.swing.JLabel lblReadBytesAKM3;
    private javax.swing.JLabel lblReadBytesAKM4;
    private javax.swing.JLabel lblReadBytesPK;
    private javax.swing.JLabel lblReadBytesPK1;
    private javax.swing.JPanel lblReadData;
    private javax.swing.JPanel lblReadData1;
    private javax.swing.JLabel lblWriteData;
    private javax.swing.JLabel lblWriteData1;
    private javax.swing.JLabel lblWriteDataAKM1;
    private javax.swing.JLabel lblWriteDataAKM2;
    private javax.swing.JLabel lblWriteDataAKM3;
    private javax.swing.JLabel lblWriteDataAKM4;
    private javax.swing.JLabel lblWriteDataPK;
    private javax.swing.JLabel lblWriteDataPK1;
    private javax.swing.JLabel lblbytesWrittenAKM1;
    private javax.swing.JLabel lblbytesWrittenAKM2;
    private javax.swing.JLabel lblbytesWrittenAKM3;
    private javax.swing.JTabbedPane pgLinearReadAKM12;
    private javax.swing.JTabbedPane pgLinearReadAKM13;
    private javax.swing.JTabbedPane pgLinearReadWrite;
    private javax.swing.JTabbedPane pgLinearReadWrite1;
    private javax.swing.JTabbedPane pgLinearWriteAKM12;
    private javax.swing.JTabbedPane pgLinearWriteAKM13;
    private javax.swing.JPanel pnlHeader;
    private javax.swing.JPanel pnlHeader1;
    private javax.swing.JRadioButton rbAUTH1A;
    private javax.swing.JRadioButton rbAUTH1A1;
    private javax.swing.JRadioButton rbAUTH1B;
    private javax.swing.JRadioButton rbAUTH1B1;
    private javax.swing.JPanel stbFunction;
    private javax.swing.JPanel stbFunction1;
    private javax.swing.JPanel tabLinearReadAKM1;
    private javax.swing.JPanel tabLinearReadAKM12;
    private javax.swing.JPanel tabLinearReadAKM13;
    private javax.swing.JPanel tabLinearReadAKM2;
    private javax.swing.JPanel tabLinearReadAKM3;
    private javax.swing.JPanel tabLinearReadAKM4;
    private javax.swing.JPanel tabLinearReadPK;
    private javax.swing.JPanel tabLinearReadPK1;
    private javax.swing.JPanel tabLinearWrite;
    private javax.swing.JPanel tabLinearWrite1;
    private javax.swing.JPanel tabLinearWriteAKM1;
    private javax.swing.JPanel tabLinearWriteAKM12;
    private javax.swing.JPanel tabLinearWriteAKM13;
    private javax.swing.JPanel tabLinearWriteAKM2;
    private javax.swing.JPanel tabLinearWriteAKM3;
    private javax.swing.JPanel tabLinearWriteAKM4;
    private javax.swing.JPanel tabLinearWritePK;
    private javax.swing.JPanel tabLinearWritePK1;
    private javax.swing.JTextField txtBytesWritten;
    private javax.swing.JTextField txtBytesWritten1;
    private javax.swing.JTextField txtBytesWrittenAKM1;
    private javax.swing.JTextField txtBytesWrittenAKM2;
    private javax.swing.JTextField txtBytesWrittenAKM3;
    private javax.swing.JTextField txtBytesWrittenAKM4;
    private javax.swing.JTextField txtBytesWrittenPK;
    private javax.swing.JTextField txtBytesWrittenPK1;
    private javax.swing.JTextField txtLRDataLength;
    private javax.swing.JTextField txtLRDataLength1;
    private javax.swing.JTextField txtLRDataLengthAKM1;
    private javax.swing.JTextField txtLRDataLengthAKM2;
    private javax.swing.JTextField txtLRDataLengthAKM3;
    private javax.swing.JTextField txtLRDataLengthAKM4;
    private javax.swing.JTextField txtLRDataLengthPK;
    private javax.swing.JTextField txtLRDataLengthPK1;
    private javax.swing.JTextField txtLRLinearAddress;
    private javax.swing.JTextField txtLRLinearAddress1;
    private javax.swing.JTextField txtLRLinearAddressAKM1;
    private javax.swing.JTextField txtLRLinearAddressAKM2;
    private javax.swing.JTextField txtLRLinearAddressAKM3;
    private javax.swing.JTextField txtLRLinearAddressAKM4;
    private javax.swing.JTextField txtLRLinearAddressPK;
    private javax.swing.JTextField txtLRLinearAddressPK1;
    private javax.swing.JTextField txtLWDataLength;
    private javax.swing.JTextField txtLWDataLength1;
    private javax.swing.JTextField txtLWDataLengthAKM1;
    private javax.swing.JTextField txtLWDataLengthAKM2;
    private javax.swing.JTextField txtLWDataLengthAKM3;
    private javax.swing.JTextField txtLWDataLengthAKM4;
    private javax.swing.JTextField txtLWDataLengthPK;
    private javax.swing.JTextField txtLWDataLengthPK1;
    private javax.swing.JTextField txtLWLinearAddress;
    private javax.swing.JTextField txtLWLinearAddress1;
    private javax.swing.JTextField txtLWLinearAddressAKM1;
    private javax.swing.JTextField txtLWLinearAddressAKM2;
    private javax.swing.JTextField txtLWLinearAddressAKM3;
    private javax.swing.JTextField txtLWLinearAddressAKM4;
    private javax.swing.JTextField txtLWLinearAddressPK;
    private javax.swing.JTextField txtLWLinearAddressPK1;
    private javax.swing.JTextArea txtLinearRead;
    private javax.swing.JTextArea txtLinearRead1;
    private javax.swing.JTextArea txtLinearReadAKM1;
    private javax.swing.JTextArea txtLinearReadAKM2;
    private javax.swing.JTextArea txtLinearReadAKM3;
    private javax.swing.JTextArea txtLinearReadAKM4;
    private javax.swing.JTextArea txtLinearReadPK;
    private javax.swing.JTextArea txtLinearReadPK1;
    private javax.swing.JTextArea txtLinearWrite;
    private javax.swing.JTextArea txtLinearWrite1;
    private javax.swing.JTextArea txtLinearWriteAKM1;
    private javax.swing.JTextArea txtLinearWriteAKM2;
    private javax.swing.JTextArea txtLinearWriteAKM3;
    private javax.swing.JTextArea txtLinearWriteAKM4;
    private javax.swing.JTextArea txtLinearWritePK;
    private javax.swing.JTextArea txtLinearWritePK1;
    private javax.swing.JTextField txtReadBytes;
    private javax.swing.JTextField txtReadBytes1;
    private javax.swing.JTextField txtReadBytesAKM1;
    private javax.swing.JTextField txtReadBytesAKM2;
    private javax.swing.JTextField txtReadBytesAKM3;
    private javax.swing.JTextField txtReadBytesAKM4;
    private javax.swing.JTextField txtReadBytesPK;
    private javax.swing.JTextField txtReadBytesPK1;
    // End of variables declaration//GEN-END:variables
}
