Foxtable(狐表)用户栏目专家坐堂 → [求助]关于win系统平板串口


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

主题:[求助]关于win系统平板串口

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/22 21:14:00 [显示全部帖子]

目前只有DateTimePicker控件,暂时没有办法选择时分秒,只能手工录入,或者使用代码赋值。

至于其他问题,我看了2遍,愣是没看懂需要解决什么

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/23 9:03:00 [显示全部帖子]

试试

方法1,程序等待2秒再接收
e.Form.Controls("TextBox11").Value = Nothing    '清空原先数据
forms("串口").Controls("TextBox11").Select  '定位到录入位置

Ports.Add("COM4") '开启
Ports("COM4").Open() '打开串口

Dim hexa(3) As Byte
hexa(0)=&H16
hexa(1)=&H54
hexa(2)=&H0d

Ports("COM4").Write(hexa,0,3)
application.doevents
System.Threading.Thread.Sleep(2000)
Dim s As String
s=Ports("COM4").ReadExisting() '从COM4接收文字数据

方法2、到设备监视器里接收:http://www.foxtable.com/webhelp/topics/1967.htm

把查询相关的代码移到DataReceived事件
Forms("串口").Controls("TextBox11").Text = e.Port.ReadExisting() '获取数据
Dim btn As WinForm.Button = Forms("串口").Controls("单号查询")
btn.PerformClick()

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/23 14:03:00 [显示全部帖子]

这种对话框窗口没有办法自动关闭。建议还是到设备监视器里接收

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/23 15:51:00 [显示全部帖子]

串口 窗口 扫码开始  按钮代码
e.Form.Controls("TextBox11").Value = Nothing    '清空原先数据
forms("串口").Controls("TextBox11").Select  '定位到录入位置
Ports.Add("COM4") '开启
Ports("COM4").Open() '打开串口
Dim hexa(3) As Byte
hexa(0)=&H16
hexa(1)=&H54
hexa(2)=&H0d
Ports("COM4").Write(hexa,0,3)

If Tables("表A").Current IsNot Nothing Then  '先判断是否有行
    For i As Integer = CurrentTable.TopPosition To CurrentTable.BottomPosition
        CurrentTable.Rows(i)("开始时间") = now() '赋值当前时间
    Next
End If

Tables("表A").save '保存

去掉扫码结束按钮,结束时间放到DataReceived事件处理

设备监视器 DataReceived事件代码 

Forms("串口").Controls("TextBox11").Text = e.Port.ReadExisting() '获取数据
'MessageBox.Show("控件接收到数据")
Dim btn As WinForm.Button = Forms("串口").Controls("单号查询") ''''获取新的数据后进行查询动作
btn.PerformClick()
If Tables("表A").Current IsNot Nothing Then  '先判断是否有行
    For i As Integer = CurrentTable.TopPosition To CurrentTable.BottomPosition
        CurrentTable.Rows(i)("结束时间") = now() '赋值当前时间
        
    Next
End If
'MessageBox.Show("执行查询")



 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/23 16:32:00 [显示全部帖子]

那就这样有没有问题:
串口 窗口 扫码开始  按钮代码
e.Form.Controls("TextBox11").Value = Nothing    '清空原先数据
forms("串口").Controls("TextBox11").Select  '定位到录入位置
Ports.Add("COM4") '开启
Ports("COM4").Open() '打开串口
Dim hexa(3) As Byte
hexa(0)=&H16
hexa(1)=&H54
hexa(2)=&H0d
Ports("COM4").Write(hexa,0,3)

If Tables("表A").Current IsNot Nothing Then  '先判断是否有行
    For i As Integer = CurrentTable.TopPosition To CurrentTable.BottomPosition
        CurrentTable.Rows(i)("开始时间") = now() '赋值当前时间
        
    Next
End If

Tables("表A").save '保存


串口 窗口 扫码结束  按钮代码

e.Form.Controls("TextBox11").Value = Nothing    '清空原先数据
forms("串口").Controls("TextBox11").Select  '定位到录入位置
Dim s As String
s=Ports("COM4").ReadExisting() '从COM4接收文字数据
e.Form.Controls("TextBox11").Value = s
If Tables("表A").Current IsNot Nothing Then  '先判断是否有行
    For i As Integer = CurrentTable.TopPosition To CurrentTable.BottomPosition
        CurrentTable.Rows(i)("结束时间") = now() '赋值当前时间
        
    Next
End If
Dim btn As WinForm.Button = Forms("串口").Controls("单号查询") ''''获取新的数据后进行查询动作
btn.PerformClick()

Tables("表A").save '保存

去掉设备监视器 DataReceived事件代码

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/23 17:02:00 [显示全部帖子]

那就应该是和设备的交互有问题。和代码无关


 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/23 17:43:00 [显示全部帖子]

我没有办法理解和测试您的流程。既然接收的这个过程都是正常的,可以使用全局变量记录当前是哪个步骤,比如点击按钮1,使用全局变量记录了点击的是按钮1,监视器接收数据后根据全局变量,知道是按钮1,就处理按钮1的时间

 回到顶部