Where can I find the Miracast specification? - specifications

I want to develop a Miracast application for Mac OS X. (i.e. something to display imagery to a miracast-enabled device) The only problem I'm having right now is that I can't find the official specification for this.
Is it possible that you need to be a member of the wi-fi alliance to get this specification? Is this even an open standard?
Or better: Is there a (open-source) miracast library I can use?
Thanks!

Have you seen this? http://www.freedesktop.org/wiki/Software/openwfd/
As for the wi-fi alliance, you don't need to be a member but it will cost you $199: https://www.wi-fi.org/wi-fi-display-technical-specification-v11

The Wifi Display spec is currently free (as in 0.0$). The download still requires agreeing to a license agreement and does not seem free to redistribute.
Also, WDS is a new but fairly complete implementation for linux and should be easy to port to other platforms as it tries very hard to keep agnostic with respect to the stacks used to handle media playback and Wi-Fi Direct. That said, the most difficult bit in Miracast seems to be Wi-Fi Direct so if your platform does not support that well, you're pretty much out of luck...
Disclaimer: I used to work on the WDS project.

As #Constantinos said you will have to pay 200$ for getting the specifications via wi-fi alliance.
Or, as you ask, you can look at the following implementation available on the internet:
Java
or C
I think there is enough example here to do what you want.

Related

How can I know the operating system of a device

If I know the device's model or vendor. Is there any direct way by which I can know the operating system of this device (e.g through the device driver or something like that? ). For example, I will quote an answer for a previous question I asked in: What is the difference between the firmware and the operating system?
Someone have said:
Hardware vendors commonly use a derivative of linux (e.g. Cisco IOS)
How can I know this. I know a name for one cisco device but I do not have the device and I need to check what is its operating system (even if it is widely known that it is Linux, I need to check this myself). How can I get this piece of information ? I checked the companies site and google, and I can not find any answer.
If the terms of the GNU Public License are complied with, it should be reasonably clear if a device is using any GPL code, including Linux, moreover the source code should be available too.
If the device uses an OS that is not open source, then even if the information were available to you, it is unlikely to be particularly useful except perhaps in respect to applying manufacturer's firmware updates.
Linux is by no means that common in embedded systems in general. It is commonly used in certain types of device, such as routers, STB's and NAS's. Often these devices have a web-server interface through which version information is usually available, but there is no common method of accessing this information, you'd have to access the particular URL for the device and parse the HTML.
You need a serial cable to hack into the device or read the binary from the flash and examine the hexdump. I have a STB in my home. The provider doesn't reveal the OS. There are competitors out there who need such information to take you down.

Connection between Samsung Smart TV and iOS app

I got a Samsung Smart TV UE40D8000 (Apparently from 2011 series ?) and an iOS device.
I'd like to make them both exchange information (most likely small chunks of text), via a dedicated app on both sides;
Now, it turns out the best way would be to use the Convergence API : I've built a basic TV App that looks an awefull lot like the sample code they give, and an iOS App for UPnP discovery and sending POST requests onto the TV. UPnP discovery works great.
But on the actual device, I can't seem to be able to manage to connect : the requests to /ws/app/{appID}/connect fail (with an actual appID of course) as if there would be no server.
Is the Convergence API available for my TV ? (there does not seem to have a compatibility list anywhere) Is there a way to upgrade to a 2012 platform if it is indeed a 2011 one ?
Can we test that API on a simulator ? My simulator runs under Windows 7 in a VM on my Mac (there is not Mac version of their dev tools...)
Is there really anything I can do to have a more precise diagnostic ? like logs from the appilcation running on the TV ?
Thanks
This Convergence page sounds like existence of MultiScreenService UPnP service equals the capability of Convergence API calls. So if you say "UPnP discovery works great" (given that you do an ST-limited M-SEARCH per example, not an unrestricted UPnP discovery), it should mean that your particular TV supports Convergence. Have you tried querying the TV simply with telnet? Are you sure about the port number on which the TV listens? Here the doc claims that it should be 80 for the TV and 8008 for the simulator, but i for one am very interested in the UPnP description.xml served by the TV for MultiScreenService. You could even discover some UPnP functions for diagnostic there...
Disclaimer: i have no experience in Convergence, only UPnP in general and unfortunately Samsung in general too. The fact that Samsung pushes such half-baked proprietary mockup reminds me of my short bloody disgusting career as Bada developer. Only Sony can sustain pushing proprietary mockups with dignity :)
Your year model is 2011 and you can't upgrade to 2012.
2012 models uses API v3.5 and 2011 models uses API v2.5
So this what you try to do won't work at your device as Convergence API is in API v3.5.
Check this one
http://www.samsungdforum.com/Guide/View/Developer_Documentation/Samsung_SmartTV_Developer_Documentation_2.5/API_Reference/JavaScript_APIs/Interactive_API
It gives you possibility to communicate between devices, so maybe it will fit your needs.
Finishing answering my own question:
like #Dobiatowski mentions, I'm screwed for Convergence API and 2012 platform
The Interactive API's documentation is not clear, and virtually non-fonctionnal despite 3 days of my best effort. Half of the sentence in the documentation don't actually make sense.
Still did not manage to make the interactivity simulator to work, Looks like it's not possible on Win7
Basic answer is : not possible

