So, I was developing an Android Application which uses AltBeacon Library for detecting beacons and get its advertising content, but I don't seem to find a good solution as to how I can use this library for indoor positioning, I was searching through google for some answers, and I think its a better option to use an SDK for indoor-positioning, since I need information like the geolocation(lat,long etc) which is not easy to calculate using Altbeacon, I am a bit confused on how to start this, need suggestions ?
Saying you want to make an indoor positioning system with a beacon detection library is kind of like saying you want to make a house out of a pile of bricks. While it is certainly possible, it is a huge amount of work that requires all kinds of other tools and technologies. A library lets you detect beacons is just one small thing that is needed.
Rather than taking on the huge job of trying to build one yourself, I would research a dedicated indoor positioning SDKs.
See a related question here
Related
I am trying to build a Xamarin.Forms app that enables indoor positionning using iBeacons. For now, i can only do testing on Android.
Before I jump into trying to adapt existing native packages, I wanted to know if there were some existing libraries.
Thanks in advance.
Indoor positioning using iBeacon is a complex feature that requires both HW (iBeacon devices) and SW -- all components to setup location map, iBeacon position, all logic related to position calculation, and so on. So building this all from scratch is quite a complex task. Thus, I suggest trying something that already exists.
For example, Estimote has indoor positioning feature in their SDK, but from what I know, they use Fingerprinting method to calculate position which is a bit inaccurate; Leantegra (Leantegra GitHub), in turn, posesses this functionality as well, and uses Multilateration method which is more accurate. So, feel free to try it out.
Trilateration is only the first step, to get an appropriate accuracy, you need to use Multilateration method -- calculate position based on signal to multiple (more then 3) beacon devices. If represent ibeacon devices as circle with radius equal to signal strength, you will get a lot of possible disposition, where the calculation of a position becomes quite a complex task...
Microsoft Media Foundation (MF) was introduced as the successor of DirectShow in Windows Vista. I have mostly ignored it, but it has some features (such as decoding of WMV AC-1 files) which are hard to implement in DirectShow. Media Foundation is also a more modern API so it would seem logical to make the switch.
However, the online teaching resources and official documentation seem greatly lacking. There is only 1 book covering the topic (published by Microsoft) and it is no longer available for normal prices. (People charge $500,- or more for second hand versions.)
As far as I could find there are no other books. While other techniques from Microsoft are usually covered in multiple books by multiple publishers.
The official Media Foundation blog has not been updated in since 2011. In the two years that it was active only 10 technical articles were written, 5 of which covering error logging/tracing instead of actual functionality.
The StackOverflow tag ms-media-foundation is only used with 328 questions, of which 142 are unanswered. In contrast there are 1641 DirectShow questions of which only 496 are unanswered.
So what happened to Microsoft Media Foundation? Will the new API ever take off and replace DirectShow or has even Microsoft forsaken MF in favour of going back to the old and rusty (trusty?) DirectShow. Or is there maybe another, non Microsoft framework, that has taken over?
Firstly I don't know the answer and am someone who has spent way too long trying to get even basic Media Foundation scenarios working; at times it feels more like a quest in search of some long lost secret scripture than programming.
My suspicion is that Microsoft does want to make MF the standard media API for the Windows platform and perhaps the best indication is the Windows Universal App Samples where there are 7 instances of "mfapi.h" but zero instances of "dshow.h". Also the relatively new WPF MediaCapture and MediaElement controls do hook into the Media Foundation APIs so it seems safe to say that for all new work Microsoft are using MF instead of DirectShow.
Wow I see what you mean about Polinger's MF book! I have the book (which I'll now shortly be selling at that price) and can assure you it's definitely not worth it. I've never really found it much help despite re-reading it numerous times. It's pretty much the same as the online docs in that it sticks to a small number of specific scenarios (in fact a number of chapters in the book just re-print the SDK samples) and as soon as you need to do something outside those you are on your own.
In regards to the official MF blog there was a thread on the MSDN forums griping about thing and to which one of the Microsoft guys responded saying they have switched blogging platforms (it obviously would be nice if they could put a note indicating that). Apparently a number of the Microsoft MF devs are still blogging. This seems to be the most "active" one.
Update: If anyone happens to get drawn here due to the Polinger book reference note that the companion code can be downloaded from here (the original link quoted in the book is http://go.microsoft.com/FWLink/?Linkid=229072 which at the time of writing redirects to the aforementioned page).
For me, Media Foundation is really a very nice API to do multimedia programming.
What I can blame, is that Media Foundation's releases don't apply to Windows 7, currently the most popular OS in the world.
Media Foundation has a lot of competitors (DirectShow, Ffmpeg, Gstreamer, etc...). So, more choice, less developers, less tutorials and so on...
I try to promote this API as i can, so here is my work on Media Foundation : MFNode
I cover a lot of scenarios, and you have to check source code to learn.
You will find :
audio/video player (win32)
custom media session
sequencer source
audio/video capture
screen capture
kinect V1 capture
wave audio mixer
http streaming (winsock)
jpeg encoding (Gdiplus)
dxva2 technology
cuda decoding
directX9 renderer and shader
COM technology
different kind of mediafoundation Source, Sink and Transform (mpeg2, flv, a52, vp6...)
mp3 to wave transcoder
EDIT
More MediaFoundation code here : github mofo7777
I suspect one reason for MediaFoundation not being used as much is that it limits you to encoding in WMV format only, and limits your ability to decode too (you can decode more than just WMV, but even the old VFW from Win 3.1 days allowed you to select a compressor of your choice)
The even rustier and older VFW (video for windows) is simpler than all of them latest and greatest, and allows multiple compressors - so I am wondering if MediaFoundation will ever be updated to allow more compressors and decompressors (or encoders and decoders) than the very limited selection they offer.
MediaFoundation API's, although interfaces, seem pretty low level still, and requires lots of boiler plate code just to get basic things working - powerful for WMV production, as they give you plenty of tools - but, a little bit hard to use for doing basic tasks (best is to download wrappers around the API, which to my surprise, not many exist.. these API's are not so popular as you would think).
I have been tasked with making several flex-driven visualizations of immense excel spreadsheets. The client wants the finished product to be as self-contained as possible. The problem being that flex doesn't offer as much computing horsepower as is needed. Is there an easy (or not easy) way to accomplish this. I am just trolling for pointers. Thanks in advance!
If you dont mind doing it the hard way, I have two options for you:
Pixel Bender: a tool originally designed for creating complex and CPU-intensive graphic filters and offload those calculations to the hardware. But it can be used for number crunching too. Here's an article that covers that topic: Using Pixel Bender with Flash Builder 4 as a number crunching engine. The language may not be like anything you're used to. I had a hard time wrapping my head around it.
Alchemy: a tool that compiles C or C++ code so it can be executed in the Flash VM. I am not certain how much performance can be gained for simple number crunching, but if you know C, this might be a path to investigate.
The first thing that comes into my mind - building a webservice that will do the hard work. But this is not a self-contained product though.
Apart from that - take a look at the apparat - http://code.google.com/p/apparat, it allows various optimizations, access to the low level AVM2 code - http://code.google.com/p/apparat/wiki/AsmExpansion and more. I do not think that as3 and flex compiler is so bad for math. Try to write the sample math function and test it using different languages.
I am currently considering writing a small game. It is essentially a map where you can zoom out and in, and in certain places click on info boxes where, at some point, I hope to integrate minigames. Granted, game might be overstating it. Think of it as an interactive map. The theme is how mathematics can be applied in peoples every day life to raise awareness on the usefullness of mathematics.
The question is how I as fast as possible can make a reasonable prototype. If I recieve enough positive response on this I might try to code "the real thing" and use the prototype to obtain funding.
However, I am at a crossroad. I want something to work rather fast and have some C++ experience coding optimization problems, mainly in c-style. I am not convienced, though, that coding it in C++ is the fast way to obtain a prototype. Though I have some experience coding in C++, but have no experience in coding any sort of GUI.
As I see it there is a number of possibilites:
C++, possibly using some library, such as boost or ???.
Start out purely webbased, using e.g. HTML 5 and java.
Python
C#/.NET
Others, such as?
I have to admit I have little experience with anything besides C++ and the STL.
So my question to this wonderful forum is basically, is there a language that provides a significant advantage? Also, any additional insight or comments is more than welcome!
Python is a simpler language than C++, and for prototyping it will help you focus on the task at hand. You can use Pygame, a game library built on the excellent cross-platform SDL library. It provides 2D graphics, input, and audio mixing features. SDL is mainly a C library (and thus compatible with C++), and there are a number of very useful libraries that integrate with it:
SDL_image for loading images in various formats
SDL_ttf for rendering text using TrueType fonts
SDL_mixer for audio mixing
SDL_net for networking
SDL_gfx for graphics drawing primitives
So if you prototype in Python using Pygame, there is a reasonable chance you’ll be able to port what you make over to C++ with minimal hassle, if and when you choose to do so.
Possible options:
Go with what you know the best. Anything else will require a learning curve, which may be weeks to months long. If you're willing to take that road in order to make your prototype, then there are some really great tools available.
BlitzBasic is a good way to go, and is basically designed to be for games
I've done little games in Java using Slick2D - but you'll need good grounding in object-oriented coding to work effectively in Java. If you've got that from C++, then you can see a tech demo I built in Slick2D called Pedestrians. It's open source, and has demo videos here.
You might also ask your question on https://gamedev.stackexchange.com/ - a Q/A site dedicated to game programming
I think Flash/Flex is a good aproach for this case.
We need to build some like the following:
http://www.flashracegames.com/play-micro-racers-2.html
Is there some free engines to perform it?
Flash is definitely the tool for the job. I'd try the box2d engine to handle all the physics and collisions. It's a port from the great box2d c++ library, and it can do great stuff and help with the performance (always a concern in flash). The only quirk is that you'll need to turn off gravity and damping in order to account for the top-down view. Check this tutorial to see how to build a top-down car in box2d as a start.
You could try the pushbutton engine. It has a fair amount of nice features and should get you up and running faster than starting from scratch...
I would definitely recommend sticking with Flash and not using Flex for this one...too much overhead for features you probably wouldn't need...