如何通过Internet(而不是Wi-Fi)从iPad / iPhone发送OSC命令

时间:2022-05-01 01:40:44

I am building an Arduino based servo driver that I want to control with OSC commands from my iPad over the Internet.

我正在构建一个基于Arduino的伺服驱动程序,我希望通过Internet通过iPad上的OSC命令进行控制。

Is it possible to send OSC commands over 3G / UMTS with my iPad or iPhone to control a device? So I will not be limited by the router's range when I send OSC commands to the controller when both devices are part of the same Wi-Fi network.

是否可以通过我的iPad或iPhone通过3G / UMTS发送OSC命令来控制设备?因此,当两个设备都是同一Wi-Fi网络的一部分时,我将OSC命令发送到控制器时,我不会受路由器范围的限制。

It seems that the applications I downloaded (TouchOSC, iOSC) can only send OSC data over Wi-Fi, however I'd like to send the commands over the Internet (with port forwarding settings in my router).

似乎我下载的应用程序(TouchOSC,iOSC)只能通过Wi-Fi发送OSC数据,但是我想通过Internet发送命令(在我的路由器中使用端口转发设置)。

3 个解决方案

#1


0  

I would get one of these. Look ma, no wi-fi :)

我会得到其中一个。看马,没有Wi-Fi :)

#2


0  

OSC typically uses UDP (User Datagram Protocol), even if some newer OSC implementations also allow TCP/IP messaging (also see Difference between TCP and UDP?).

OSC通常使用UDP(用户数据报协议),即使一些较新的OSC实现也允许TCP / IP消息传递(也参见TCP和UDP之间的区别?)。

Unfortunately (as far as I know), UDP does not work over 3G, which seems to be your problem. In other words: two mobile devices cannot talk to each other on a cellular network. So it has nothing to do with OSC apps not being able to do this, it's just not available from the cellular network.

不幸的是(据我所知),UDP不适用于3G,这似乎是你的问题。换句话说:两个移动设备无法在蜂窝网络上相互通信。因此它与OSC应用程序无法做到这一点无关,它只是无法从蜂窝网络获得。

However (I think, not tested), I see two workarounds here:

但是(我认为,未经测试),我在这里看到两个解决方法:

  • try to use TCP/IP instead of UDP to send your OSC packets
  • 尝试使用TCP / IP而不是UDP来发送您的OSC数据包
  • if you need UDP on the Arduino side, you could use a server in-between
  • 如果您需要在Arduino端使用UDP,您可以在中间使用服务器

#3


0  

Do port forwarding on your router to forward port x to the Arduino, and then use the IP address from whatsmyip.com and use that one in the touchOSC app when inputting the IP address. That may work.

在路由器上进行端口转发以将端口x转发到Arduino,然后使用whatsmyip.com中的IP地址,并在输入IP地址时在touchOSC应用程序中使用该地址。这可能有用。

#1


0  

I would get one of these. Look ma, no wi-fi :)

我会得到其中一个。看马,没有Wi-Fi :)

#2


0  

OSC typically uses UDP (User Datagram Protocol), even if some newer OSC implementations also allow TCP/IP messaging (also see Difference between TCP and UDP?).

OSC通常使用UDP(用户数据报协议),即使一些较新的OSC实现也允许TCP / IP消息传递(也参见TCP和UDP之间的区别?)。

Unfortunately (as far as I know), UDP does not work over 3G, which seems to be your problem. In other words: two mobile devices cannot talk to each other on a cellular network. So it has nothing to do with OSC apps not being able to do this, it's just not available from the cellular network.

不幸的是(据我所知),UDP不适用于3G,这似乎是你的问题。换句话说:两个移动设备无法在蜂窝网络上相互通信。因此它与OSC应用程序无法做到这一点无关,它只是无法从蜂窝网络获得。

However (I think, not tested), I see two workarounds here:

但是(我认为,未经测试),我在这里看到两个解决方法:

  • try to use TCP/IP instead of UDP to send your OSC packets
  • 尝试使用TCP / IP而不是UDP来发送您的OSC数据包
  • if you need UDP on the Arduino side, you could use a server in-between
  • 如果您需要在Arduino端使用UDP,您可以在中间使用服务器

#3


0  

Do port forwarding on your router to forward port x to the Arduino, and then use the IP address from whatsmyip.com and use that one in the touchOSC app when inputting the IP address. That may work.

在路由器上进行端口转发以将端口x转发到Arduino,然后使用whatsmyip.com中的IP地址,并在输入IP地址时在touchOSC应用程序中使用该地址。这可能有用。