I'm researching AR frameworks in order to select the best option for developing conference call/ meeting application for ODG glasses.
I got only a few directions for selecting a framework:
Performance of video streaming (capturing and encoding) must be watched closely to avoid overheating and excessive power consumption,
Should support extended tracking and
Video capturing should not be frame by frame.
I have no experience with AR field in general, and I would really appreciate if you can let me know your opinion or to give me some guidance on how to choose the best-fitted framework.
For ODG, you should use Vuforia according software details :
Qualcomm Technologies Inc.'s VuforiaTM SDK for Digital Eyewear
Vuforia supports extended tracking. According to what you are asking, you'll need more than just an AR SDK. You'll need to identify what you want exactly. Do you want an application that let the user see with who he's talking or do you want some holographic stuff? Depending on what you want, maybe smartglasses isn't what you need and at this point you should try to learn more about the differents SDK out there. I suggest you to look at this and that.
I am programming a simulation in xna/monogame; but i want to go sure and wanna warn (myself ..( = ) if I use inadventertly my on-board video card..
Do you know any way to solve my problem?
Does the graphicsdevice offer a property to determine current used video card?
Thank you in advance!
During XNA start-up you can create your own custom GraphicsDeviceManager that can rank or choose devices based on criteria you provide.
MSDN:
GraphicsDeviceManager Class
Handles the configuration and management of the graphics device. Custom behavior of the GraphicsDeviceManager can be achieved by deriving a class from GraphicsDeviceManager. For example, to allow only widescreen devices in full-screen mode the RankDevices method could be overridden to drop non-widescreen devices. - Tell me more...
During the call to your RankDevices() method, you can inspect the list of GraphicsDeviceInformation to determine information about the adapter and device.
RankDevices() orders the provided list so that devices earlier in the list are preferred over devices later in the list. This method can remove devices from the list if they do not satisfy some custom criteria. Tell me more
Each GraphicsDeviceInformation object has an Adapter property of type GraphicsAdapter. There you will find such useful properties as:
Description
DeviceId
DeviceName
VendorId
...and many more.
More
The tutorial Restricting Aspect Ratio on a Graphics Device will walk you through the process of controlling what device you get. Once you understand that, altering it to filter based on device types should be easy.
I'm looking to use the CMMotionActivity for iPhone 5s's, but also want to be able to use similar functionality on older iPhone's, is this possible?
Could I create a less accurate alternative maybe, by tracking GPS and not using the M7 chip? Any advice/tutorials/sample code?
You can create your own algorithm which will utilize accelerometer data and estimate number of steps taken. Its not as accurate and its not a good idea to have 2 separate logic in the same app.
In case, you want to give it a try, check this answer..How to count steps using an Accelerometer?
Does anyone know if there is a simple way to obtain these statistics. My understanding is that Apple doesn't store this data anywhere on an app by app basis, is that correct?
I'm hoping to find a better way to store it instead of just sending it to a database (if possible)...
Apple does not make per-app stats available. You can install your own metrics (or use a 3rd party — I used to use Flurry but didn't bother with my next app).
You can estimate based on iPad sales. Wikipedia says over 15M iPad 1 and about 25M iPad 2.
(Personally, unless you're doing something with a camera or GPU-intensive game, I don't think it matters much. There's no difference that affects my apps.)
Is it possible to get location data out of Google Gears, Google Gelocation API or any other web location API (such as Fire Eagle) in such a format that it appears to other software as a GPS device?
It occured to me reading these answers to my question regarding WiFi location finding, on Super User, that if I could emulate a GPS unit, many of these web services could act as a 'poor-mans' GPS to otherwise less useful software that requires it.
Is GPSD an option?
Preferably OSX & Python, but I would be interested in any implementation.
There is a very similar thread on a Python mailinglist that mentions Windows virtual COM ports and discusses Unix's pseudo-tty capabilities. If the app(s) you want to use let you type in a specific tty device file, this may be the easiest route. (Short of asking the authors to provide a plugin API for what you're trying to do, or buying yourself a $20 bluetooth GPS mouse.)
Are you using OS X?
There is a project macosxvirtualserialport on Google code that provides a graphical wrapper around some of the features of a utility called socat. I'd recommend taking a look at socat if you see potential in the pseudo-tty route. I believe you could use socat to link a pipe from a Python program to a pseudo-tty.
Most native Mac apps will be querying IOServiceMatching for a device with kIOSerialBSDRS232Type, and I doubt that a pseudo-tty will show up as an IOKit service.
In this case, unless you can find a project that has already implemented such a thing, you will need to implement a driver as described in this How to create virtual COM port thread. If you're going to the trouble of create a device driver, you would want to base it on IOKit because of that likely IOServiceMatching query. You can find the Apple16X50Serial project mentioned in that post at the top of Apple's open source code list (go to the main page and pick an older OS release if you want to target something pre-10.6).
If your app is most useful with realtime data (e.g. the RouteBuddy app mentioned in the Python mailinglist thread can log current positions) then you will want to fetch updates from your web sources (hopefully they support long-polling) and convert them to basic NMEA RMC sentences. You do not want to do this from inside your driver code. Instead, divide your work up into kernel-land and user-land pieces that can communicate, and put as little of the code as possible into the kernel part.
If you want to let apps both read and write to these web services, your best bet would probably be to simulate a Garmin device. Garmin has more-or-less documented their protocol in the IntfSpec.pdf file included with their Device Interface SDK. Again, you'd want to split as much as you could into user-space code.
I was unable to find a project or utility that implements the kernel side of an IOKit-based virtual serial interface, but I'd be surprised if there wasn't one hiding somewhere out there. Unfortunately, most of the answers I found to that question were like this, with the developer being told to get busy writing a kext.
I'm not exactly sure how to accomplish what you're asking, but I may be able to lend some insight as to how you might begin to get it done. So here goes:
A GPS device shows up to most systems as nothing more than a serial device -- a.k.a. a COM port if you're dealing with Windows, /dev/ttySx if you're in *nix. By definition, a serial port's specific duty is to stream data across a bus, one block at a time. So, it would then follow logically that if you want to emulate the presence of a GPS device, you should gather the data you're consuming and put it into a stream that somehow acts like an active serial port.
There are, however, some complications you might want to consider:
Most GPS devices don't just send out location data; there's also information on satellite locations, fix quality, bearing, and so on. Then again, nobody's made any rules saying you have to make all that data available. There's probably more to this, but I'll admit that I need to do more research in this area myself.
I'm not sure how fast you can receive data when dealing with Google Latitude, etc., but any delays in receiving would definitely result in visible pauses in your "serial port"'s data stream. Again, this may not be as big a complication as it seems, because GPS devices are known to "burst" data across the bus anyway, but I'd definitely keep an eye on that. You want to make sure there's always a surplus of data coming across, not a shortage.
Along the way you'll also have to transform the coordinates you receive into valid GPS sentences, as well. You can find specifications for those, but I would definitely make friends with the NMEA standard -- even though it is a flawed standard, it's the one everyone seems to agree on anyway.
Hope this helped you, at least a little bit. Are there anymore details specific to your problem that you think could be useful in answering this question?
Take a look to Franson GPS Gate which allows you to connect to Google Earth among other things (like simulating GPS and so on). Is windows only though but I think you could get some useful ideas from it.
I haven't looked into it very much, but have you considered using Skyhook's SDK? It might provide you with some of what you are looking for. It's available for every major desktop and mobile OS.