Creating a Bluetooth Low Energy GATT profile server

Hello,
I am trying to implement my own client-server communication using an existing GATT profile (heartrate).
I am aware of the "Bluetooth Generic Attribute Profile - Heart Rate Service" sample, which allows me to connect to a heartrate device. However, what i want to do now is to create my own GATT server in Windows, instead of using an existing device.
Is it possible? Can someone please give me some headlights?
Thanks!

I'm not sure we can accomplish it in Windows, but these discussions may be helpful: http://stackoverflow.com/questions/19549555/creating-a-gatt-server
http://stackoverflow.com/questions/25427768/bluez-how-to-set-up-a-gatt-server-from-the-command-line
Best Regards,
Please remember to mark the replies as answers if they help

Similar Messages

  • Is there a simple example (desktop programming C++) for Bluetooth Low Energy devices?

    Hello
    i am trying to code a simple desktop application (C++ in console) to connect to a custom Bluetooth low energy service. But before i go to that, i need to code a simple application to even get the GATT properties of a BLE device.
    Is there any code sample that i can use? I am having a hard time going through the examples that are given with the GATT**** functions. 
    And the code samples in WDK seem to be of drivers and for metro apps. None for a desktop application.
    thanks a ton!

    So i was able to code a program for reading (read) variables and setting notifications for (notifiable) variables from an HR BLE monitor.
    Pasting it here so that it may help someone looking for an example. (may have minor bugs, but seems to work with an MIO ALPHA HR monitor). Project properties may have to be set to stdcall (Project properties->c/c++->advanced->calling convention)
    //How to get notification values from a HR BLE monitor
    //Ensure that you have paired the HR BLE monitor with the computer
    #include <stdio.h>
    #include <windows.h>
    #include <setupapi.h>
    #include <devguid.h>
    #include <regstr.h>
    #include <bthdef.h>
    #include <Bluetoothleapis.h>
    #pragma comment(lib, "SetupAPI")
    #pragma comment(lib, "BluetoothApis.lib")
    #define TO_SEARCH_DEVICE_UUID "{0000180D-0000-1000-8000-00805F9B34FB}" //we use UUID for an HR BLE device
    //this is the notification function
    //the way ValueChangedEventParameters is utilized is shown in
    //HealthHeartRateService::HeartRateMeasurementEvent()
    //a function in Windows Driver Kit (WDK) 8.0 Samples.zip\C++\WDK 8.0 Samples\Bluetooth Low Energy (LE) Generic Attribute (GATT) Profile Drivers\Solution\WpdHealthHeartRate\HealthHeartRateService.cpp
    void SomethingHappened( BTH_LE_GATT_EVENT_TYPE EventType, PVOID EventOutParameter, PVOID Context)
    printf("notification obtained ");
    PBLUETOOTH_GATT_VALUE_CHANGED_EVENT ValueChangedEventParameters = (PBLUETOOTH_GATT_VALUE_CHANGED_EVENT)EventOutParameter;
    HRESULT hr;
    if (0 == ValueChangedEventParameters->CharacteristicValue->DataSize) {
    hr = E_FAIL;
    printf("datasize 0\n");
    } else {
    printf("HR ");
    //for(int i=0; i<ValueChangedEventParameters->CharacteristicValue->DataSize;i++) {
    // printf("%0x",ValueChangedEventParameters->CharacteristicValue->Data[i]);
    // if the first bit is set, then the value is the next 2 bytes. If it is clear, the value is in the next byte
    //The Heart Rate Value Format bit (bit 0 of the Flags field) indicates if the data format of
    //the Heart Rate Measurement Value field is in a format of UINT8 or UINT16.
    //When the Heart Rate Value format is sent in a UINT8 format, the Heart Rate Value
    //Format bit shall be set to 0. When the Heart Rate Value format is sent in a UINT16
    //format, the Heart Rate Value Format bit shall be set to 1
    //from this PDF https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=239866
    unsigned heart_rate;
    if (0x01 == (ValueChangedEventParameters->CharacteristicValue->Data[0] & 0x01)) {
    heart_rate = ValueChangedEventParameters->CharacteristicValue->Data[1]*256 + ValueChangedEventParameters->CharacteristicValue->Data[2];
    } else {
    heart_rate = ValueChangedEventParameters->CharacteristicValue->Data[1];
    printf("%d\n", heart_rate);
    //this function works to get a handle for a BLE device based on its GUID
    //copied from http://social.msdn.microsoft.com/Forums/windowshardware/en-US/e5e1058d-5a64-4e60-b8e2-0ce327c13058/erroraccessdenied-error-when-trying-to-receive-data-from-bluetooth-low-energy-devices?forum=wdk
    //credits to Andrey_sh
    HANDLE GetBLEHandle(__in GUID AGuid)
    HDEVINFO hDI;
    SP_DEVICE_INTERFACE_DATA did;
    SP_DEVINFO_DATA dd;
    GUID BluetoothInterfaceGUID = AGuid;
    HANDLE hComm = NULL;
    hDI = SetupDiGetClassDevs(&BluetoothInterfaceGUID, NULL, NULL, DIGCF_DEVICEINTERFACE | DIGCF_PRESENT);
    if( hDI == INVALID_HANDLE_VALUE ) return NULL;
    did.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
    dd.cbSize = sizeof(SP_DEVINFO_DATA);
    for(DWORD i = 0; SetupDiEnumDeviceInterfaces(hDI, NULL, &BluetoothInterfaceGUID, i, &did); i++)
    SP_DEVICE_INTERFACE_DETAIL_DATA DeviceInterfaceDetailData;
    DeviceInterfaceDetailData.cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);
    DWORD size = 0;
    if(!SetupDiGetDeviceInterfaceDetail(hDI, &did, NULL, 0, &size, 0) )
    int err = GetLastError();
    if( err == ERROR_NO_MORE_ITEMS ) break;
    PSP_DEVICE_INTERFACE_DETAIL_DATA pInterfaceDetailData = (PSP_DEVICE_INTERFACE_DETAIL_DATA)GlobalAlloc(GPTR , size);
    pInterfaceDetailData->cbSize = sizeof (SP_DEVICE_INTERFACE_DETAIL_DATA);
    if( !SetupDiGetDeviceInterfaceDetail(hDI, &did, pInterfaceDetailData, size, &size, &dd) )
    break;
    hComm = CreateFile(
    pInterfaceDetailData->DevicePath,
    GENERIC_WRITE | GENERIC_READ,
    FILE_SHARE_READ | FILE_SHARE_WRITE,
    NULL,
    OPEN_EXISTING,
    0,
    NULL);
    GlobalFree(pInterfaceDetailData);
    SetupDiDestroyDeviceInfoList(hDI);
    return hComm;
    int main( int argc, char *argv[ ], char *envp[ ] )
    //Step 1: find the BLE device handle from its GUID
    GUID AGuid;
    //GUID can be constructed from "{xxx....}" string using CLSID
    CLSIDFromString(TEXT(TO_SEARCH_DEVICE_UUID), &AGuid);
    //now get the handle
    HANDLE hLEDevice = GetBLEHandle(AGuid);
    //Step 2: Get a list of services that the device advertises
    // first send 0,NULL as the parameters to BluetoothGATTServices inorder to get the number of
    // services in serviceBufferCount
    USHORT serviceBufferCount;
    // Determine Services Buffer Size
    HRESULT hr = BluetoothGATTGetServices(
    hLEDevice,
    0,
    NULL,
    &serviceBufferCount,
    BLUETOOTH_GATT_FLAG_NONE);
    if (HRESULT_FROM_WIN32(ERROR_MORE_DATA) != hr) {
    printf("BluetoothGATTGetServices - Buffer Size %d", hr);
    PBTH_LE_GATT_SERVICE pServiceBuffer = (PBTH_LE_GATT_SERVICE)
    malloc(sizeof(BTH_LE_GATT_SERVICE) * serviceBufferCount);
    if (NULL == pServiceBuffer) {
    printf("pServiceBuffer out of memory\r\n");
    } else {
    RtlZeroMemory(pServiceBuffer,
    sizeof(BTH_LE_GATT_SERVICE) * serviceBufferCount);
    // Retrieve Services
    USHORT numServices;
    hr = BluetoothGATTGetServices(
    hLEDevice,
    serviceBufferCount,
    pServiceBuffer,
    &numServices,
    BLUETOOTH_GATT_FLAG_NONE);
    if (S_OK != hr) {
    printf("BluetoothGATTGetServices - Buffer Size %d", hr);
    //Step 3: now get the list of charactersitics. note how the pServiceBuffer is required from step 2
    // Determine Characteristic Buffer Size
    USHORT charBufferSize;
    hr = BluetoothGATTGetCharacteristics(
    hLEDevice,
    pServiceBuffer,
    0,
    NULL,
    &charBufferSize,
    BLUETOOTH_GATT_FLAG_NONE);
    if (HRESULT_FROM_WIN32(ERROR_MORE_DATA) != hr) {
    printf("BluetoothGATTGetCharacteristics - Buffer Size %d", hr);
    PBTH_LE_GATT_CHARACTERISTIC pCharBuffer;
    if (charBufferSize > 0) {
    pCharBuffer = (PBTH_LE_GATT_CHARACTERISTIC)
    malloc(charBufferSize * sizeof(BTH_LE_GATT_CHARACTERISTIC));
    if (NULL == pCharBuffer) {
    printf("pCharBuffer out of memory\r\n");
    } else {
    RtlZeroMemory(pCharBuffer,
    charBufferSize * sizeof(BTH_LE_GATT_CHARACTERISTIC));
    // Retrieve Characteristics
    USHORT numChars;
    hr = BluetoothGATTGetCharacteristics(
    hLEDevice,
    pServiceBuffer,
    charBufferSize,
    pCharBuffer,
    &numChars,
    BLUETOOTH_GATT_FLAG_NONE);
    if (S_OK != hr) {
    printf("BluetoothGATTGetCharacteristics - Actual Data %d", hr);
    if (numChars != charBufferSize) {
    printf("buffer size and buffer size actual size mismatch\r\n");
    //Step 4: now get the list of descriptors. note how the pCharBuffer is required from step 3
    //descriptors are required as we descriptors that are notification based will have to be written
    //once IsSubcribeToNotification set to true, we set the appropriate callback function
    //need for setting descriptors for notification according to
    //http://social.msdn.microsoft.com/Forums/en-US/11d3a7ce-182b-4190-bf9d-64fefc3328d9/windows-bluetooth-le-apis-event-callbacks?forum=wdk
    PBTH_LE_GATT_CHARACTERISTIC currGattChar;
    for (int ii=0; ii <charBufferSize; ii++) {
    currGattChar = &pCharBuffer[ii];
    USHORT charValueDataSize;
    PBTH_LE_GATT_CHARACTERISTIC_VALUE pCharValueBuffer;
    // Determine Descriptor Buffer Size
    USHORT descriptorBufferSize;
    hr = BluetoothGATTGetDescriptors(
    hLEDevice,
    currGattChar,
    0,
    NULL,
    &descriptorBufferSize,
    BLUETOOTH_GATT_FLAG_NONE);
    if (HRESULT_FROM_WIN32(ERROR_MORE_DATA) != hr) {
    printf("BluetoothGATTGetDescriptors - Buffer Size %d", hr);
    PBTH_LE_GATT_DESCRIPTOR pDescriptorBuffer;
    if (descriptorBufferSize > 0) {
    pDescriptorBuffer = (PBTH_LE_GATT_DESCRIPTOR)
    malloc(descriptorBufferSize
    * sizeof(BTH_LE_GATT_DESCRIPTOR));
    if (NULL == pDescriptorBuffer) {
    printf("pDescriptorBuffer out of memory\r\n");
    } else {
    RtlZeroMemory(pDescriptorBuffer, descriptorBufferSize);
    // Retrieve Descriptors
    USHORT numDescriptors;
    hr = BluetoothGATTGetDescriptors(
    hLEDevice,
    currGattChar,
    descriptorBufferSize,
    pDescriptorBuffer,
    &numDescriptors,
    BLUETOOTH_GATT_FLAG_NONE);
    if (S_OK != hr) {
    printf("BluetoothGATTGetDescriptors - Actual Data %d", hr);
    if (numDescriptors != descriptorBufferSize) {
    printf("buffer size and buffer size actual size mismatch\r\n");
    for(int kk=0; kk<numDescriptors; kk++) {
    PBTH_LE_GATT_DESCRIPTOR currGattDescriptor = &pDescriptorBuffer[kk];
    // Determine Descriptor Value Buffer Size
    USHORT descValueDataSize;
    hr = BluetoothGATTGetDescriptorValue(
    hLEDevice,
    currGattDescriptor,
    0,
    NULL,
    &descValueDataSize,
    BLUETOOTH_GATT_FLAG_NONE);
    if (HRESULT_FROM_WIN32(ERROR_MORE_DATA) != hr) {
    printf("BluetoothGATTGetDescriptorValue - Buffer Size %d", hr);
    PBTH_LE_GATT_DESCRIPTOR_VALUE pDescValueBuffer = (PBTH_LE_GATT_DESCRIPTOR_VALUE)malloc(descValueDataSize);
    if (NULL == pDescValueBuffer) {
    printf("pDescValueBuffer out of memory\r\n");
    } else {
    RtlZeroMemory(pDescValueBuffer, descValueDataSize);
    // Retrieve the Descriptor Value
    hr = BluetoothGATTGetDescriptorValue(
    hLEDevice,
    currGattDescriptor,
    (ULONG)descValueDataSize,
    pDescValueBuffer,
    NULL,
    BLUETOOTH_GATT_FLAG_NONE);
    if (S_OK != hr) {
    printf("BluetoothGATTGetDescriptorValue - Actual Data %d", hr);
    //you may also get a descriptor that is read (and not notify) andi am guessing the attribute handle is out of limits
    // we set all descriptors that are notifiable to notify us via IsSubstcibeToNotification
    if(currGattDescriptor->AttributeHandle < 255) {
    BTH_LE_GATT_DESCRIPTOR_VALUE newValue;
    RtlZeroMemory(&newValue, sizeof(newValue));
    newValue.DescriptorType = ClientCharacteristicConfiguration;
    newValue.ClientCharacteristicConfiguration.IsSubscribeToNotification = TRUE;
    hr = BluetoothGATTSetDescriptorValue(
    hLEDevice,
    currGattDescriptor,
    &newValue,
    BLUETOOTH_GATT_FLAG_NONE);
    if (S_OK != hr) {
    printf("BluetoothGATTGetDescriptorValue - Actual Data %d", hr);
    } else {
    printf("setting notification for serivice handle %d\n", currGattDescriptor->ServiceHandle);
    //set the appropriate callback function when the descriptor change value
    BLUETOOTH_GATT_EVENT_HANDLE EventHandle;
    if (currGattChar->IsNotifiable) {
    printf("Setting Notification for ServiceHandle %d\n",currGattChar->ServiceHandle);
    BTH_LE_GATT_EVENT_TYPE EventType = CharacteristicValueChangedEvent;
    BLUETOOTH_GATT_VALUE_CHANGED_EVENT_REGISTRATION EventParameterIn;
    EventParameterIn.Characteristics[0] = *currGattChar;
    EventParameterIn.NumCharacteristics = 1;
    hr = BluetoothGATTRegisterEvent(
    hLEDevice,
    EventType,
    &EventParameterIn,
    SomethingHappened,
    NULL,
    &EventHandle,
    BLUETOOTH_GATT_FLAG_NONE);
    if (S_OK != hr) {
    printf("BluetoothGATTRegisterEvent - Actual Data %d", hr);
    if (currGattChar->IsReadable) {//currGattChar->IsReadable
    // Determine Characteristic Value Buffer Size
    hr = BluetoothGATTGetCharacteristicValue(
    hLEDevice,
    currGattChar,
    0,
    NULL,
    &charValueDataSize,
    BLUETOOTH_GATT_FLAG_NONE);
    if (HRESULT_FROM_WIN32(ERROR_MORE_DATA) != hr) {
    printf("BluetoothGATTGetCharacteristicValue - Buffer Size %d", hr);
    pCharValueBuffer = (PBTH_LE_GATT_CHARACTERISTIC_VALUE)malloc(charValueDataSize);
    if (NULL == pCharValueBuffer) {
    printf("pCharValueBuffer out of memory\r\n");
    } else {
    RtlZeroMemory(pCharValueBuffer, charValueDataSize);
    // Retrieve the Characteristic Value
    hr = BluetoothGATTGetCharacteristicValue(
    hLEDevice,
    currGattChar,
    (ULONG)charValueDataSize,
    pCharValueBuffer,
    NULL,
    BLUETOOTH_GATT_FLAG_NONE);
    if (S_OK != hr) {
    printf("BluetoothGATTGetCharacteristicValue - Actual Data %d", hr);
    //print the characeteristic Value
    //for an HR monitor this might be the body sensor location
    printf("\n Printing a read (not notifiable) characterstic (maybe) body sensor value");
    for(int iii=0; iii< pCharValueBuffer->DataSize; iii++) {// ideally check ->DataSize before printing
    printf("%d",pCharValueBuffer->Data[iii]);
    printf("\n");
    // Free before going to next iteration, or memory leak.
    free(pCharValueBuffer);
    pCharValueBuffer = NULL;
    //go into an inf loop that sleeps. you will ideally see notifications from the HR device
    while(1){
    Sleep(1000);
    //printf("look for notification");
    CloseHandle(hLEDevice);
    if ( GetLastError()!=NO_ERROR &&
    GetLastError()!=ERROR_NO_MORE_ITEMS )
    // Insert error handling here.
    return 1;
    return 0;
    I can't run this code. I use VS2010 and Windows 8.1. When I debug my project , it show error "cannot open file 'BluetoothAPis.h'" Can you help me?

  • How to pair Windows 8.1 with a bluetooth low energy iOS Device?

    Hi,
    I wrote an OSX GATT Client (central) Bluetooth application, which searchs for Bluetooth LE peripheral devices, and implemented the peripheral role on iOS. Everything works fine.
    Now I'm trying to write the GATT Client as a win32 application, to search for iOS BLE peripheral devices. Following the Bluetooth Low Energy MSDN specifications   the devices have to be paired first. But I can't pair iOS BLE peripheral devices
    (tested on iPad4) with my Windows 8.1 PC.
    On my PC, I see the advertised service of my iOS Peripheral Device, but when I try to pair it fails with the message  "try again, and make sure your device is still discoverable". I downloaded Lightblue ( available on itunes) to let the iOS
    Device act as different peripheral roles, still the pairing request fails.
    Is there another way to interact with an iOS BLE device?
    Thanks a lot.

    No success yet, but more information:
    I am using TI's CC2540 Wireless Connectivity Development kit and their Packet Sniffer app to capture packet exchanges. 
    When pairing Windows to the TI CC2541 SensorTag I see:
    SensorTag advertises with ADV_IND packets that have 9 byte PDU with payload 0x02 0x01 0x05 which I believe means Flags are "LE Limited Discoverable" and "BD/EDR (BT classic) not supported". TxAdd indicates it's using a public address.
    Windows sends a SCAN_REQ.
    SensorTag responds with SCAN_RSP with PDU which says Complete name = "SensorTag", incomplete list of UUIDs is 0x0A 0x00, and slave connection interval range is 100ms to 1000ms.
    Windows sends a CONNECT_REQ and they are off and running.
    When pairing Windows to the iOS device running either LightBlue or my own app I see:
    iOS advertises with ADV_IND packets with 24 byte PDU that says Flags = ("LE General Discoverable", dual-mode Controller, dual-mode Host), complete list of UUIDs is 0xEC 0x1C, and Complete name is "LightBlue". TxAdd indicates it's using
    a random address.
    Windows sends a SCAN_REQ.
    iOS reponds with a SCAN_RSP with 6 byte PDU, where the first 6 bytes is always the (advertiser?) address, so in other words a 0 byte payload. That seems to make sense since the advertising packets have complete information.
    Windows never sends the CONNECT_REQ, and pairing fails.
    I am not aware of any problems with any of these packets, they look okay. But there are several differences between the two sequences and evidently Windows doesn't like the second sequence because it never sends the CONNECT_REQ.
    Am I interpreting these packets correctly? Why doesn't Windows send the CONNECT_REQ packet to iOS?

  • How do you connect to Bluetooth Low Energy Devices?

    I have several Bluetooth Low Energy devices and I am trying to connect them to my mac mini.  My mac mini has bluetooth 4.0 and should be able to connect to devices.  Is the Mac mini a slave or master? how do I discover my devices?   Only bluetooth 2.1EDR devices show up when i look for devices.  Does apple support Bluetooth Low Energy yet?

    Apple supports BLE (Bluetooth low energy) but an application must be written to allow you to pair with other devices.  The onus is on the device maker to create an application that will let your Mac Mini find these devices.

  • The Bluetooth low energy protocol is not backward compatible with classic Bluetooth protocol. My iPhone 4s can not find my sonny in-dash player. However my iPhone 3GS does it. Very disappointed with this. Any idea how it can be fixed???

    The Bluetooth low energy protocol is not backward compatible with classic Bluetooth protocol.
    My iPhone 4s can not find my sonny in-dash player. However my iPhone 3GS does it. Very disappointed with this.
    Any idea how it can be fixed??????

    Hello,
    You are correct, Blue tooth low engergy, BTLE.(only) devices are not backward compatible with Classic bluetooth and cannot connect.
    However the Apple 4S and above have Bluetooth 4.0 support.. Hardware wise it has bothClassic Bluetooth, like the 3GS, as well as Bluetooth Low Energy.  There is no good reason why your 4s cannot communicate to your Sony in-dash player using the Classic bluetooth that resides in the 4S.
    I know that this does not answer the why it does not work, but it should work. Do you have to somehow re-pair the new phone up to the player?  Not  knowing the model of the Sony it is hard to investigate.
    And I hate to ask but are you sure that the Bluetooth radio is on in the phone?
    JT

  • Limitation List Services Bluetooth Low Energy Central

    I have a central application (C #) that consume a Peripheral application services Bluetooh Low Energy (BLE). From the peripheral application services 100 are provided. But in Central application (Windows) only 40 services are listed. This is a technical
    limitation of Bluetooth Low Energy (BLE) layer of Windows? Has anyone experienced this?

    Might try them over here.
    Windows Desktop Dev on MSDN
    Regards, Dave Patrick ....
    Microsoft Certified Professional
    Microsoft MVP [Windows]
    Disclaimer: This posting is provided "AS IS" with no warranties or guarantees , and confers no rights.

  • Bluetooth low energy issues

    Has anyone been having issues with the low energy Bluetooth functionality in iOS 6. My Bluetooth heartrate monitor quit working when I upgraded?

    Same issue for me this morning as well, and in addition to Bluetooth audio. Seems Apple went and broke backwards compatibility when implementing the Bluetooth stack for iOS 6.

  • Bluetooth Low Energy examples/support

    Hi,
    I'm wondering has anybody been playing around with BLE in LabVIEW and/or are there any examples out there? I don't want to emulate a serial port profile. I have a connectblue OLP425 (which uses the TI CC2540). Even just connecting to the device would be a good start! 
    Does NI have any intention of providing supporting VIs for BLE? Maybe some of the common profiles, for example? 
    Thanks,
    Niamh

    Hi Niamh,
    Since your module is the one which is doing all of the comms there is no need to directly support BLE if all you want to do is communicated to the device. Looking at the datasheet of your module it appears it communicate through different ways, such as GPIO, SPI, I2C or even UART (serial) interface. So it appears that you could use a number of communication protocols and interfaces depending on what hardware you have on hand and etc. For instance, you can use an inexpensive usb DAQ device to do some of these (such as the NI USB 6008) and there are numerous examples for implementing these protocols in LabVIEW online.
    Once you connect to the hardware reading the spec. sheet and deciding on how to approach the comms would be the most straightforward way to go.
    Saying that, there is no specific example application built for this device as far as I'm aware of and we cannot provide support for 3rd party devices directly as well unfortunately.
    Mark N
    Applications Engineer
    National Instruments UK & Ireland

  • What is bluetooth low Energy ?

    I am using Mac Pro  Mid 2010
    Prozessor      2x2.4 GHz Quad-Core Intel Xeon
    Speicher        10 GB 1066 MHz DDR3
    Grafikkarte     ATI Radeon HD 5770 1024 MB
    Homse Studio
    Yamaha n12  digital mixer
    Roland Integra-7
    A49 Midi Keyboord

    See:
    http://en.wikipedia.org/wiki/Bluetooth_low_energy
    It uses less power than previous versions

  • Bluetooth 4.0 - When Will BLE - Blue Tooth Low Energy Be Supported?

    Hello,
    I recently acquired at W530 - has the BlueTooth radio from Broadcom - I thought 4.0 supported BLE and all of the 'smart' features.
    I am actrually developing a product for BLE and one of the reasons I picked up this laptop was for the 4.0 Radio - can anyone tell me when Broadcom/Lenovo will have the Bluetooth SMART Apps (BlueTooth Low Energy or BLE) enabled for this laptop?
    I actually had to go out and buy the Nano Dongle for me an my co-workers from SMKLINK (CSR Radio) in order not to impede progress on this project - a little embarassing for Lenovo I think.
    If BLE is enabled - please let me know how to configure it.
    If not - and I think the answer is not - when will Lenovo get this enabled - something that the W530 should ship with IMHO.
    THANKS IN ADVANCE!   (I STILL  MY THINKPAD!)
    John Dubbya

    Hello Lenovo,
    Blue Tooth Low Energy Driver.  The Broadcom radio that you shipped supports it.
    You do not have a driver that supports it.
    Why?
    Spoiler (Highlight to read)

  • Bluetooth Message Access Profile server driver - how to open an handle in order to send / recv messages?

    Hey,
    I've downloaded and installed a Bluetooth Message Access Profile server driver from the following link: http://www.driverscape.com/download/bluetooth-message-access-profile-server
    Right now, I'm looking for a sample application that creates a handle to this driver in order to send / recv messages. Can you please help?   Efrat.

    I'm sorry, I didn't understand your answer.
    I've installed the above server driver on PC1.
    Additionally, I'm written a Bluetooth MAP client on PC2.
    How can I send / recv data from one to another, using this profile?
    Thanks,
    Efrat.

  • Can i use two bluetooth devices simultaneously with iphone 4s? Specifically,a bluetooth headset, as well as a new low energy bluetooth heart monitor?

    Can I use two bluetooth devices simultaneously with iphone 4s? Specifically a bluetooth headset as well as a new low-energy smart bluetooth heart monitor?

    I don't believe so.

  • While creating PO for Low value assets error

    Hi Seniors,
    When user creating PO for low value assets ,system throwing error as
    u201CMaximum Low value amount exceeded in the case of at least one asset .u201D
    Details about this issue:
    1.User creating ONE  PO  for 8 assets as 8 line items, each line item
    value below 5,000 only.
    2.In this year only they created 8 new asset master records with ref to
    Particular asset class(below 5,000) asset class.
    3.Non Taxable item P0 (p zero).
    Checked:
    1. checked at AW01N, no values in  each asset.
    In configuration:
    2. at OAYK   Specify amount for Low value assets,
       Value is 5,000 rs
    3. at OAY2  selected option is u201CCheck maximum amount with qtyu201D
    I created POu2019S  for below 2 options
    1   Value based maximum amount check
    2   Check maximum amount with quantity
    But same error.
    Note:
    In development server i created  some POu2019s  like user creating in
    Production server but no error  in Dev server,
    Plz guide me.
    Thanks in advance

    Hi,
    I think you are using a single asset master record in all your line items in the PO.
    If you use individual asset master record for each line item in the PO, you issue might solve.
    Post again for further queries.
    Thanks,
    Srinu.

  • Data Integrator Web administrator  & Login Failed in Profiler server login

    Post Author: mohideen_km
    CA Forum: Data Integration
    Hi guys
    Help me
    Login Failed in Profiler server login
    I Create Profiler Repository in Repository manager
    While I login in BO DI Designer
    I am getting an error
    While login in Profiler Server Login
    Connection to the Profiler   Error is :  server failed
    close the application saving the login 
    Web administrator Problem
    I have some doubts.Business objects Data Integrator.
    error is : I can't View the Batch jobs history for the repository
    Procedure I followed
    In data Integrator Web administrator
    --while logging as Admin
    --In management Tree left frame of browser
    --Click Status Interval -- Select > Show last Execution of job -- Click
    apply --> Click Home
    after Clicking home --- Click the repository ( I created direpo) i.e
    Batch
    After that I can't view anything any job name.......
    Help me to figure it out
    Mohideen
    Prediktiva Technologies

    Post Author: bhofmans
    CA Forum: Data Integration
    Hi,
    For the profiler problem : you need to add the profiler repository to the web admin too (you can do this in the tree Management/Repositories). Next you need a webadmin user that is linked to this repo, you could use the admin user for that, just check in Management/Users that for this user the profiler repo is attached.
    Once this is set up in the management console, from within the designer, you can connect to the Profiling services using the web administrator's server name and port (e.g. localhost:28080) and the web admin user and password (e.g. admin/admin).
    For your second problem : please check the connection to the repo (I assume you added the direpo already to the web admin) . Again in the tree Management/Repositories go to the local repository connection you created and check the connection (there is a test button). If the connection is correct, you will see the job history (empty if there are no job executions), in the configuration page you will see a list of all jobs and can execute or schedule a job.
    Hope this helps...

  • Profiler Server not running

    I am running Data Services 3.1 on a Windows 2003 server environment.  Everything is installed and configured, but the Profiler Server is down.  I have created a Profiler Repository, associated it with a Job Server (which is running other jobs successfully), have set up Profile User in the Management Console, registered the Profiler Repo in the Console, but that annoying little red x stays on the Profiler Icon on the bottom of Designer  (Profiler Server localhost:28080 is not running).
    Help?  I cannot find any documentation that speaks to actual Profiler Server- just the Admin.

    check the webapps directory of tomcat, if you have installed BOE also on the tomcat, it would have used the same tomcat, check for folder named DataServices under tomcat55/webapps
    Check for tomcat55 folder in the business Objects home example:-
    C:\Program Files\Business Objects\Tomcat55
    did you restart the tomcat service after installing BOE, what is port on which BOE is running
    Check if you see anything the web_admin.log files in the %LINK_DIR%\log folder
    The simple option would be to reinstall DS, which will detect the BOE Tomcat and install the DataServices on that
    or
    you need to manually deploy the DataServices (at your own risk)
    replace the BO_HOME with BO installation folder (C:\Program Files\Business Objects), run the following commands
    make sure the tomcat is running
    "BO_HOME\deployment/wdeploy.bat" tomcat55 -DAPP=webservice undeploy
    "BO_HOME\deployment/wdeploy.bat" tomcat55 -DAPP=doc undeploy
    "BO_HOME\deployment/wdeploy.bat" tomcat55 -DAPP=DataServices undeploy
    "BO_HOME\deployment/wdeploy.bat" tomcat55 -DAPP=webservice deploy
    "BO_HOME\deployment/wdeploy.bat" tomcat55 -DAPP=doc deploy
    "BO_HOME\deployment/wdeploy.bat" tomcat55 -DAPP=DataServices deploy

Maybe you are looking for

  • After delay I can't able to send Mail in Workflow

    After Maintaining delay in Sequential Workflow I can't able to send mail, Please suggest anyone. Regards, Siva Krishna

  • Apache up but not able to get to portal

    Hi all, We have version 3.0.8.9.8 on a Windows2000 server. Apache is up. When trying to get to portal (eg. .../pls/portal30) we cannot connect. Stopping and starting Apache usually solves the problem. Does anybody know what the reason for this is? Is

  • Beginners Q: Motion tracking - Cannot move trackpoint

    Hi all, this seems to be simple:  start motion tracking, move your trackpoint to the correct place that needs to be tracked. Problem:  I see the trackpoint, but cannot move it to its place.   The only way to do that, is to close AE, reopen AE & reope

  • The headers are lost when poped up in Chrome

    I set the authorization header and other self-defined header in URLRequest. It works work well in Chrome when I use URLLoader to load this request. However,when I use navigateToURL(request, "_parent");     to pop up a window, the headers are lost. An

  • Rio S10 not recognized in iTunes 9.0

    iTunes 9.0 and 9.0.1 do not recognize my Rio S10 MP3 player. I didn't have any problems until upgrading iTunes. The player still works in iTunes 8.x. Does anybody have any suggestions how to get iTunes 9 to recognize my player?