|
本帖最后由 inkfish321 于 2013-9-7 16:07 编辑
正在写一个BLE的上位机程序,但是NORDIC所给的例子只有C#,和DLL。提供C++的接口,但是没头文件。只有API的说明文档。
C#的部分代码如下:
- using System;
- using Nordicsemi;
- namespace nRFUart
- {
- internal class PipeSetup
- {
- /* Public properties for accessing discovered pipe IDs */
- public int UartRxPipe { get; private set; }
- public int UartTxPipe { get; private set; }
- MasterEmulator masterEmulator;
- public PipeSetup(MasterEmulator master)
- {
- masterEmulator = master;
- }
- /// <summary>
- /// Pipe setup is performed by sequentially adding services, characteristics and
- /// descriptors. Pipes can be added to the characteristics and descriptors one wants
- /// to have access to from the application during runtime. A pipe assignment must
- /// be stated directly after the characteristic or descriptor it shall apply for.
- /// The pipe type chosen will affect what operations can be performed on the pipe
- /// at runtime. <see cref="Nordicsemi.PipeType"/>.
- /// </summary>
- ///
- public void PerformPipeSetup()
- {
- /* GAP service */
- BtUuid uartOverBtleUuid = new BtUuid("6e400001b5a3f393e0a9e50e24dcca9e");
- masterEmulator.SetupAddService(uartOverBtleUuid, PipeStore.Remote);
- /* UART RX characteristic (RX from peripheral's viewpoint) */
- BtUuid uartRxUuid = new BtUuid("6e400002b5a3f393e0a9e50e24dcca9e");
- int uartRxMaxLength = 20;
- byte[] uartRxData = null;
- masterEmulator.SetupAddCharacteristicDefinition(uartRxUuid, uartRxMaxLength,
- uartRxData);
- /* Using pipe type Transmit to enable write operations */
- UartRxPipe = masterEmulator.SetupAssignPipe(PipeType.Transmit);
- /* UART TX characteristic (TX from peripheral's viewpoint) */
- BtUuid UartTxUuid = new BtUuid("6e400003b5a3f393e0a9e50e24dcca9e");
- int uartTxMaxLength = 20;
- byte[] uartTxData = null;
- masterEmulator.SetupAddCharacteristicDefinition(UartTxUuid, uartTxMaxLength,
- uartTxData);
- /* Using pipe type Receive to enable notify operations */
- UartTxPipe = masterEmulator.SetupAssignPipe(PipeType.Receive);
- }
- }
- }
复制代码 我想用C来实现,这是我改的代码:但是有很多问题不懂。例如用C++ NEW出来的类是不是该用类指针来代替。
另外看一下文档里提供的函数对照如下:
- C#
- public void SetupAddCharacteristicDefinition(
- BtUuid characteristicUuid,
- int maxDataLength,
- byte[] data
- )
-
- Visual C++
- public:
- void SetupAddCharacteristicDefinition(
- BtUuid^ characteristicUuid,
- int maxDataLength,
- array<unsigned char>^ data
- )
-
- C#
- public void SetupAddService(
- BtUuid serviceUuid,
- PipeStore pipeStore
- )
-
- Visual C++
- public:
- void SetupAddService(
- BtUuid^ serviceUuid,
- PipeStore pipeStore
- )
-
- C#
- public Collection<string> EnumerateUsb(
- UsbDeviceType deviceType
- )
-
- Visual C++
- public:
- Collection<String^>^ EnumerateUsb(
- UsbDeviceType deviceType
- )
-
复制代码 BtUuid^ 这个是什么意思?
Collection<String^>^ 这个又是什么意思?
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|