bobst 发表于 2015-4-14 18:19:47

MobBob 3D打印机器人 表示蓝牙连不上

本帖最后由 bobst 于 2015-4-15 10:17 编辑



MobBob:用智能手机做身体的3D打印机器人
http://letsmakerobots.com/robot/project/mobbob-mobile-phone-bob



蓝牙 HC-05
爪机android 5.0
连不上原作的app
求解、、


apk打包 http://pan.baidu.com/s/1sjyotEP

nick_zm 发表于 2015-4-14 23:52:28

先看看手机能不能能不能扫描到蓝牙模块,用蓝牙助手之类的app传数据看看,可行的话再看mobbob的app

suoma 发表于 2015-4-15 09:50:01

手机开启蓝牙   解决了吗?

bobst 发表于 2015-4-15 10:15:15

本帖最后由 bobst 于 2015-4-15 10:37 编辑

nick_zm 发表于 2015-4-14 23:52 static/image/common/back.gif
先看看手机能不能能不能扫描到蓝牙模块,用蓝牙助手之类的app传数据看看,可行的话再看mobbob的app

1.安卓系统上已连接HC05
2.PC串口AT 可用
vcc---3v
txo--rx0
rx0-tx0
GND--GND
3.蓝牙助手app 这样发AT是不对的吧? hc05要设置成AT模式?
蓝牙助手这样发木反应、、

bobst 发表于 2015-4-15 10:24:42

本帖最后由 bobst 于 2015-4-15 10:31 编辑

suoma 发表于 2015-4-15 09:50 static/image/common/back.gif
手机开启蓝牙   解决了吗?

打开了 安卓系统里连上HC05了 原作app连不上

问下蓝牙AT、、
按住按钮,然后上电。看到灯慢闪就是at模式了。
楼上图是这样发AT的么? 表示也没反应、、 PC 发AT可以、、

suoma 发表于 2015-4-15 10:45:16

蓝牙模块要配置成slave模式

HuaShine2015 发表于 2015-4-15 13:03:28

从原作者网页信息看需要蓝牙4.0的模块才能支持,HC-05才蓝牙2.0
The current app is setup to work with DFRobot Bluno boards. It should work with any of them (there are a bunch of different ones...). The app connects using the Bluno's Bluetooth LE GATT profile
我反编译了一下其中一个Android的apk,从释出的源代码看确实是用BLE协议,而且会抓固定uuid的设备package com.shatalmic.unityandroidbluetoothlelib;

import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothAdapter.LeScanCallback;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCallback;
import android.bluetooth.BluetoothGattCharacteristic;
import android.bluetooth.BluetoothGattDescriptor;
import android.bluetooth.BluetoothGattService;
import android.bluetooth.BluetoothManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.os.Parcelable;
import android.util.Base64;
import android.util.Log;
import com.unity3d.player.UnityPlayer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicBoolean;

