Foxtable(狐表)用户栏目专家坐堂 → 发现一个奇怪的问题


  共有2336人关注过本帖树形打印复制链接

主题:发现一个奇怪的问题

帅哥哟,离线,有人找我吗?
ljh29206
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1368 积分:12189 威望:0 精华:0 注册:2012/3/5 11:32:00
发现一个奇怪的问题  发帖心情 Post By:2016/6/14 11:44:00 [显示全部帖子]

If Vars("完成的闪烁灯次数") < 60 Then
    If Vars("完成的闪烁灯号") > ""  Then
        If  Vars("完成的闪烁灯号").CONTAINS(" FF 00") Then
            Functions.Execute("灯输出控制",Vars("完成的闪烁灯号").SubString(0,11) & " 00 00")
            Vars("完成的闪烁灯号") = Vars("完成的闪烁灯号").SubString(0,11) & " 00 00"
            Vars("完成的闪烁灯次数") = Vars("完成的闪烁灯次数") +1
        Else
            Functions.Execute("灯输出控制",Vars("完成的闪烁灯号").SubString(0,11) & " FF 00")
            Vars("完成的闪烁灯号") = Vars("完成的闪烁灯号").SubString(0,11) & " FF 00"
            Vars("完成的闪烁灯次数") = Vars("完成的闪烁灯次数") +1
        End If
    End If
Else
   If Vars("完成的闪烁灯号") > ""  Then
    Functions.Execute("灯输出控制",Vars("完成的闪烁灯号").SubString(0,11) & " 00 00")
    Vars("完成的闪烁灯号") = Nothing
    MyTimers("已经完成的灯闪烁").Enabled = False
    End If
End If

以上的代码 放在计时器里面,当计时器开始后

如果在这个期间 触发异步的语音朗读,

以上的代码 会卡住, 直到第一次的语音朗读完成再继续,

但是经过第一次后,接下来的几次语音朗读 都不会导致  代码 卡住。  
不知道各位有没试过这个情况?

[此贴子已经被作者于2016/6/14 11:45:32编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
ljh29206
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1368 积分:12189 威望:0 精华:0 注册:2012/3/5 11:32:00
  发帖心情 Post By:2016/6/14 12:23:00 [显示全部帖子]

测试了,
不是语音朗读问题

      If  Vars("完成的闪烁灯号").CONTAINS(" FF 00") Then
            Functions.Execute("灯输出控制",Vars("完成的闪烁灯号").SubString(0,11) & " 00 00")
            Vars("完成的闪烁灯号") = Vars("完成的闪烁灯号").SubString(0,11) & " 00 00"
            Vars("完成的闪烁灯次数") = Vars("完成的闪烁灯次数") +1
        Else
            Functions.Execute("灯输出控制",Vars("完成的闪烁灯号").SubString(0,11) & " FF 00")
            Vars("完成的闪烁灯号") = Vars("完成的闪烁灯号").SubString(0,11) & " FF 00"
            Vars("完成的闪烁灯次数") = Vars("完成的闪烁灯次数") +1
        End If
完全就是这段代码的问题

写入串口缓冲区的时候, 设备接收的信号不知道怎么处理!
老是会出现处理缺失,导致 灯 的开关信号不能 收到, 

直接导致 灯 卡住了!

请问袍哥 除了 这个方法  还有没其他的办法  做到 灯闪烁
[此贴子已经被作者于2016/6/14 12:23:33编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
ljh29206
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1368 积分:12189 威望:0 精华:0 注册:2012/3/5 11:32:00
  发帖心情 Post By:2016/6/14 13:39:00 [显示全部帖子]

值没有问题的 ,单独发送都可以

"01 05 00 07 FF 00"   开
"01 05 00 07 00 00"  关
(数组写入 已经进行处理)

 用  System.Threading.Thread.Sleep(300),能够有效间隔开。

请教 如何使 通过代码让灯发生闪烁,但不会导致系统挂起!
另外开一条线程的行否?
改怎么写呢
[此贴子已经被作者于2016/6/14 13:40:04编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
ljh29206
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1368 积分:12189 威望:0 精华:0 注册:2012/3/5 11:32:00
  发帖心情 Post By:2016/6/14 14:06:00 [显示全部帖子]

袍哥 

如何判断 串口 缓冲区的 数据 已经被 设备处理掉?

 回到顶部