gpt4 book ai didi

java - 从 Android/Java 向 Matlab 发送数据

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:30:16 25 4
gpt4 key购买 nike

我花了一些时间寻找一种将数据从 Android 应用程序发送到 Matlab 的方法——没有任何方法。我更愿意通过 Restful 网络服务使用 JSON 来完成。

我可能对这将如何工作有错误的概念。

Matlab 应该正在运行/等待来 self 的 android 设备的 POST 请求以接收数据,将其从 json 转换为 matlab 形式,进行处理并将其发回 - 而不是再次等待新请求。

像“webread”这样的“RESTful web 服务”似乎不等待传入数据并为它们激活。


如何让 Matlab 使用 json 监听传入的数据?或者如何让 Matlab 从基于 Android/java 的程序接收数据?我是否需要其他框架、API 甚至带有数据库的服务器来完成这项工作?

谁能给我一些提示?

最佳答案

方法一:

Matlab 还提供了 Matlab Mobile https://de.mathworks.com/products/matlab-mobile.html ,它能够从您的设备执行 Matlab 代码,但是,无法将图像发送到 Matlab。

但是,您可以使用网络摄像头 https://play.google.com/store/apps/details?id=com.pas.webcam&hl=en并打开一个服务器,这非常简单。您可以在后台运行该应用程序,然后通过 Matlab-Mobile 连接到 Matlab,并通过您的 IP 地址访问它,通常是端口 8080。

方法二:

您可以使用此处实现的 WebSocket 服务器:

https://de.mathworks.com/matlabcentral/fileexchange/50040-jebej-matlabwebsocket

有关如何让它运行的更多信息,您可以按照 GitHub 自述文件中给出的说明进行操作,此处:https://github.com/jebej/MatlabWebSocket

WebSocket Server位于OSI模型第7层(应用层)的最高层https://en.wikipedia.org/wiki/OSI_model并在第 4 层 (TCP) 上构建 op。但是,您不需要指定缓冲区大小等。

以下示例代码直接取自GitHub项目的示例代码。要在 Android 应用程序中实现预期的结果,最好的方法是在 Android 上重建客户端应用程序。

回声服务器:

classdef EchoServer < WebSocketServer
%ECHOSERVER Summary of this class goes here
% Detailed explanation goes here

properties
end

methods
function obj = EchoServer(varargin)
%Constructor
obj@WebSocketServer(varargin{:});
end
end

methods (Access = protected)
function onOpen(obj,conn,message)
fprintf('%s\n',message)
end

function onTextMessage(obj,conn,message)
% This function sends an echo back to the client
conn.send(message); % Echo
end

function onBinaryMessage(obj,conn,bytearray)
% This function sends an echo back to the client
conn.send(bytearray); % Echo
end

function onError(obj,conn,message)
fprintf('%s\n',message)
end

function onClose(obj,conn,message)
fprintf('%s\n',message)
end
end
end

要在 MATLAB 中运行它,请输入:

s = EchoServer(30000);

这将在您的本地计算机上使用端口 30000。

在 Android 上,只需创建一个 WebSocket 客户端并使用您的 URI,您可以使用 ipconfig (windows) 或 ifconig (Linux) 找到它。在 Android 中,uri 应该如下所示:

ws://192.168.1.102:30000 

IP地址可能会根据您的IP地址发生变化

关于java - 从 Android/Java 向 Matlab 发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33740972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com