菜鸟用mscomm控件做了一个读串口的程序,用了好用,但菜鸟想让两个都读串口1的程序同时运行可怎么办啊? (33分)

  • 主题发起人 主题发起人 xiaoxiami1
  • 开始时间 开始时间
X

xiaoxiami1

Unregistered / Unconfirmed
GUEST, unregistred user!
菜鸟用mscomm控件做了一个读串口的程序,用了好用,但菜鸟想让两个都读串口1的程序同时运行可怎么办啊?
procedure Tdenglu.FormCreate(Sender: TObject);
begin
Mscomm1.InBufferCount := 0; // 清空接收缓冲区
Mscomm1.InputLen := 0; // Input读取整个缓冲区内容
Mscomm1.RThreshold := 1; // 每次接收到字符即产生OnComm事件
end;

procedure Tdenglu.FormActivate(Sender: TObject);
begin
if mscomm1.portopen = false then
begin
Mscomm1.CommPort := 1;
Mscomm1.PortOpen := true; // 打开串口
Mscomm1.DTREnable := true; // 数据终端准备好
Mscomm1.RTSEnable := true; // 请求发送
end;
end;

procedure Tdenglu.MSComm1Comm(Sender: TObject);
var
recstr: Olevariant;
begin

if Mscomm1.CommEvent = 2 then
begin
recstr := Mscomm1.Input;
edit1.text := edit1.text + recstr;
edit1.text := copy(edit1.text, 0, 10);
edit2.text := edit1.text;
end;

两个同时读串口的程序同时运行会说‘串口已经打开’!!
 
先关闭再打开
 
w问题高深了。一般都是独占方式打开的。
除非你能得到串口数据接收的内存空间,然后共享内存空间。
不知道能不能行。但是我觉得你可以实时共享数据不一定都从传口读取
 
要第一个程序把串口的句柄传给第二个?也不一定行的
 
如果两个程序有各自的功能,这不可能。
 
做成一個串口服務器的程序, 其它兩個程序要發送, 只是發個請求給它, 由它來發送并將接收後的數據傳回去請求程序! 這樣做比較簡單!!

共用串口也是可能的, 但實現很麻煩!!!
 
共用串口也是可能的, 但實現很麻煩!!!能不能介绍一下思路,我还不知道可以共用呢。
 
可以是可以,大家用过winfax吗?他监视MODEM,但是windows还是可以拨号,就是共享了。另外一个国产的,就是独占了,windows不能拨号。
 
还是做成Aiirii说的串口服务器简单一些。
 
我找了个MSCOMM控件,可没法使用,
谁有该控件给我发一个,chinadjt@163.com
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
770
import
I
I
回复
0
查看
628
import
I
后退
顶部