我遇到了从飞行时间相机(mesa sr4500)的lan连接通过simulink接收原始数据流到我的电脑的问题。似乎正确选择了ip地址和simulink块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
这是我收到的错误消息。
阻止错误 - >评估MATLAB的已注册方法“输出”时出错 “解码/ TCP / IP接收”中的S-Function“stciprb”
引起: 超时期限内未返回指定数量的数据。 请确保将数据发送到指定端口,指定更大的超时值。
我认为更长的超时不会有帮助,因为相机已经以10 fps流式传输。所以超时应该足够长。
我误解了任何设置选项吗?有人和类似的相机一起工作过吗?
答案 0 :(得分:1)
由于您收到超时错误,可能是因为Simulink没有看到您的相机,因此您在TCP / IP接收块中分配了错误的IP地址或端口。您的网卡的IP地址和端口(我认为您的意思是PC的网卡?)无法正常工作,您需要分配相机的IP。
打开TCP / IP接收块,然后单击Verify address and port connectivity
,您将获得输出消息,看看Simulink是否看到您的相机的IP和端口。
顺便说一下,我看到你已经将端口设置为139(用于NetBIOS会话服务的端口)。我不知道你的相机是否使用了一些特殊的专用端口(例如一些fps非常低的相机通过端口20上的FTP发送图片,但是10 fps我怀疑你的相机是什么情况?) 。尝试分配一个空闲端口(即1024到65536之间的数字)。