社区
C#
帖子详情
100求助:关于SICK LMS511激光传感器的数据接收问题(采用IP通信模式)?
guoxinwei
2012-08-21 06:27:40
各位老师好,最近在用SICK LMS511开发应用程序,采用socket异步接收方式,现在的问题是接收的数据量比较大,几百K字节/s,并且数据不断的传输过来,而数据处理的速度似乎跟不上,造成程序很不稳定,已经折腾快一个月了,老板催的很急,各位老师可否给点建议,谢谢了。
...全文
600
11
打赏
收藏
100求助:关于SICK LMS511激光传感器的数据接收问题(采用IP通信模式)?
各位老师好,最近在用SICK LMS511开发应用程序,采用socket异步接收方式,现在的问题是接收的数据量比较大,几百K字节/s,并且数据不断的传输过来,而数据处理的速度似乎跟不上,造成程序很不稳定,已经折腾快一个月了,老板催的很急,各位老师可否给点建议,谢谢了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wangyuchi1989
2012-09-18
打赏
举报
回复
我最近也在做一个LMS511相关,希望能和楼主交流一下,qq:815147879
huangliping_1975
2012-08-23
打赏
举报
回复
快下班了,楼主找到socket接收队列的例子没?
guoxinwei
2012-08-23
打赏
举报
回复
如果开两个线程,一个接收,一个数据处理,那么还需要异步接收不?
guoxinwei
2012-08-23
打赏
举报
回复
实在没有办法了,贴贴我的源代码吧,大家看看能否改进一下: public partial class Form1 : Form
{
private const int port = 2112;
private TcpClient tcpClient;
private byte[] data ;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
tcpClient = new System.Net.Sockets.TcpClient();
tcpClient.Connect("192.168.0.1", port);
data = new byte[tcpClient.ReceiveBufferSize];
NetworkStream n = tcpClient.GetStream();
byte[] byt = { 0x02, 0x73, 0x45, 0x4E, 0x20, 0x4C, 0x4D, 0x44, 0x73, 0x63, 0x61, 0x6E, 0x64, 0x61, 0x74, 0x61, 0x20, 0x31, 0x03 };
n.Write(byt, 0, byt.Length);
tcpClient.GetStream().BeginRead(data, 0, data.Length, ReceiveMessage, null);
}
private void ReceiveMessage(IAsyncResult result)
{
int byteRead = tcpClient.GetStream().EndRead(result);
if (byteRead < 1)
{
return;
}
else
{
object[] para = { System.Text.Encoding.ASCII.GetString(data, 0, byteRead) };
this.Invoke(new delUpdateHistory(UpdateHistory), para);
}
tcpClient.GetStream().BeginRead(data, 0, tcpClient.ReceiveBufferSize, ReceiveMessage, null);
}
public delegate void delUpdateHistory(string str);
public void UpdateHistory(string str)
{
File.AppendAllText(@"d:\1.txt", DateTime.Now.ToLongTimeString());//每个数据包插入时间
File.AppendAllText(@"d:\1.txt", str);
}
}
guoxinwei
2012-08-23
打赏
举报
回复
还是没有找到啊,各位老大帮帮忙啊!难道这真是一个世界性的难题啊?!
ccbphi
2012-08-22
打赏
举报
回复
用过sick的lms111 20毫秒返回一次数据 处理是没有问题的
接收的线程只管接收,不要把数据处理和接收放在一个线程里
guoxinwei
2012-08-22
打赏
举报
回复
在网上找了很久,没有找到关于socket接收的线程队列的例子,郁闷!
guoxinwei
2012-08-22
打赏
举报
回复
ccbphi,您好,您说的有道理,我准备开两个线程,一个接收,一个数据处理,可是这两个线程如何共用这些数据呢,可否详细说明一下,谢谢老师!
zhui22222
2012-08-21
打赏
举报
回复
数据处理肯定要另开线程,socket只管接收扔队列,另一线程处理队列中数据
风一样的大叔
2012-08-21
打赏
举报
回复
1
2
楼主,好多人都有这问题哦
guoxinwei
2012-08-21
打赏
举报
回复
自己顶一下,另外我的代码是用C#写得,winform程序!
LMS算法原理及推导
LMS(Least Mean Squre)算法是一种常用于自适应滤波器的算法。
SICK
激光
雷达
LMS511
数据
提取与分析
因工作需要,近期对
SICK
进行了
数据
提取与分析,将过程描述如下(最后有代码下载地址): 提取:
LMS511
有网络接口,通过发送命令的方式即可提取
数据
,提取的
数据
可以保存到记事本中。具体网上搜一下即可。 推荐使用有人的串口、网口调试助手,还是很好用的。这个公司竟然和我同城 提取后的
数据
放到记事本中,如下图所示: 关于
数据
的格式,网上有说明,可以去查询详细了解下,引用关键部分如下: ...
SICK
LMS511
开发及
数据
结构分析、坐标转换
SICK
LMS511
开发及
数据
结构分析、坐标转换 最近公司有新上的项目,开始接触
激光
扫描仪,型号
SICK
LMS511
。 获取
数据
在网上看了一些资料,有通过
SICK
自带的软件看了一下
激光
扫描仪的配置,实际上可以将
激光
扫描仪视作socket server,只要用自己熟悉的语言编写client程序就可以了。因为现在是项目的初期阶段,我用python简单写了个程序作为测试用途,后期为方便与其他程序对...
SICK
LMS511
利用串口
数据
采集
引言应用
LMS511
或其它版本施克
激光
雷达时,可以通过SOPAS ET软件对
LMS511
进行设置,测量
数据
输出。更多的时候为了定制化产品,我们需要通过串口技术发送命令对
LMS511
进行设置和
数据
的输出。此时官方提供的Developers Guide手册对于开发者是重要的,手册涵盖了串口通讯、
数据
处理、参数设置等大量命令介绍。这篇博文就从如何利用串口进行
数据
采集进行讲解,博文里涉及的电文/命令都来源于
SICK
激光
雷达
LMS511
笔记一
一、设备介绍
激光
雷达型号:
SICK
LMS511
-10
100
S01 (DC 24V) 电脑操作系统:Windows10 64位 接线:淘宝买的航空插头(带线),主要接两根线:Ethernet和Power(也可以拧开显示面板旁边的黑色旋钮盖,那里有一个Mini USB B型插口) LMS5xx设备资料和软件下载:https://www.
sick
.com/de/en/detection-an...
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章