Rasbperry and Xamarin: Bluetooth Low Energy - c#

I tried to create a little application to detect my Raspberry 3 B with a Xamarin Forms.
So, I used this package to use Bluetooth in my app.
As you can see, I only can scan Bluetooth Low Energy devices.
Well, when I use my bluetooth setting in my Android 6, I can see my RPI.
But when I use the sample of the author of the package, I can't see it.
I already opened a issue ticket, and it told me:
This library supports Bluetooth LE, not standard bluetooth. You need to make sure that your device is broadcasting on BLE.
But, I have lot of difficulties to broadcast on BLE and I don't understand how to do that.
Can you help me?
Thank you.

Related

Windows UWP BluetoothLE Pairing

using the nugget package Microsoft.Windows.SDK.Contracts and following the code example provided by Microsoft # github
I am able to enumerate the BLE devices and get the exposed GATT services, but any attempt at pairing : DevicePairingResult result = await info.Pairing.PairAsync(DevicePairingProtectionLevel.EncryptionAndAuthentication);
(Tested with all of the possible protection levels) fails.
Form the official documentation no pairing is discussed. It seems that you can get a ble device which windows will automatically connect to and proceed, but my device requires a pin when pairing by hand which confuses me as to how windows could interact with my attributes without providing a pin or even pairing? (not tested).
If anyone has experience with pairing BLE devices to windows via code, any pointer would be greatly appreciated!

Windows iot/apps Programmatic Bluetooth Pairing

I'm trying to broadcast a bluetooth signal from a Raspberry Pi 2 running Windows Iot Core so that I can connect to it from smartphones and other devices, but I've been stuck for the last couple days on actually receiving a pairing signal.
Using the Windows Bluetooth docs I am able to broadcast the signal and I can see it from my desktop as well as from my phone.
However, this is as far as I can get. I want to be able to pair without a PIN (the device will not have a screen), but the pairing fails any time the device is selected.
I am using
SocketProtectionLevel.BluetoothEncryptionAllowNullAuthentication
and
DevicePairingKinds.None
But the connection callback is never hit. I have looked at many similar questions that are either unanswered or do not have the appropriate information since I am using an RPI2 and not a desktop app.
I am not looking to pair via the web interface, but simply through code
.
[UPDATE]
I've tried the 32feet.NET library but it appears to be too old to support the PI2.
I also tried a few NuGet packages, nothing seems to work yet.
I am not master in IoT but recently, I have started exploring it so I know Raspberry Pi 2 is hardware and we can use it to develop some basic IoT device/concepts. I can not help you with the code but may be with some idea.
I remember, for making any embedded system, we used serial port of pc and transferred command to devices. Something similar I found in one of the tutorial from David Jones. It is about to connect Bluetooth to windows 10 using serial port.
In both the explanations, SPP (Serial Port Profile) is used and also Universal Windows App is referenced. May be you get some start point or spark to comlete you work.
Check this and this. It also uses RPi 2.

Serial Port Comm with Arduino Device from Windows Store C# App

I'm currently working on getting a Leonardo device recognized and communicating with my app over a serial port in C# for the Windows 8 App Store. I'm using http://msdn.microsoft.com/en-us/library/windows/hardware/dn312121(v=vs.85).aspx#step2 as a guide, in conjunction with http://code.msdn.microsoft.com/windowsapps/USB-CDC-Control-sample-5ba19caa to guide me.
I'm having problems however in the sense that my Arduino device isn't showing up despite me entering my PID/VID and Class/Subclass/Protocol so I feel I'm missing some steps and was hoping someone that has experience with this could point me to a more specific/granular example.
My device is an Arduino Leonardo and I'm running windows 8.1 using Visual Studio 2013 Ultimate, code is in C#
Any help is appreciated!
Just general thoughts on regular windows applications (not aware of W8 AppStore):
Might help or might not, in the second case, sorry for wasting your time...
To get a "regular COM" device in Windows, without any additional drivers, you should make the device appear as USB Communication Device Class (aka CDC) - this is, among others, done via the appropriate class/subclass/protocol. The VID/PID don't care. This means the device should provide CDC/ACM USB descriptors to the enumerating USB host (windows) and implement the required endpoints and commands - supposedly there is already something existing for your board and you downloaded the firmware to it, right? You might want to try to connect such configured device to windows and after successful enumeration, new COM port should appear. If you program regular application, you just connect to such COM port via SerialPort class instance, no matter it is provided via USB subsystem... If this works, you should be able to start the AppStore part (where I have no clue how to help).
I'm just going to answer this as not currently possible. I ended up writing a desktop WPF application using metro UI/UX guidelines. Between that and ClickOnce deployment the store app feel is fairly well recreated, despite the store being ideal.
I sincerely hope that Microsoft decides to support this in the near future, the Metro SDK is really nice and I would love to eventually port it.

Can I use the Bluetooth serial port in Windows Phone 7.1 and up?

I want to develop an app for the Windows Phone app store that communicates with my car's OBD2 port via Bluetooth.
Long story short, the app will use the bluetooth serial port to send a hex value and retrieve the corresponding value in the ECU's register. There's an android app called Torque which does this.
I can't figure out how to use the serial port though. The only bluetooth functionality mentioned is high-level stuff like pushing objects, pairing, etc. But nothing about setting baud rates or writing to a specific COM port.
Is this possible on WP7/*? Or alternatively, how can I make this possible and get my app approved for distribution?
UPDATE: I haven't been able to get my hands on a WP8 device yet, so I can't verify whether or not this is possible using SSP.
As a bonus note in case you came here looking for alternatives: you can also NOT connect to ad-hoc wifi connections, so the wife-based OBD2 adapters are no good either. There is an ugly way of connecting to the latter which involves having a laptop in your car which is simultaneously connected in ad-hoc mode the the device and is also acting as a wifi hotspot. It is utterly impractical.
Using the Bluetooth Serial Port (SSP) is not possible with public APIs of Windows Phone 7.x. As you've kind of guessed already, the app will likely not be approved for the marketplace if private APIs are P/invoked or otherwise used.
Consider upgrading to Windows Phone 8 as the Bluetooth SSP is partially available there, see Nokias Developer site for example.

can c# be used for communicating mobile and pc?

As a minor project in my degree I would like to communicate mobile and pc .I am interested to communicate through bluetooth is it possible to do so in c#?
If possible please provide me list of application or hardware i would requiere in order to do so.
thanks in advance
If (and it's a big if based on the lack of information in your question) you mean "How do I write an app on my PC, using C#, that can communicate with a Windows Mobile device that is connected to my PC via ActiveSync or WMDC" then the answer is RAPI. A free, open-source managed wrapper for it is here.
Yes its possible if its with windows mobile phone or pocket pc with bluetooth. You need a bluetooth enabled computer and mobile phone. For dev you need to download the windows mobile 6 sdk.
Then developing of the communication between desktop app and mobile phone app, you can use the 32feet.Net is open source.
When you download it and installs (well it unpacks to program files folder) you will have the dll that you make reference to in Visual Studio. Also you will get some sample apps. One of them is a Bluetooth Chat that works in Desktop, Pocket PC and SmartPhone.
Another option you could use is set up a web service that acts like an intermediary between the device and your machine. One huge benefit of this is that no longer are you bound by the distance requirements of bluetooth.
Of course if you're trying to build some sort of proximity service (do z when item x is 3 meters from item y) then bluetooth is probably the way to go.

Categories