I 'm making an iOS generic customizable MIDI and DMX controller. This controller sends MIDI data to hosting systems.
In Windows, I 've created a virtual midi driver and connect it via TCP with the iOS app. So far so good.
In OSX now. I 've been trying to use coremidi. I 've created a MIDINetworkHost (from the OSX setup in Audio Midi setup), a MIDINetworkConnection and then added this to the MIDINetworkSesion.
Here are the steps:
I create a MIDINetworkHost
I create a MIDINetworkConnection based on the host
I add it to the MIDINetworkSession.
I create a client with MIDICreateClient
I create an output port with MIDIOutputPortCreate
When I want to send data, I create a packet with MIDIPacketListInit, I add data with MIDIPacketListAdd, I get the destination endpoint from MIDINetworkSession and I send the buffer using MIDISend, using the output port.
Nothing seems to be sent. What am I missing?
Thx.
Related
i would like to stream Dron video from the controler (Dji mavic air 2 with a RC-N1 controler) via RTMP direktly from the controler/my Phone to my PC wihl i am in the fields without having any internet conection or an extra Network. Is that some how possible?
First, you still need a network. You can create a hotspot using a computer (laptop) or a device that connects to the RC-controller (phone, tablet).
Secondly, you need an RTMP server that will be located in this network. As a quick example, I can recommend MonaServer2, it is easy to install and run.
Thirdly, you need someone who will "listen" to the server when the stream comes to it. For example, you can use a VLC player. Launch it and specify RTMP stream as a source.
So, you start the RTMP-server, let's say it is located at 192.168.0.1:1935. On your device connected to the RC-controller, using the standard DJI-Fly application or your own app developed using Mobile SDK, select the option to start streaming, specify the address: rtmp://192.168.0.1:1935/live. Next, launch VLC-Player, select File->Open Network Stream and type rtmp://192.168.0.1:1935/live in URL field. Now you will be able to watch live-stream in your VLC window.
This is the fastest and easiest way I can recommend.
Also you can take raw h264 frames from camera, send them to decoder and do whatever you want. If you need some more info about it feel free to ask. Hope it helps!
I have two entities which I would like to be able to start a communication:
Hardware Device Using Atmel ATSAMS70 and WINC1500 Wifi Module
HTML 5 App
The idea to have a HTML 5 app is to be able to communicate easily with most of the commercial devices like: Windows computers, Android Phones, Mac OSX computer and iOS devices. Apart from that, I would avoid working with native code at all.
Currently, they can talk with each other using WebSockets but somehow the IP address of the custom board has to be known from HTML 5 to initiate the communication.
In order to do this, I can think of 3 options:
Using WebRTC I can get the local IP address of the browser and then I could do a scan of the local devices considering a 255.255.255.0 network mask.
Have an external server that the hardware device can send its local address which will be later retrieved by HTML 5.
Using Bonjour or some sort of device discovery service between the board and HTML5.
I could not find a way to achieve #3 but #2 seems feasible to me. #1 is what I am doing now, but WebRTC is currently not supported on iOS.
So, is there any other better possibility to achieve this communication?
You don't mention how the WINC1500 unit is being connected to the network but presumably this is in STA mode (acting as a wifi station rather than becoming a software access point or part of an ad-hoc network) and is being provided with its IP details through an existing access point?
Ordinarily I'd suggest that once connected, the device ought to start indicating its availability on the network via a regular UDP broadcast on a specific port but my (admittedly limited) understanding of WebSockets it is that it creates TCP connections. The only implementation of Bonjour that I've seen uses UDP messaging too, that may be why you've had trouble with your third approach.
Your second approach seems more likely to work well. A server at a known (or discoverable) IP on the local network which allows the Atmel device to register itself (and its IP address) and also allows other applications (your HTML 5 WebSockets applications) to request that connection information to allow them to create the WebSocket TCP connections they need.
I suppose that doesn't really answer your question as to "Is there a better way?", other than to say "Not that I can think of, your second approach looks good to me...". Sorry! Sounds like a very interesting project, overall,
I have an iOS application with a tableview which I would like to send text strings via USB to my Windows computer indicating which cell was selected by the user.Anyone have experience with this type of interface?
I've written a blog post detailing how to achieve this here.
http://thecodewash.blogspot.com/2017/05/communicating-with-your-ios-app-over.html
To answer your question (so this answer isn't just a link), yes it definitely is possible to achieve this utilizing the USB Multiplexing Daemon (usbmuxd) program that is usually installed as part of iTunes. This program can create a socket connection to your iOS device through the USB cable, and allow you to communicate via that socket connection like you would any other socket. The link goes into much more detail.
Hope this helps!
(In short) Yes, you can communicate with ios application via normal socket communication by using ITunes which acts like proxy. In this model your ios app acts like server listening for connection. Windows app must connect to iTunes on port 27015 and estabilish connection to specific port (used by ios app) on connected via usb device. This is done by using a special MUX protocol described here
I'm trying to write an app that uses TCP/IP to communicate to and from an iPhone. To test the basic calls, I was trying to open port 7 (which supposedly is set up to echo any input back to the receiver), write to it, and read the results.
My code works after a fashion. I can, for example, open a site using "www.xxx.com" for a host name and port 80, write an http address, and get back a response.
The problem is that I get an error, "The operation couldn't be completed. Connection refused" error when trying to access port 7, and presumably any other port that isn't opened by Apple for a specific purpose. I've opened port 7 on the AirPort WiFi router using the AirPort Utility app, and tried opening and writing to port 7 both on my Mac and on the iPad using their respective IP addresses from iOS, and always get the same error.
What needs to be done to open ports so I can use TCP/IP to communicate using iOS, either to other iOS devices or with a desktop computer? Or is using port 7 as a test simply not the way to go?
This question was answered by some kind folks on the Apple Developer forms. To summarize:
There is no supported way to use an echo service on iOS. The only way to test TCP/IP turns out to be to create a connection to an actual server. The development Mac can be used for that using, for example, netcat.
i have been working on developing an blackberry application. as per now i want the application to connect to a local server on my network and fetch a file from that machine. i have been using the library given by a named blackberry developer Mr.peter strange....here is the link for the same Http connection through BIS-B
my requirement would be setting up connection to the local server using any transport mode but it should be able to render the text downloaded.
i tried using the demos provided by blackberry samples as it comes with the plugin for eclipse the http demo from those samples shows only trying to setup an http connection string and the networkapidemo sample shows diffrent http codes when the url is entered as desired.i am running all the applications on the simulator. i havent tried running any of my apps on the hardware
may i know why this problem arises of http codes....ill also want to know guidelines about how to set a simple http connection just to download a file(text file) from a local server.
I have tried many forums too. if anybody would have a look at it i would post it here.
Only a simple connection is becoming a headache!
anyways...waiting for replies..
thanx in advance guys :)
It does not matter whether you want to communicate with local or remote server.
1) See the API docs on HttpConnection. There are sample code in there.
2) Unfortunatelly, on BB you should be aware of Network Transports. Check this thread to get all info you need on Network Transports.
UPDATE:
The second point explains an approach that will work on any OS. If you need an OS 5+ only approach, then check the ConnectionFactory API. ConnectionFactory usage sapmles.