// Path: src/se/bitcraze/crazyflie/lib/crtp/CrtpPort.java
// public enum CrtpPort {
//     CONSOLE(0),
//     PARAMETERS(2),
//     COMMANDER(3),
//     MEMORY(4),
//     LOGGING(5),
//     COMMANDER_GENERIC(7),
//     DEBUGDRIVER(14),
//     LINKCTRL(15),
//     ALL(255),
//     UNKNOWN(-1); //FIXME
// 
//     private byte mNumber;
// 
//     private CrtpPort(int number) {
//         this.mNumber = (byte) number;
//     }
// 
//     /**
//      * Get the number associated with this port.
//      *
//      * @return the number of the port
//      */
//     public byte getNumber() {
//         return mNumber;
//     }
// 
//     /**
//      * Get the port with a specific number.
//      *
//      * @param number
//      *            the number of the port.
//      * @return the port or <code>null</code> if no port with the specified number exists.
//      */
//     public static CrtpPort getByNumber(byte number) {
//         for (CrtpPort p : CrtpPort.values()) {
//             if (p.getNumber() == number) {
//                 return p;
//             }
//         }
//         return null;
//     }
// }


import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.annotation.JsonIgnore;
import se.bitcraze.crazyflie.lib.crtp.CrtpPort;
import java.nio.charset.Charset;
import org.slf4j.Logger;
/**
 *    ||          ____  _ __
 * +------+      / __ )(_) /_______________ _____  ___
 * | 0xBC |     / __  / / __/ ___/ ___/ __ `/_  / / _ \
 * +------+    / /_/ / / /_/ /__/ /  / /_/ / / /_/  __/
 *  ||  ||    /_____/_/\__/\___/_/   \__,_/ /___/\___/
 *
 * Copyright (C) 2015 Bitcraze AB
 *
 * Crazyflie Nano Quadcopter Client
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 *
 */

package se.bitcraze.crazyflie.lib.toc;





/**
 * An element in the TOC
 *
 */
public class TocElement implements Comparable<TocElement> {

    final Logger mLogger = LoggerFactory.getLogger("TocElement");

    public static final int RW_ACCESS = 1;
    public static final int RO_ACCESS = 0;

    private int mIdent = 0;
    private String mGroup = "";
    private String mName = "";
    private VariableType mCtype;
    private int mAccess = RO_ACCESS;

    public TocElement() {
    }

    /**
     * TocElement creator
     *
     * @param data the binary payload of the element
     */
// Path: src/se/bitcraze/crazyflie/lib/crtp/CrtpPort.java
// public enum CrtpPort {
//     CONSOLE(0),
//     PARAMETERS(2),
//     COMMANDER(3),
//     MEMORY(4),
//     LOGGING(5),
//     COMMANDER_GENERIC(7),
//     DEBUGDRIVER(14),
//     LINKCTRL(15),
//     ALL(255),
//     UNKNOWN(-1); //FIXME
// 
//     private byte mNumber;
// 
//     private CrtpPort(int number) {
//         this.mNumber = (byte) number;
//     }
// 
//     /**
//      * Get the number associated with this port.
//      *
//      * @return the number of the port
//      */
//     public byte getNumber() {
//         return mNumber;
//     }
// 
//     /**
//      * Get the port with a specific number.
//      *
//      * @param number
//      *            the number of the port.
//      * @return the port or <code>null</code> if no port with the specified number exists.
//      */
//     public static CrtpPort getByNumber(byte number) {
//         for (CrtpPort p : CrtpPort.values()) {
//             if (p.getNumber() == number) {
//                 return p;
//             }
//         }
//         return null;
//     }
// }


// Path: src/se/bitcraze/crazyflie/lib/toc/TocElement.java
import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.annotation.JsonIgnore;
import se.bitcraze.crazyflie.lib.crtp.CrtpPort;
import java.nio.charset.Charset;
import org.slf4j.Logger;

/**
 *    ||          ____  _ __
 * +------+      / __ )(_) /_______________ _____  ___
 * | 0xBC |     / __  / / __/ ___/ ___/ __ `/_  / / _ \
 * +------+    / /_/ / / /_/ /__/ /  / /_/ / / /_/  __/
 *  ||  ||    /_____/_/\__/\___/_/   \__,_/ /___/\___/
 *
 * Copyright (C) 2015 Bitcraze AB
 *
 * Crazyflie Nano Quadcopter Client
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 *
 */

package se.bitcraze.crazyflie.lib.toc;





/**
 * An element in the TOC
 *
 */
public class TocElement implements Comparable<TocElement> {

    final Logger mLogger = LoggerFactory.getLogger("TocElement");

    public static final int RW_ACCESS = 1;
    public static final int RO_ACCESS = 0;

    private int mIdent = 0;
    private String mGroup = "";
    private String mName = "";
    private VariableType mCtype;
    private int mAccess = RO_ACCESS;

    public TocElement() {
    }

    /**
     * TocElement creator
     *
     * @param data the binary payload of the element
     */
    public TocElement(CrtpPort port, byte[] data) {