具体情况是这样的:程序运作:
PC发送请求或命令字节,经由数据转换器到达目标设备,目标设备返回响应的数据,之后PC处理目标设备回传的数据并给出相应的动作和结论;PC数据发送特性:
1、接收每次从目标设备发送过来的数据并分析,获取部分并发送(因为字节发送格式里要求进行发送前后设备状态分析);
目标设备特性:
1、目标设备始终以 10 ms/次得速度发送数据,未接受请求或命令时发送循环自我检测数据,接受命令后按要求回传;目前状况:
1、堆栈空间溢出。
2、串口可以及时接收到数据,但发送数据延时严重,甚至不发送数据。我尝试动作:
1、因为数据要进行递归分析之后才能发送字节,我将递归处理部分统统注释之后,程序正常收发,无延时现象(此时相应的状态对比部分用固定字节)。求高人指点思路,不胜感激先!
PC发送请求或命令字节,经由数据转换器到达目标设备,目标设备返回响应的数据,之后PC处理目标设备回传的数据并给出相应的动作和结论;PC数据发送特性:
1、接收每次从目标设备发送过来的数据并分析,获取部分并发送(因为字节发送格式里要求进行发送前后设备状态分析);
目标设备特性:
1、目标设备始终以 10 ms/次得速度发送数据,未接受请求或命令时发送循环自我检测数据,接受命令后按要求回传;目前状况:
1、堆栈空间溢出。
2、串口可以及时接收到数据,但发送数据延时严重,甚至不发送数据。我尝试动作:
1、因为数据要进行递归分析之后才能发送字节,我将递归处理部分统统注释之后,程序正常收发,无延时现象(此时相应的状态对比部分用固定字节)。求高人指点思路,不胜感激先!
优化程序我也想到了,我有个习惯就是一个功能对应一个函数(方法),现在都改到 OnComm 事件里面去处理了,(节约内存,少声明变量)。
更换开发工具提高效率,可以说具体点吗?
还有,我认为以上电脑配置运行一个程序应该可以吧,我会尝试换机器!
根据你的描述,你的目标设备10ms/每次发送数据,是不是就是每10ms发送一次,每次数据量有很大,如果是这样的话,速度太快了,PC估计来不及处理的,VB本身不能多线程来优先处理到来的信息,堆栈肯定溢出。再说了,优先处理到来的信息,但是你的递归还未完成,最终信息就在那儿堆砌。系统永远处理不完,最终还算崩溃。也就是说 你的问题应该无解。你能把问题描述再清晰一点吗?