/*static public int ArmCommandCallback(Comnet.Header header, Comnet.ABSPacket packet, Comnet.CommNode node)
         * {
         *  NGCP.ArmCommand ac = Comnet.ABSPacket.GetValue<NGCP.ArmCommand>(packet);
         *  //do some kind of switch case
         *  //@TODO ARM
         *  int servoPosition = ac.id;
         *  int servoValue = ac.position;
         *  //id_servo_GUI = ac.id;
         *  //val_servo_GUI = ac.position;
         *
         *
         *
         *  return (Int32)(Comnet.CallBackCodes.CALLBACK_SUCCESS | Comnet.CallBackCodes.CALLBACK_DESTROY_PACKET);
         *
         *
         * }*/


        static public int VehicleSystemStatusCallback(Comnet.Header header, Comnet.ABSPacket packet, Comnet.CommNode node)
        {
            NGCP.VehicleSystemStatus vss = Comnet.ABSPacket.GetValue <NGCP.VehicleSystemStatus>(packet);
            //State = (UGV.DriveState)vss.vehicle_state;
            //make sure you return this way to declare succes and destory the pointer(c++)
            return((Int32)(Comnet.CallBackCodes.CALLBACK_SUCCESS | Comnet.CallBackCodes.CALLBACK_DESTROY_PACKET));
        }
 public void sendDriveState(UGV.DriveState state, byte id = 1)
 {
     NGCP.VehicleSystemStatus vss = new NGCP.VehicleSystemStatus((byte)NodeID, 0, (byte)state);
     Node.Send(vss, id);
 }
 public void sendMode(UGV.DriveMode mode, byte id = 1)
 {
     NGCP.VehicleSystemStatus vss = new NGCP.VehicleSystemStatus((byte)NodeID, (byte)mode);
     Node.Send(vss, id);
 }