在ABAP中从mscomm读取数据

2020-08-30 13:26发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,

我已经处理了好几个星期,但仍然找不到使它起作用的方法。

我想使用下面的代码从连接到串行端口的设备读取响应。

创建对象O_OBJ'MSCOMMLIB.MSCOMM.1'
 O_OBJ的SET属性" commport" = COMMPORT。
 O_OBJ"设置"的设置属性=设置。
 SET属性o_obj'InputLen'= 0。

 O_OBJ的输入属性'InputMode'= 1。
 O_OBJ的SET属性'DTREnable'= 1。
 设置O_OBJ'RTSEnable'的属性= 1。
 O_OBJ的SET属性'Rthreshold'= 0。
 设置O_OBJ'握手'的属性= 1。
 设置O_OBJ'EOFEnable'的属性= 1。
 设置O_OBJ'portopen'的属性= 1。
 通话功能'HR_KR_XSTRING_TO_STRING'
 出口
  in_xstring = lv_xstring
  输入
  out_string = lv_string。

 "发送到mscomm
 "写入串口
 O_OBJ的SET属性"输出" = lv_string。
 "从串口读取
 数据strmsg类型字符串。
   做10次。
     o_obj的属性'InBufferCount'= wa_buffer。
     如果wa_buffer> 0。
         获得o_obj'Input'的属性= strmsg。
     万一。
   ENDDO。

但是我只能以某种方式获得输入的第一部分(mscomm)

输入字符串为(从设备到串行端口的响应):

      01000000000000000000000000 P3  

但是我得到的只是 或060202

其余的字符串都消失了。

请咨询。

我尝试将strmsg类型更改为xstring,x,但仍然无法正常工作。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,

我已经处理了好几个星期,但仍然找不到使它起作用的方法。

我想使用下面的代码从连接到串行端口的设备读取响应。

创建对象O_OBJ'MSCOMMLIB.MSCOMM.1'
 O_OBJ的SET属性" commport" = COMMPORT。
 O_OBJ"设置"的设置属性=设置。
 SET属性o_obj'InputLen'= 0。

 O_OBJ的输入属性'InputMode'= 1。
 O_OBJ的SET属性'DTREnable'= 1。
 设置O_OBJ'RTSEnable'的属性= 1。
 O_OBJ的SET属性'Rthreshold'= 0。
 设置O_OBJ'握手'的属性= 1。
 设置O_OBJ'EOFEnable'的属性= 1。
 设置O_OBJ'portopen'的属性= 1。
 通话功能'HR_KR_XSTRING_TO_STRING'
 出口
  in_xstring = lv_xstring
  输入
  out_string = lv_string。

 "发送到mscomm
 "写入串口
 O_OBJ的SET属性"输出" = lv_string。
 "从串口读取
 数据strmsg类型字符串。
   做10次。
     o_obj的属性'InBufferCount'= wa_buffer。
     如果wa_buffer> 0。
         获得o_obj'Input'的属性= strmsg。
     万一。
   ENDDO。

但是我只能以某种方式获得输入的第一部分(mscomm)

输入字符串为(从设备到串行端口的响应):

      01000000000000000000000000 P3  

但是我得到的只是 或060202

其余的字符串都消失了。

请咨询。

我尝试将strmsg类型更改为xstring,x,但仍然无法正常工作。

付费偷看设置
发送
4条回答
clasier
1楼 · 2020-08-30 14:25.采纳回答

将inputlen设置为4。

问题已解决。

派大星 ヾ
2楼-- · 2020-08-30 14:07

使用输入二进制,类型x仅返回无穷的00000。

使用

'InputMode'= 0,NullDiscard = 0,什么都没有改变

没有用。

还是谢谢大家。

Violet凡
3楼-- · 2020-08-30 14:26

这很奇怪,因为我必须设置输入属性

o_obj'InputLen'的设置属性= 20

现在我可以看到整个字符串,尽管仍然有些丢失。

我认为将其设置为0会捕获全部内容。

半个程序猿
4楼-- · 2020-08-30 14:28

我没有com设备,因此我只能猜测其与MSComm1.RThreshold相关... 您可以检查线程 或查看此VB6 演示程序

一周热门 更多>