iOS Simulate GPS - c#

I would like to use C# to broadcast position data over bluetooth to an iPad to simulate an external bluetooth receiver. I am assuming it will be sent as NMEA data however I cannot find a specification for iOS that provides for how to send position data to be considered as an external GPS (Example: BadElf etc).
Thanks!

The BadElf products are MFi certified - this means that they include an Apple identity chip that allows them to work with the External Connectivity framework and legacy Bluetooth (probably Serial Port Protocol). You can't emulate this hardware.

Related

Bluetooth Call Receive with 32feet.net and c#

I need to perform two task in c#
1) with USB cable
2) with Bluetooth
i want to dial and receive calls from smart android mobile. Mobile can be connected with USB cable or Bluetooth. I can dial and receive calls using USB cable by AT commands. Android mobile is connected as USB GSM Modem (Virtual com port). AT+CLIP=1 give a number information along with RING when someone is calling. So i can attend call by viewing a specific number. This part is working Well.
The second part is same thing with Bluetooth. I used 32feet.net for dialing a call. I am able to make a call after going through these forums links
Bluetooth dial with 32feet.net and c#
Bluetooth communication from PC to mobile phone, use laptop speaker and mic during voice call
Get Data from Bluetooth device in C#
now i am not able to get any information when anyone is calling on Bluetooth
i am using hand free profile as using serial port i get an error may be my mobile not support Bluetooth virtual com port.
can anyone point out me how i can get information that which one is calling or invoke some function when anyone call. I need to get a number which one is calling that help me in decision to accepting or rejecting a call.
Bluetooth: use HandsFree Profile. It runs RFCOMM control channel that allows your application to place a call, handle incomming calls, 3-way calling and other things using AT commands (HFP is well documented so you can find all the commands in its specification). However Windows standard Bluetooth driver from Microsoft does not support connection to HFP Audio Fateway. You can do it with BlueSoleil only.
USB: There is no USB HFP profile. Android supports only DUN through USB so it can act as USB GSM Modem only and supports only modem commands. No voice and no other commands.

On my Bluetooth LE device, can I change an attribute of a characteristic on a peripheral device?

I'm working on a UWP app for the Hololens that connects to a Bluetooth Low Energy device. The device I'm connecting to from the hololens is setup as a peripheral device. I can connect to the service and characteristic that I need. But unfortunately, the characteristic only enables the "write" and "indicate" attribute.
Is it possible to enable the "notify" attribute on a peripheral device from a central device?
I could use the "indicate" attribute as well, but I read that "notify" would be better because of the high transfer rate I want to use. My other solution would be to adjust the firmware on the peripheral device, but I would like to avoid this.
The server in a BLE system defines and publishes how its characteristics behave. If the server publishes that a certain characteristic is write and indicate, there is no way (without changing the server code) to make the characteristic notify as well.

using arduino input in mobile

I need to know how hard will it be to get input from a heartbeat sensor connected to arduino to a android running a unity made app. Im making for my degree final project a vr system that take a real time heartbeat input to effect the unity game, and i need to decide if i want a simple android vr or oculus (which is less common and more expensive). The plan is to connect the arduino via usb and call the serial port, but i think it may be more complicated then that. Since I have no prior experience in arduino i would love to get your advice in what I will need to do to make it work.
The easiest way is to send the collected data through Bluetooth controller. You can buy an HC-05 Wireless Bluetooth Serial Transceiver Module for 3 US dollars. You can connect the device to Rx and Tx terminals on Arduino. See this link for details on how to use HC-05 with Arduino.
In android device side Install or create an android application which can send data through Bluetooth serial terminal. You can find lot of BT serial port terminal applications in play store. I think some of the applications are open source and you can use their code in your own application.

Developing a GPS car tracking system