iPhone to RS-232 via Bluetooth

I'm looking to connect my iPhone to an RS-232 serial device via Bluetooth. Has anyone implemented this successfully and can offer advice on hardware to use? It's kind of tricky because of the need for the Apple Authentication Processor with the device. The best potential device I've found is this guy but it only comes in an embedded package, its serial port interface is just logic-level UART rather than line-level RS-232, and I can't find a supplier with it in stock.
Any thoughts would be appreciated.
I'm considering just using WiFi to serial instead, but please ignore that possibility for the purposes of this question.
most of the question was answered by yourself already.
Basically you have 5 (+2) choices.
Join the MFi program. This might be hard to impossible if you are not part of a at least mid-size company.
Buy the OEM Bluetooth Module. I'm not sure if this is even allowed by the apple policies.
Use WiFi. Keep in mind that you want to use a wifi chipset that can act as at least ad-hoc access point. Those chipsets are quite expensive, and you have to think of a way to join existing networks (customers don't want to leave their home network to use your product). This will add a lot of cost to the BOM of your device.
Jailbreak might be an option. I never tried to use accessories with a jailbreak, so I don't know if it's possible to use bluetooth without authentication.
Work with a company that is member of the MFi program.
(Maybe an option, and depending of the speed you want to have via RS232: Eventually you can convert the audio output of the head-phone jack to RS232 levels and vice versa)
(Not really an option: develop for Android and do whatever you want)
If you jailbreak your device, you can use BTstack.org (disclaimer: I'm the author of BTstack) to connect to a Bluetooth device that supports the Serial Port Profile. You can get Bluetooth Modules that implement SPP and provide UART level output. As David R. above points out, you then need a UART to RS232 converter, e.g. the MAX232.
Ok. Another option. There are one or two companies that sell RS232 cables for iOS, eg. Skywire here: http://www.southernstars.com/products/skywire/index.html
Then, you could uses a Bluetooth RS232 extender, which consists of a RS232-to-SPP and a SPP-to-RS232 pair. Ugly, but within Apple's rules.
Well. It seems like my answer could be something you didnt ask for.
But the guy you referred to is the answer. Buy his product and you are good to go, all you need is a MAX232 chip. Converts logic level UART to RS232.
the diffrence high + voltage low zero voltage is converted to high +~10volts low -~10volts.
I use the MAX232 chip with my microprocessor, that uses logic level USART to communicate over RS232.
There is a lot of tutorials out there explaining how to hook things up.
This product works: https://serialio.com/product/bluetooth-serial-adapter/bluesnap-smart-bluetooth-40-ble-rs232-adapter
The only downside is that the adapter requires power.
It should be possibly I would think to create something in the middle that accept the bluetooth commands and convert them to serial, similar to what this does with TCP connections: https://www.npmjs.com/package/stellar-socks

How can I integrate CalDAV and CardDAV

I am trying to allow people (from a URL) to connect to a calender/contacts from their iPhone, Blackbury or Android phone - what is the best way to do this?
I've had a bit of a read and it seems that CalDAV and CardDAV are the best way to integrate calenders/contacts, but how exactly can I do this? The internet seems to lack a standard way of how you can integrate this into a number of devices.
Which mobile devices support them? And is it possible to just provide a URL and then the calender/contacts just automatically sync!?
All of this assumes you have some sort of Groupware server setup somewhere which acts as the repository for this information.
For opensource you might want to look at a product called Sogo. Apple also do a caldav/carddav server written in python. They expect you to buy a mac server but you can download the code and run it from a pc or linux box. There's a heap of paid-for groupware.
You might want to check out the "opensource" client software written by the same kids who develop Sogo caled funambol. This claims to be x-mobile (all the ones youve mentioned anyway).
The idea behind all the *DAV protocols is that yes everything is done by Uri (this was actually specced by Tim Berners Lee in his draft for the web).
I've just been through this very same process and found only emerging standards, of which *DAV are the de facto ones IMO. HTC use MS active sync on my HD2 to sync my Gmail. Go figure!
Bedework is CalDAV/CardDAV server that allows you to hook your iPhone/iCal calendar and events.
I have used it and it gives you an url to sign in with in you phone calendar. The Bedework is a server you could install on you machine (it is provided with documentation; this is a good point to start with).
Android natively does not support Bedework. In order for Android to support the CalDAV you have to install an application that supports CalDAV, but I do not know if they work with Bedewrok or not.
In the case of android you could try using the CalendarProvider and the ContactProvider. You could refer to this : http://developer.android.com/guide/topics/providers/calendar-provider.html

Finding the systems connected in local network from iPhone?

I am developing an application which identifies(find) all the systems connected in same network/LAN to share the data.
could please share with me how to identify(find) the systems which are connected in same network/LAN.
thanks in advance.
When you say all systems, I assume you mean all instances of your application? If so then the correct solution is to use Bonjour. Documentation on how to use it can be found here. Note that your app needs to be actively running on all the devices that you are trying to discover, since the iPhone does not support background apps.
If you are just talking about finding all other devices in the area then you need to resort to techniques like port scanning.