0

我通过simulink从飞行时间相机(mesa sr4500)的局域网连接到我的电脑接收原始数据流时遇到问题。simulink 块的 ip 地址和端口tcp/ip receive似乎选择正确(它是我的网卡的 ip 地址和端口)。这是 simulink 块的进一步设置的图片:

remote address: 192.168.1.1
port : 139
data size: [25344 1] -> should receive an array of this size due to the image resolution
data type uint16 -> each pixel of the camera is encoded with 16 bits
bye order: BigEndian
enable blocking mode is turned on
timeout: 10 (seconds)
block sample time: 0.1 (seconds) -> camera fps = 10

这是我收到的错误消息。

块错误 -> 在“解码/TCP/IP 接收”中评估 MATLAB S-Function“stciprb”的注册方法“输出”时出错

原因:在超时期限内未返回指定数量的数据。请确保将数据发送到指定更大的超时值的指定端口。

我认为更大的超时不会有帮助,因为相机已经以 10 fps 的速度流式传输。所以超时时间应该足够长。

我误解了任何设置选项吗?有人用过类似的相机吗?

4

1 回答 1

1

由于您收到超时错误,可能是因为 Simulink 看不到您的相机,因此您在 TCP/IP 接收块中分配了错误的 IP 地址或端口。您的网卡的IP地址和端口(我假设您是指PC的网卡?)不起作用,您需要分配相机的IP。

打开 TCP/IP Receive 模块并单击Verify address and port connectivity,您将获得输出消息 Simulink 是否看到您的相机的 IP 和端口。顺便说一句,我看到您已将端口设置为 139(这是 NetBIOS 会话服务的端口)。我不知道您的相机是否使用了一些特殊的专用端口(例如,某些 fps 非常低的相机通过端口 20 上的 FTP 发送图片,但我怀疑您的相机是否是 10 fps?)。尝试分配一个空闲端口(即 1024 和 65536 之间的编号)。

于 2017-12-22T09:54:07.420 回答