I'm in the brainstorming phase to develop a GPS car tracking system requested by a customer. I myself know the directions to build some GPS system to mobile phones and etc. But sincerely I don't know how to start in that project. That is the scenario:
1) The cars will get a device with a SIM CARD that will emit GPS signals.
2) My customer will in any place (home, work, etc) with a web connection will see in the map where the car is located.
For me, I have not problems at get the GPS data, convert to usable info and show the position in some map system (like Google Maps or MS Bing Maps, by example). My problem is, how I do to retrieve that "GPS Signal" from device in the car? I will need some kind of "Receiver Device" connected to a web server machine in order to my application to consume that data?
Most GPRS-enabled vehicle trackers can be configured to send the data periodically to a remote server. The protocol and the details of the connection will vary a lot between different manufacturers. However in most cases, you should be able to configure the tracking device with the IP address and TCP port of your server, and then you should set up an application at that endpoint that listens for TCP connections from the tracking devices.
The first thing you should check is the documentation of the tracking device. It should reveal all these details. The serious brands will even provide working examples and demonstrations.
You will have to do the following:
1) If device cannot access internet
a) Get co-ordinates from GPS device
b) Send these co-ordinates via SMS
c) Receive and decode SMS message at the SMS gateway you have to configure
to receive info from device.
d) Update the info on the application database or any other store you are using
e) Update the position on map with latest info
2) If device can access internet
a) Get co-ordinates from GPS device
b) Connect to application server (may be some service) and upload information
c) Update the info on the application database or any other store you are using
d) Update the position on map with latest info
Natively, there's no way for a stock, off the shelf GPS device to "tell" you it's position. It requires some sort of back channel to communicate that information to you.
Your options are principally:
The device broadcasts it's GPS location to you. The most effective way to do this would be if the device can access a wireless network, to install software on the device that has it periodically broadcast its location.
You use a service provider that can provide the current GPS coordinates through some sort of API.
I believe your question boils down to, "How do I send data from a mobile device to a server?" It doesn't matter that the data is GPS data or that the device is in a vehicle. You just need to understand what communication capabilities your device has so you can figure out how to deliver your payload. The device can receive GPS satellite data, but that is one-way communication. You also said the device has a SIM card, so that means you've at least got voice network capability. Will the device/account have a data plan? If so, then that gives you GPRS/3G/some-packet-data and you would be home free. If not, then SMS is probably the next-best option, using a service like OpenMarket, for example. A last resort: your company can potentially license/develop a data-over-voice modem. For this route, it matters which country you are in. In the US, Airbiquity holds a lot of patents for this, and you'd probably have to license from them.
Our company uses the GenX Mobile devices in our truck fleet. They have a data connection that sends the raw CSV data to a UDP socket. I wrote a little listener app that gathers the data and puts it into a MySQL database.
If you have a droid, play with some of the apps on there, including Google's Lattitude, Where R U, and Mobile Defense. That'll give you ideas on what some of your options are, for apps that periodically report the location back up to the mothership. Have a look at WebSharing, for an excellent example of a webserver running within a droid, which lets you do things. That app is for file sharing, but it's not a stretch to imagine the interface (beautiful, btw), showing the car location, speed, heading, and with big "kill ignition" and "lock doors" buttons.
A point to consider is the communications channel used to pass the tracker position back to the data centre. In Europe the GSM network is well developed and can be used (SMS or GPRS) to pass the position data. However there are large roaming charges to be considered if the application is intended to follow a vehicle across international boundaries. In other countries (USA, Canada, Africa, Asia) the terrestrial infrastructure is not so well developed or uses a different transmission system (CDMA rather than GSM) requiring a different modem device.
An alternative, actually pretty price comparable with GSM, is to use satellite comms as the back channel. These are available either using Iridium or Inmarsat services and work globally, in remote regions without mobile phone coverage and without any roaming charges as the unit crosses borders.

Accessing Apple IR Receiver with C# (Windows 7 in bootcamp)?

My school gave us MacBook Pros when we were accepted. I bought an IR remote for it later and I have the IR receiver (built in) working normally on itunes and other apps that accept input from it. I want to receive input from the remote in my own programs and I have no idea how to do that.
I've looked and a lot of examples talk about using the System.Net.Ports.SerielPort class but when I look under device manager it says that the IR receiver is connected via USB and I don't believe the SerielPort can access a USB device (although I know very little about the class).
What APIs are available that would help me receive input from the IR Receiver that's appearantly plugged into USB?
If it is an HID device (you should be able to confirm in the device manager)then you can look at this project for an example of how I used Windows API to access another USB HID device. You'll still need information on the IR receiver itself to know how it's commands work.

Categories