How to emulate GATT server in Bluetooth Developer Studio while connected with a Physical Device? - bluetooth-lowenergy

When a physical device is connected with Bluetooth Developer Studio (BDS), BDS treats it as GATT server and itself behaves like a client. But what if I want to check the client role on physical device.
I'm trying HID over GATT (HOGP) and my physical device works as HID Host role. I wanted to emulate BDS as HID Device but I didn't find any way to make it as HID Device while connected to a physical device as HID Host.
Is there any way or any plugin need to install to host services on BDS when it is connected to a phycial device?

I was looking for the same functionality in BDS, but after looking into it I found that it only supports interfacing with a physical peripheral device and not central devices. I follow the Bluetooth SIG webinars and updates on the roadmap for the tool as well, and this functionality is not listed in their future roadmap for releases.
BDS plugins are only supported for source code generation (at least up to version 1.1).

Related

RS232 interface protocol

I'm developing a new board that should connect to other devices like PLC or industrial PC trough rs232.
The remote devices will connect to read and set some parameters (most of them one byte value).
I'm asking if is there any standard protocol to do that or if I can implement something proprietary that customers must follow .
I tought to use AT commands but my device has nothing to do with modems.

Can I enable PC to support GATT server (peripheral) role?

I tested BluetoothAdapter adapter = await BluetoothAdapter.GetDefaultAsync();
and found out that IsPeripheralRoleSupported = false.
I tested on both desktop and laptop, which are both Windows10(1903), but had no luck.
Is there any way I can enable the PC to support peripheral role?
Or is this property unable to be changed?
Mike Petrichenko answered on the comment if anyone looking for the answer to this question!
You can but with very few Bluetooth Adapters. 100% working one is Laird BT851
You can not "enable" it. It depends only on hardware (Bluetooth module). Use compatible Bluetooth module (the one I posted above is compatible) and GATT server (peripheral mode) will work. Windows has very special requirements fro Bluetooth hardware to support peripheral mode and only few devices can be used.
It's a dongle (https://www.digikey.com/product-detail/en/laird-wireless-thermal-systems/BT851/BT851-ND/8251358). You should replace your one with this. Or, if you have build-in dongle, disable build-in. There are also 2 more known and tested models but they are not USB.

QT Bluetooth Peripheral and Central role possible?

I'm running a programm on a Raspberry Pie which is based on QT and uses a bluetooth adapter to connect to some peripheral devices as a central role.
I also have another device, which only can act as a Central bluetooth device and needs to be connected to my Raspberry.
Is it possible with QT to first build a connection to my second device by advertising itself and acting as a peripheral, and afterwards swaping to central mode, to connect to the other devices?
I didn't find any evidence for or against this. So i hope you guys can help me out.
What you want to do is not related to Qt/software, but rather something that depends on the hardware, specifically the version of Bluetooth of your hardware. A device can advertise (act as a peripheral) and scan/connect (act as a central) at the same time if it supports the "LE Dual Mode Topology", which was added in Bluetooth v4.1 (please see figure below).
Therefore, if this is a Raspberry Pi 3 Model B or B+, then it has Bluetooth v4.1 or v4.2 (respectively) built-in and it should be capable of acting as both central and peripheral. If it is an older Raspberry Pi then this depends on the Bluetooth dongle that you attach to it.
I hope this helps.

API to access GSM signal on computer

Hope this is the right place to ask - assuming so as it is related to programming.
I am looking for some hardware (say a dongle) that would open up an API for my computer to a SIM card. Does that exist anywhere?
The idea would be that I can then use my existing SIM card on its existing network/contract and with a bit of code, send/receive calls and texts. I figured that if a phone can be programmed to do it why can't a computer? I just need the hardware.
Any suggestions if this kind of thing is possible? Even by maybe integrating a phone?
You can use AT commands with any modem or phone, whose driver exposes a modem port when you connect it to a computer. Plug in the phone or modem, and go to Windows Device Manager, and look under "Modems" and see what you've got. From "properties" of the Modem, you can see which COM port it is on.
AT commands are an older method of communicating with a modem. There is a standard set of commands for GSM/GPRS/3G/4G devices available from 3GPP.org, here. Manufacturers add their own proprietary commands for more obscure functions. Many but not all of these are in the public domain.
Some newer plug-in modems may appear as a network adapter (you can see this in Windows), due to their drivers. In this case, you can use the following interfaces:
on Vista: NDIS, proprietary interfaces
on Windows 7 and 8.x Desktop apps: Windows Mobile Broadband API
on Windows 8.x, in the Metro/app area: Windows.Networking and MobileBroadband APIs.
on Windows 10, UWP, there are UWP APIs here. But they do not give as much functionality as the Desktop APIs.
On Windows 8.1 and Windows 10, if the appropriate drives are present it is possible to use the new MBIM interface via the desktop Mobile Broadband DeviceServices API. Mobile Broadband Interface Model spec available here.
On Linux, use AT commands via the serial port.
I'm a bit puzzled by your requirement to make (voice?) calls via a phone connected to a computer. Do you mean Skype? In this case, of course, you wouldn't need any interface for making calls, you would just open an IP connection over a data session - which can be done via any of the above interfaces.
(added this comment as an answer, as there was more information)
I use this GSM device: http://www.mikroe.com/click/gsm2/ connected to a basic UART like: https://www.sparkfun.com/products/718?gclid=CIj1xOzbur4CFUVbfgodCpQASQ
Then use AT COMMANDS.
I also use a piece of software called QNavigator to inspect the modem/gsm: http://www.soselectronic.com/?str=1329

Are vendor-specific USB serial adapters supported in Metro apps?

There's a sample provided for CDC compliant USB devices here. Are vendor-specific USB devices supported too? Or are CDC compliant USB devices the only ones supported in Metro apps?
Your help is much appreciated!!
Vendor specific USB to UART bridge devices will not be supported under CDC, only a USB CDC class device would be supported in that case.
However, since Microsoft has opened up a USB API you could still access vendor specific devices. The downside here is that the devices will not look like a COM port, you would need to use the Windows.Devices.Usb namespace to access the device directly through it's USB protocol. This means that the vendor for a specific device would need to publish their protocol, or you could reverse engineer or use the Linux source as an example of what the setup packets for certain commands should look like.
Since you're using an FTDI converter you can get the device protocol information from their Linux Source (this is from 3.13 kernel) and use this to access the device through Windows RT.
FTDI might support Win RT in the future (today is 2014-Apr-15), you can ask for a beta driver here:
Windows RT Driver

Resources