public class UnityBluetoothLE
{
protected static final UUID CHARACTERISTIC_UPDATE_NOTIFICATION_DESCRIPTOR_UUID = UUID.fromString("00002902-0000-1000-8000-00805f9b34fb");
public static final String TAG = "UnityBluetoothLE";
public static UnityBluetoothLE _instance;
private final BroadcastReceiver ActionFoundReceiver = new BroadcastReceiver()
{
    public void onReceive(Context paramContext, Intent paramIntent)
    {
      BluetoothDevice localBluetoothDevice;
      Parcelable[] arrayOfParcelable;
      int i;
      if ("android.bluetooth.device.action.UUID".equals(paramIntent.getAction()))
      {
      UnityBluetoothLE.this.androidBluetoothLog("got action_uuid");
      if (UnityBluetoothLE.this.uuidList != null)
      {
          localBluetoothDevice = (BluetoothDevice)paramIntent.getParcelableExtra("android.bluetooth.device.extra.DEVICE");
          arrayOfParcelable = paramIntent.getParcelableArrayExtra("android.bluetooth.device.extra.UUID");
          if ((localBluetoothDevice == null) || (arrayOfParcelable == null))
            break label144;
          i = arrayOfParcelable.length;
      }
      }
      for (int j = 0; ; j++)
      {
      if (j >= i)
          return;
      String str = arrayOfParcelable.toString();
      UnityBluetoothLE.this.androidBluetoothLog("checking uuid " + str);
      if (!UnityBluetoothLE.this.uuidList.contains(UnityBluetoothLE.this.getFullBluetoothLEUUID(str)))
          continue;
      UnityBluetoothLE.this.sendDiscoveredDevice(localBluetoothDevice);
      }
      label144: if (localBluetoothDevice != null)
      UnityBluetoothLE.this.androidBluetoothLog("device: " + localBluetoothDevice.getAddress());
      while (arrayOfParcelable != null)
      {
      UnityBluetoothLE.this.androidBluetoothLog("uuid count: " + arrayOfParcelable.length);
      return;
      UnityBluetoothLE.this.androidBluetoothLog("device is null");
      }
      UnityBluetoothLE.this.androidBluetoothLog("uuidExtra is null");
    }
};
private Map<String, BluetoothGatt> deviceGattMap = null;
private Map<String, BluetoothDevice> deviceMap = null;
private BluetoothAdapter mBluetoothAdapter;
private Context mContext = null;
private final BluetoothGattCallback mGattCallback = new BluetoothGattCallback()
{
    public void onCharacteristicChanged(BluetoothGatt paramBluetoothGatt, BluetoothGattCharacteristic paramBluetoothGattCharacteristic)
    {
      byte[] arrayOfByte = paramBluetoothGattCharacteristic.getValue();
      if (arrayOfByte != null)
      {
      String str = Base64.encodeToString(arrayOfByte, 0);
      UnityBluetoothLE.UnitySend("DidUpdateValueForCharacteristic~" + paramBluetoothGattCharacteristic.getUuid() + "~" + str);
      }
    }

    public void onCharacteristicRead(BluetoothGatt paramBluetoothGatt, BluetoothGattCharacteristic paramBluetoothGattCharacteristic, int paramInt)
    {
      if (paramInt == 0)
      {
      byte[] arrayOfByte = paramBluetoothGattCharacteristic.getValue();
      if (arrayOfByte != null)
      {
          String str = Base64.encodeToString(arrayOfByte, 0);
          UnityBluetoothLE.UnitySend("DidUpdateValueForCharacteristic~" + paramBluetoothGattCharacteristic.getUuid() + "~" + str);
      }
      }
    }

    public void onCharacteristicWrite(BluetoothGatt paramBluetoothGatt, BluetoothGattCharacteristic paramBluetoothGattCharacteristic, int paramInt)
    {
      if (paramInt == 0)
      {
      UnityBluetoothLE.UnitySend("DidWriteCharacteristic~" + paramBluetoothGattCharacteristic.getUuid());
      return;
      }
      UnityBluetoothLE.UnitySend("Error~Response - failed to write characteristic: " + paramInt);
    }

    public void onConnectionStateChange(BluetoothGatt paramBluetoothGatt, int paramInt1, int paramInt2)
    {
      UnityBluetoothLE.this.androidBluetoothLog("onConnectionStateChange");
      String str = paramBluetoothGatt.getDevice().getAddress();
      if (paramInt2 == 2)
      {
      if (UnityBluetoothLE.this.deviceGattMap == null)
          UnityBluetoothLE.this.deviceGattMap = new HashMap();
      UnityBluetoothLE.this.deviceGattMap.put(str, paramBluetoothGatt);
      UnityBluetoothLE.UnitySend("ConnectedPeripheral~" + str);
      paramBluetoothGatt.discoverServices();
      }
      do
      return;
      while (paramInt2 != 0);
      UnityBluetoothLE.UnitySend("DisconnectedPeripheral~" + str);
    }

    public void onDescriptorWrite(BluetoothGatt paramBluetoothGatt, BluetoothGattDescriptor paramBluetoothGattDescriptor, int paramInt)
    {
      if (paramInt == 0)
      {
      UnityBluetoothLE.this.androidBluetoothLog("onDescriptorWrite Success");
      if ((paramBluetoothGattDescriptor != null) && (paramBluetoothGattDescriptor.getCharacteristic() != null) && (paramBluetoothGattDescriptor.getCharacteristic().getUuid() != null))
      {
          UnityBluetoothLE.UnitySend("DidUpdateNotificationStateForCharacteristic~" + paramBluetoothGattDescriptor.getCharacteristic().getUuid());
          return;
      }
      UnityBluetoothLE.UnitySend("Error~Descriptor Write Failed: characterstic or uuid blank");
      return;
      }
      UnityBluetoothLE.UnitySend("Error~Descriptor Write Failed: " + paramInt);
    }

    public void onServicesDiscovered(BluetoothGatt paramBluetoothGatt, int paramInt)
    {
      if (paramInt == 0)
      {
      UnityBluetoothLE.this.androidBluetoothLog("Services Discovered");
      List localList = paramBluetoothGatt.getServices();
      String str;
      Iterator localIterator1;
      if (localList != null)
      {
          str = paramBluetoothGatt.getDevice().getAddress();
          localIterator1 = localList.iterator();
      }
      while (true)
      {
          if (!localIterator1.hasNext())
            return;
          BluetoothGattService localBluetoothGattService = (BluetoothGattService)localIterator1.next();
          UnityBluetoothLE.UnitySend("DiscoveredService~" + str + "~" + localBluetoothGattService.getUuid());
          Iterator localIterator2 = localBluetoothGattService.getCharacteristics().iterator();
          while (localIterator2.hasNext())
          {
            BluetoothGattCharacteristic localBluetoothGattCharacteristic = (BluetoothGattCharacteristic)localIterator2.next();
            UnityBluetoothLE.UnitySend("DiscoveredCharacteristic~" + str + "~" + localBluetoothGattService.getUuid() + "~" + localBluetoothGattCharacteristic.getUuid());
          }
      }
      }
      UnityBluetoothLE.this.androidBluetoothLog("Error~Service Discovery " + paramInt);
    }
};
private BluetoothAdapter.LeScanCallback mLeScanCallback = new BluetoothAdapter.LeScanCallback()
{
    public void onLeScan(BluetoothDevice paramBluetoothDevice, int paramInt, byte[] paramArrayOfByte)
    {
      UnityBluetoothLE.this.sendDiscoveredDevice(paramBluetoothDevice);
    }
};
public AtomicBoolean mRunning = new AtomicBoolean();
private ArrayList<UUID> uuidList = null;

public static void UnitySend(String paramString)
{
    UnityPlayer.UnitySendMessage("BluetoothLEReceiver", "OnBluetoothMessage", paramString);
}

public static void UnitySend(byte[] paramArrayOfByte, int paramInt)
{
    UnityPlayer.UnitySendMessage("BluetoothLEReceiver", "OnBluetoothData", Base64.encodeToString(Arrays.copyOfRange(paramArrayOfByte, 0, paramInt), 0));
}

private UUID getFullBluetoothLEUUID(String paramString)
{
    if (paramString.length() == 4)
      return UUID.fromString("0000" + paramString + "-0000-1000-8000-00805F9B34FB");
    return UUID.fromString(paramString);
}

public static UnityBluetoothLE getInstance()
{
    if (_instance == null)
      _instance = new UnityBluetoothLE();
    return _instance;
}

private void sendDiscoveredDevice(BluetoothDevice paramBluetoothDevice)
{
    String str = "No Name";
    if (paramBluetoothDevice.getName() != null)
      str = paramBluetoothDevice.getName();
    if (this.deviceMap == null)
      this.deviceMap = new HashMap();
    this.deviceMap.put(paramBluetoothDevice.getAddress(), paramBluetoothDevice);
    UnitySend("DiscoveredPeripheral~" + paramBluetoothDevice.getAddress() + "~" + str);
}

public void androidBluetoothConnectToPeripheral(String paramString)
{
    if ((this.mBluetoothAdapter != null) && (this.deviceMap != null) && (this.mContext != null))
    {
      BluetoothDevice localBluetoothDevice = (BluetoothDevice)this.deviceMap.get(paramString);
      if (localBluetoothDevice != null)
      UnityPlayer.currentActivity.runOnUiThread(new Runnable(localBluetoothDevice)
      {
          public void run()
          {
            this.val$device.connectGatt(UnityBluetoothLE.this.mContext, false, UnityBluetoothLE.this.mGattCallback);
          }
      });
    }
}

public void androidBluetoothDeInitialize()
{
    Log.d("UnityBluetoothLE", "androidBluetoothDeInitialize");
    onDestroy();
    UnitySend("DeInitialized");
}

public void androidBluetoothDisconnectPeripheral(String paramString)
{
    if ((this.mBluetoothAdapter != null) && (this.deviceGattMap != null) && (this.mContext != null))
    {
      BluetoothGatt localBluetoothGatt = (BluetoothGatt)this.deviceGattMap.get(paramString);
      if (localBluetoothGatt != null)
      localBluetoothGatt.disconnect();
    }
}

public void androidBluetoothInitialize(boolean paramBoolean1, boolean paramBoolean2)
{
    Log.d("UnityBluetoothLE", "androidBluetoothInitialize");
    this.mContext = UnityPlayer.currentActivity.getApplicationContext();
    if (!this.mContext.getPackageManager().hasSystemFeature("android.hardware.bluetooth_le"))
    {
      UnitySend("Error~Bluetooth Low Energy Not Available");
      return;
    }
    this.uuidList = null;
    this.deviceMap = null;
    this.deviceGattMap = null;
    IntentFilter localIntentFilter = new IntentFilter("android.bluetooth.device.action.FOUND");
    localIntentFilter.addAction("android.bluetooth.device.action.UUID");
    localIntentFilter.addAction("android.bluetooth.adapter.action.DISCOVERY_STARTED");
    localIntentFilter.addAction("android.bluetooth.adapter.action.DISCOVERY_FINISHED");
    this.mContext.registerReceiver(this.ActionFoundReceiver, localIntentFilter);
    this.mBluetoothAdapter = ((BluetoothManager)this.mContext.getSystemService("bluetooth")).getAdapter();
    UnitySend("Initialized");
}

public void androidBluetoothLog(String paramString)
{
    Log.i("UnityBluetoothLE", paramString);
}

public void androidBluetoothPause(boolean paramBoolean)
{
}

public void androidBluetoothRetrieveListOfPeripheralsWithServices(String paramString)
{
    String[] arrayOfString;
    int i;
    if (this.mBluetoothAdapter != null)
    {
      this.uuidList = new ArrayList();
      if (!paramString.contains("|"))
      break label99;
      arrayOfString = paramString.split("|");
      if ((arrayOfString != null) && (arrayOfString.length > 0))
      {
      i = 0;
      if (i < arrayOfString.length)
          break label77;
      }
    }
    while (true)
    {
      androidBluetoothLog("getting bonded devices");
      UnityPlayer.currentActivity.runOnUiThread(new Runnable()
      {
      public void run()
      {
          Set localSet = UnityBluetoothLE.this.mBluetoothAdapter.getBondedDevices();
          Iterator localIterator;
          if ((localSet != null) && (localSet.size() > 0))
            localIterator = localSet.iterator();
          while (true)
          {
            if (!localIterator.hasNext())
            return;
            BluetoothDevice localBluetoothDevice = (BluetoothDevice)localIterator.next();
            if (localBluetoothDevice == null)
            continue;
            UnityBluetoothLE.this.androidBluetoothLog("got device " + localBluetoothDevice.getAddress());
            if (UnityBluetoothLE.this.uuidList.size() > 0)
            {
            localBluetoothDevice.fetchUuidsWithSdp();
            continue;
            }
            UnityBluetoothLE.this.sendDiscoveredDevice(localBluetoothDevice);
          }
      }
      });
      return;
      label77: this.uuidList.add(getFullBluetoothLEUUID(arrayOfString));
      i++;
      break;
      label99: if (paramString.length() <= 0)
      continue;
      this.uuidList.add(getFullBluetoothLEUUID(paramString));
    }
}

public void androidBluetoothScanForPeripheralsWithServices(String paramString)
{
    ArrayList localArrayList;
    String[] arrayOfString;
    int i;
    if (this.mBluetoothAdapter != null)
    {
      localArrayList = new ArrayList();
      if (paramString != null)
      {
      if (!paramString.contains("|"))
          break label118;
      arrayOfString = paramString.split("|");
      if ((arrayOfString != null) && (arrayOfString.length > 0))
      {
          i = 0;
          if (i < arrayOfString.length)
            break label98;
      }
      }
    }
    while (true)
    {
      if (localArrayList.size() <= 0)
      break label138;
      UUID[] arrayOfUUID = (UUID[])localArrayList.toArray(new UUID);
      this.mBluetoothAdapter.startLeScan(arrayOfUUID, this.mLeScanCallback);
      return;
      label98: localArrayList.add(getFullBluetoothLEUUID(arrayOfString));
      i++;
      break;
      label118: if (paramString.length() <= 0)
      continue;
      localArrayList.add(getFullBluetoothLEUUID(paramString));
    }
    label138: this.mBluetoothAdapter.startLeScan(this.mLeScanCallback);
}

public void androidBluetoothStopScan()
{
    if (this.mBluetoothAdapter != null)
      this.mBluetoothAdapter.stopLeScan(this.mLeScanCallback);
}

public void androidReadCharacteristic(String paramString1, String paramString2, String paramString3)
{
    if ((this.mBluetoothAdapter != null) && (this.deviceGattMap != null) && (this.mContext != null))
    {
      BluetoothGatt localBluetoothGatt = (BluetoothGatt)this.deviceGattMap.get(paramString1);
      if (localBluetoothGatt != null)
      {
      UUID localUUID1 = getUUID(paramString2);
      if (localUUID1 == null)
          break label131;
      BluetoothGattService localBluetoothGattService = localBluetoothGatt.getService(localUUID1);
      if (localBluetoothGattService == null)
          break label124;
      UUID localUUID2 = getUUID(paramString3);
      if (localUUID2 == null)
          break label117;
      BluetoothGattCharacteristic localBluetoothGattCharacteristic = localBluetoothGattService.getCharacteristic(localUUID2);
      if (localBluetoothGattCharacteristic == null)
          break label110;
      if (!localBluetoothGatt.readCharacteristic(localBluetoothGattCharacteristic))
          UnitySend("Error~Failed to read characteristic");
      }
    }
    return;
    label110: UnitySend("Error~Characteristic not found for Read");
    return;
    label117: UnitySend("Error~Not a Valid Characteristic UUID for Read");
    return;
    label124: UnitySend("Error~Service not found for Read");
    return;
    label131: UnitySend("Error~Not a Valid Service UUID for Read");
}

protected void androidSetCharacteristicNotification(String paramString1, String paramString2, String paramString3, boolean paramBoolean)
{
    androidBluetoothLog("1");
    BluetoothGatt localBluetoothGatt;
    BluetoothGattDescriptor localBluetoothGattDescriptor;
    if ((this.mBluetoothAdapter != null) && (this.deviceGattMap != null) && (this.mContext != null))
    {
      androidBluetoothLog("2");
      localBluetoothGatt = (BluetoothGatt)this.deviceGattMap.get(paramString1);
      if (localBluetoothGatt != null)
      {
      androidBluetoothLog("3");
      UUID localUUID1 = getUUID(paramString2);
      if (localUUID1 == null)
          break label268;
      androidBluetoothLog("4");
      BluetoothGattService localBluetoothGattService = localBluetoothGatt.getService(localUUID1);
      if (localBluetoothGattService == null)
          break label261;
      androidBluetoothLog("5");
      UUID localUUID2 = getUUID(paramString3);
      if (localUUID2 == null)
          break label254;
      androidBluetoothLog("6");
      BluetoothGattCharacteristic localBluetoothGattCharacteristic = localBluetoothGattService.getCharacteristic(localUUID2);
      if (localBluetoothGattCharacteristic == null)
          break label247;
      androidBluetoothLog("7");
      if (!localBluetoothGatt.setCharacteristicNotification(localBluetoothGattCharacteristic, true))
          break label240;
      androidBluetoothLog("8");
      localBluetoothGattDescriptor = localBluetoothGattCharacteristic.getDescriptor(CHARACTERISTIC_UPDATE_NOTIFICATION_DESCRIPTOR_UUID);
      if (localBluetoothGattDescriptor == null)
          break label233;
      androidBluetoothLog("9");
      if (!paramBoolean)
          break label217;
      }
    }
    label217: for (byte[] arrayOfByte = BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE; ; arrayOfByte = BluetoothGattDescriptor.DISABLE_NOTIFICATION_VALUE)
    {
      localBluetoothGattDescriptor.setValue(arrayOfByte);
      if (localBluetoothGatt.writeDescriptor(localBluetoothGattDescriptor))
      break;
      UnitySend("Error~Failed to write characteristic descriptor");
      return;
    }
    androidBluetoothLog("10");
    return;
    label233: UnitySend("Error~Failed to get notification descriptor");
    return;
    label240: UnitySend("Error~Failed to set characteristic notification");
    return;
    label247: UnitySend("Error~Characteristic not found for Subscribe");
    return;
    label254: UnitySend("Error~Not a Valid Characteristic UUID for Subscribe");
    return;
    label261: UnitySend("Error~Service not found for Subscribe");
    return;
    label268: UnitySend("Error~Not a Valid Service UUID for Subscribe");
}

public void androidSubscribeCharacteristic(String paramString1, String paramString2, String paramString3)
{
    androidBluetoothLog("subscribe characteristic");
    androidSetCharacteristicNotification(paramString1, paramString2, paramString3, true);
}

public void androidUnsubscribeCharacteristic(String paramString1, String paramString2, String paramString3)
{
    androidBluetoothLog("unsubscribe characteristic");
    androidSetCharacteristicNotification(paramString1, paramString2, paramString3, false);
}

public void androidWriteCharacteristic(String paramString1, String paramString2, String paramString3, byte[] paramArrayOfByte, int paramInt, boolean paramBoolean)
{
    BluetoothGatt localBluetoothGatt;
    BluetoothGattCharacteristic localBluetoothGattCharacteristic;
    if ((this.mBluetoothAdapter != null) && (this.deviceGattMap != null) && (this.mContext != null))
    {
      localBluetoothGatt = (BluetoothGatt)this.deviceGattMap.get(paramString1);
      if (localBluetoothGatt != null)
      {
      UUID localUUID1 = getUUID(paramString2);
      if (localUUID1 == null)
          break label167;
      BluetoothGattService localBluetoothGattService = localBluetoothGatt.getService(localUUID1);
      if (localBluetoothGattService == null)
          break label160;
      UUID localUUID2 = getUUID(paramString3);
      if (localUUID2 == null)
          break label153;
      localBluetoothGattCharacteristic = localBluetoothGattService.getCharacteristic(localUUID2);
      if (localBluetoothGattCharacteristic == null)
          break label146;
      androidBluetoothLog("write characteristic");
      localBluetoothGattCharacteristic.setValue(paramArrayOfByte);
      if (!paramBoolean)
          break label140;
      }
    }
    label140: for (int i = 2; ; i = 1)
    {
      localBluetoothGattCharacteristic.setWriteType(i);
      if (!localBluetoothGatt.writeCharacteristic(localBluetoothGattCharacteristic))
      UnitySend("Error~Failed to write characteristic");
      return;
    }
    label146: UnitySend("Error~Characteristic not found for Write");
    return;
    label153: UnitySend("Error~Not a Valid Characteristic UUID for Write");
    return;
    label160: UnitySend("Error~Service not found for Write");
    return;
    label167: UnitySend("Error~Not a Valid Service UUID for Write");
}

protected UUID getUUID(String paramString)
{
    UUID localUUID;
    if (paramString.length() == 36)
      localUUID = UUID.fromString(paramString);
    int i;
    do
    {
      return localUUID;
      i = paramString.length();
      localUUID = null;
    }
    while (i > 8);
    StringBuilder localStringBuilder = new StringBuilder();
    localStringBuilder.append("00000000", 0, 8 - paramString.length());
    localStringBuilder.append(paramString);
    localStringBuilder.append("-0000-1000-8000-00805f9b34fb");
    return UUID.fromString(localStringBuilder.toString());
}

public void onDestroy()
{
    if (this.mContext != null)
    {
      this.mContext.unregisterReceiver(this.ActionFoundReceiver);
      this.uuidList = null;
      this.deviceMap = null;
      this.deviceGattMap = null;
    }
}
}

nunulong 发表于 2015-4-15 15:56:05

高手,逆向工程好强大

bobst 发表于 2015-4-15 20:02:22

本帖最后由 bobst 于 2015-4-15 20:06 编辑

HuaShine2015 发表于 2015-4-15 13:03 static/image/common/back.gif
从原作者网页信息看需要蓝牙4.0的模块才能支持,HC-05才蓝牙2.0
The current app is setup to work with D ...

膜拜、、
1.unity3 用什么反编译的?

2.uuid是每个蓝牙独有的么,
用原作的appUUID.fromString("00002902-0000-1000-8000-00805f9b34fb");
这个UUID 要和蓝牙上的匹配才可以么?(app 蓝牙 uuid要一致?==)

3.CC2540 CC2541 RF-BM-S02这只4.0可以么、、//

HuaShine2015 发表于 2015-4-16 11:23:43

bobst 发表于 2015-4-15 20:02 static/image/common/back.gif
膜拜、、
1.unity3 用什么反编译的?



买一个4.0的蓝牙从模块就可以了,很便宜的
页: [1]
查看完整版本: MobBob 3D打印机器人 表示蓝牙连不上