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
-
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??????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. -
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,
NiamhHi 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 KeyboordSee:
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 DubbyaHello 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) -
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 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 advanceHi,
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 TechnologiesPost 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... -
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?