c#:GUID指定的值超出范围

c#:GUID指定的值超出范围,c#,bluetooth-lowenergy,C#,Bluetooth Lowenergy,我使用的是心率不稳定的windows 8.1示例 当我使用以下两种GUI时,一切都正常: <Capabilities> <Capability Name="internetClient" /> <m2:DeviceCapability Name="bluetooth.genericAttributeProfile"> <m2:Device Id="any"> <m2:Function Type="

我使用的是心率不稳定的windows 8.1示例

当我使用以下两种GUI时,一切都正常:

 <Capabilities>
    <Capability Name="internetClient" />
    <m2:DeviceCapability Name="bluetooth.genericAttributeProfile">
      <m2:Device Id="any">
        <m2:Function Type="name:heartRate"/>
        <m2:Function Type="serviceId:b329392a-fbcd-49aa-a823-3e87680ac33b" />
      </m2:Device>
      <m2:Device Id="any">
        <m2:Function Type="name:genericAccess"/>
        <m2:Function Type="serviceId:ea2a0bd9-8296-4088-a995-3533b5b33941" />
      </m2:Device>
    </m2:DeviceCapability>
  </Capabilities>
对于这一行代码:

characteristic.Add(device.Name, s.GetCharacteristics(CHARACTERISTIC_UUID_R2)[CHARACTERISTIC_INDEX]);
为什么

eef3f149-d420-4468-9def-1046fdcfe25e
1a9d4963-e715-4f6e-9e07-4febf538f6a6 
抛出一个错误而其他两个guid没有

b329392a-fbcd-49aa-a823-3e87680ac33b
ea2a0bd9-8296-4088-a995-3533b5b33941
使用工作GUID进行调试时:

Debug.WriteLine(s.GetCharacteristics(CHARACTERISTIC_UUID_R2).Count);
它打印:

1

但使用新的eef3f149-d420-4468-9def-1046fdcfe25e1a9d4963-e715-4f6e-9e07-4febf538f6a6它打印:

0
答复:

我明白了。我把GUID和特征UUID搞混了。对于我的设备:

GUID:b329392a-fbcd-49aa-a823-3e87680ac33b
特性UUDI:b329392b-fbcd-49aa-a823-3e87680ac33b

如果使用c#,则ab中的差异可能会得到这样的新Guid值

var guidValue = Guid.NewGuid();
更新:

您的GUID有效,请尝试以下操作:

  var guidValue = Guid.Parse("b329392a-fbcd-49aa-a823-3e87680ac33b");
  Console.WriteLine(guidValue.ToString());

“eef3f149-d420-4468-9def-1046fdcfe25e”和“1a9d4963-e715-4f6e-9e07-4febf538f6a6”也有效

如果您使用的是c#,则可以获得这样的新Guid值

var guidValue = Guid.NewGuid();
更新:

您的GUID有效,请尝试以下操作:

  var guidValue = Guid.Parse("b329392a-fbcd-49aa-a823-3e87680ac33b");
  Console.WriteLine(guidValue.ToString());

“eef3f149-d420-4468-9def-1046fdcfe25e”和“1a9d4963-e715-4f6e-9e07-4febf538f6a6”也有效



如果该XML显示Id 1和2,并且您通过了3,那么除了超出范围的参数之外,您还希望看到什么?接受的值是1和2,不要试图通过3,并期望它工作不确定你的意思。我编辑了这个问题,以展示我是如何更改XML以包含新的GUI的。我所更改的只是GUID,当我这样做时,它会失败。设备可以连接,我可以打印设备名称,但特征计数为0这是整个XML吗?XML中是否有DTD语句或对外部名称空间的引用?请不要编辑问题以包含答案,而是发布实际答案并将其标记为Accepted如果XML显示Id 1和2,并且您通过了3,除了参数超出范围之外,您希望得到什么?接受的值是1和2,不要试图通过3,并期望它工作不确定你的意思。我编辑了这个问题,以展示我是如何更改XML以包含新的GUI的。我所更改的只是GUID,当我这样做时,它会失败。设备可以连接,我可以打印设备名称,但特征计数为0这是整个XML吗?XML中是否有任何DTD语句或对外部命名空间的引用?请不要编辑问题以包含答案,而是发布实际答案并将其标记为acceptedI将尝试此操作。所以你认为我的GUID生成不正确?是的,我已经验证b329392a-fbcd-49aa-a823-3e87680ac33b工作正常,但其他两个不正确:“1a9d4963-e715-4f6e-9e07-4febf538f6a6”是有效的。GUID是有效的,你可以看到图片,如果你正在使用BLE库,它可能有问题。谢谢你的帮助。GUID是有效的,因此我能够发现我的特征值也必须更改。我将尝试此操作。所以你认为我的GUID生成不正确?是的,我已经验证b329392a-fbcd-49aa-a823-3e87680ac33b工作正常,但其他两个不正确:“1a9d4963-e715-4f6e-9e07-4febf538f6a6”是有效的。GUID是有效的,你可以看到图片,如果你正在使用BLE库,它可能有问题。谢谢你的帮助。GUID是有效的,因此我能够发现我的特征值也必须更改。