BlueZ API - OOB process? - bluez

How works OOB as pairing process for a LE setup, so NO classic bluetooth bredr?
Regardless of NFC as wireless transfer mechanism I was thinking of doing the following process manually as proof of concept.
Read out the local oob (btmgmt local-oob) and pass the oob to the other device that needs to be paired with the remote-oob cmd in btmgmt.
But when trying to readout the local-oob I get an error message the operation is not supported. The bluetooth adapters I'm using are single mode, BLE.
Any idea what could be wrong? Or what the proper way is to implement OOB for a BLE setup.
So far I didn't find any well documented process how to use the BlueZ API or tooling for doing this OOB process.
Thanks in advance,
Best regards,
Frank

Related

Setting up GATT server using bluetoothctl tool

I'm able to set up GATT services and characteristics with the
latest bluetoothctl tool using the following commands:
register-service,
register-characteristic,
register-application
I was just wondering if there is a way to define GATT-based service
for use only over the BR/EDR transport or LE transport using the
bluetoothctl tool or any Bluez utility tool? Can anyone shed some
light on this?
Theoretically speaking, the GATT layer should be agnostic of whether BLE or BR/EDR is used. You can test this by disabling BLE through the following commands:-
#btmgmt power off
#btmgmt le off
#btmgmt power on
After that you can use something like gatttool from a remote device to check if you can see the services/characteristics that you have created using the bluetoothctl commands that you listed earlier.
I hope this helps.

How to use Visual Basic, Mindstorms NXT and USB communication Altogether?

I have been researching for a couple of days, and i have not found anything I understand about sending direct commands to the NXT via USB. All of the tutorials I have found are based on Bluetooth communication, and the information I have found about USB is always like "Better change to bluetooth", or "Think about it as a COM port"
I had previously sent those commands via Bluetooth, but the connection fails too often to be useful, and is slower than USB.
USB connection is not detected as a COM port, but I know it is posible to control motors and get sensor input with a USB connection, because the LEGO software does so. It has that remote control feature that allows user to activate motors from the PC, and can read sensor input as well.
So, my question is, How can I send and recieve those direct commands via USB? and, Is there any way to do so in Visual Basic 2008?
You can use the MonoBrick Communication Library to do this. See http://www.monobrick.dk/software/monobrick/.
Alternately, you could use the Fantom driver from the official LEGO Software developer kit. http://www.lego.com/en-us/mindstorms/downloads/software/nxt-sdk/

Choosing between network (Ethernet or WiFi) programmatically

On my mac I have two kinds of networks available - Ethernet, WiFi.
While making a server call, can I somehow control which network channel to use for making the server call? So, before making server call, I want to specify the network channel to be used for that call - Ethernet or WiFi.
How can this be achieved using objective C. I am working on a cocoa application.
I assume both NIC's are connected to Internet (so both have a IP):
I don't think you can solve it within code (not 100% sure). But what you could do is setup some local routes, configuring which traffic goes over what NIC.
Look at the route command ('man route').
This might help you:
https://serverfault.com/questions/100613/public-traffic-to-go-over-1-nic-and-private-traffic-to-use-another-nic
You can modify the routes available with the System Configuration framework. In scutil(8) you can see the routes that are presently installed in the State:/Network/Service/* dictionaries, and in order to manipulate these programmatically you have to us the SCDynamicStore framework, which is C.
However, if you were trying to just do some ad-hoc service on WLAN only, you could use the CoreWLAN framework, which is in Objective-C.

Developing an Application using C++ or Java For GPS Receivers

I have an idea for developing an app to be installed in a GPS receiver,this app should be able to communicate with a server.The connection could either be established through a cell phone network or internet or any suggestions.
Is this possible?
Can anyone help with suggestions?
Whats the best programming language would be more appropriate?
Any GPS devices that has this capability?
Thanks
It's very easy to do this, you can have a look at gpsd.
basically just com port communication and change NMEA formats, and send your info back to your server over the net.
I did my one with ruby under linux without addition library other than native.
For your question:
I would say any language you are comfortable will do. OS is not important, even on a ARM linux it should be okay.
Most gps should work, as long as they are NMEA formats. for more info you can have a look at http://gpsd.berlios.de/hardware.html

An good examples of a client-server setup in vb.net?

I'm trying to learn how to do some very simple client-server application programming.
Basically, I want to make a program (the server) that listens and waits, and when a commend is sent it will run a batch file or execute a line of code.
The client will just ask for the ip and send the command when a button is pushed.
Shouldn't be too hard right? So what are some good resources that you've used to get started?
You probably want to dig into WCF, the Windows Communication Foundation. That's the state-of-the art for writing .NET components that need to communicate over some kind of network. Googling for wcf introduction yields various tutorials and examples to this topic.