var: FComm: TSPComm; ......begin if FComm.Handle <> 0 then FComm.StopComm; FComm.CommName := 'COM1'; //通讯端口 FComm.BaudRate := 9600;//波特率 FComm.ByteSize := //字节数 8 or 7 FComm.Parity := // 奇偶校验 FComm.StopBits := //停止位 1 ,2 or 1.5 {流控制} FComm.Outx_XonXoffFlow := FALSE;//OUT XON/XOFF流控制 True or False; FComm.Inx_XonXoffFlow := FALSE;//IN XON/XOFF流控制 True or False; if {硬件流} then begin FComm.Outx_CtsFlow := TRUE; FComm.Outx_DsrFlow := TRUE; FComm.DtrControl := DtrHandshake; FComm.RtsControl := RtsHandshake; end else begin FComm.Outx_CtsFlow := FALSE; FComm.Outx_DsrFlow := FALSE; FComm.DtrControl := DtrEnable; FComm.RtsControl := RtsEnable; end; FComm.StartComm; //打开端口 //在此事件中接收数据吧:FComm.OnReceiveData //FComm.WriteCommData是发送数据 end;
能否帮法发送 MDA 出去呢,
buffer的钱两个字节好像是长度,所以你试是从第三个字节开始发
要想发送'MDA'至仪器,可以这样做:procedure TransmitData(TempStr: String); begin if FComm.Handle <> 0 then FComm.WriteCommData(PChar(TempStr),Length(TempStr)); end;...TransmitData('MDA'); ...
MDA??? 是MDA Microsoft Access内抽入器? Microsoft Access 2.0版及其后续版本的工作组事件? 你要达到一个怎样的过程?
要想发送'MDA'至仪器,可以这样做:procedure TransmitData(TempStr: String); begin if FComm.Handle <> 0 then FComm.WriteCommData(PChar(TempStr),Length(TempStr)); end;... TransmitData('MDA');不过有点仪器可能要加回车符才接受。TransmitData('MDA'#13);或回车换行: TransmitData('MDA'#13#1A);硬件流指硬件控制:两个232端口需要将脚RTS,CTS对应相连。
请问如何,发出MDA,我只要这个数据就够了,谢谢,
错了,回车换行: TransmitData('MDA'#13#10);
错了,回车换行: TransmitData('MDA'#13#10);
错了,回车换行: TransmitData('MDA'#13#10);
大民, 便宜procedure TransmitData(TempStr: String); begin if FComm.Handle <> 0 then FComm.WriteCommData(PChar(TempStr),Length(TempStr)); end;通不过
type TForm1 = class(TForm) public: TransmitData(TempStr: String); end; ...procedure TForm1.TransmitData(TempStr: String); begin if FComm.Handle <> 0 then FComm.WriteCommData(PChar(TempStr),Length(TempStr)); end;把TransmitData放在类里面,还通不过吗?
通不过,试过,刚才是procedure TForm1.TransmitData(TempStr: String); begin if FComm.Handle <> 0 then FComm.WriteCommData(PChar(TempStr),Length(TempStr)); end;里面的FCOMM通不过,我改名了SPCOMM为FCOMM,不过现在是PUBLIC,里面通不过
里面如下
启动
comm1.comstart;
读进去语句
writecommdata(buffer,6);其中
var
buffer:string;
具体的你可以看《delphi串行通信编程》--人邮的。还有《串行端口大全》--机械的。两本书结合起来看。
sleep(1000);//此处加个延时
writecommdata(buffer,6);
上面的能否用
writecommdata(buffer,6);
buffer:=’MDA‘;
还有,好象writecommdata(pdatatowrite,size);
pdatatowrite 是字符串,我这样行吗,后面是字符串长度
你试试
@buffer[2],6
......begin
if FComm.Handle <> 0 then FComm.StopComm;
FComm.CommName := 'COM1'; //通讯端口
FComm.BaudRate := 9600;//波特率
FComm.ByteSize := //字节数 8 or 7
FComm.Parity := // 奇偶校验
FComm.StopBits := //停止位 1 ,2 or 1.5 {流控制}
FComm.Outx_XonXoffFlow := FALSE;//OUT XON/XOFF流控制 True or False;
FComm.Inx_XonXoffFlow := FALSE;//IN XON/XOFF流控制 True or False;
if {硬件流} then
begin
FComm.Outx_CtsFlow := TRUE;
FComm.Outx_DsrFlow := TRUE;
FComm.DtrControl := DtrHandshake;
FComm.RtsControl := RtsHandshake;
end else begin
FComm.Outx_CtsFlow := FALSE;
FComm.Outx_DsrFlow := FALSE;
FComm.DtrControl := DtrEnable;
FComm.RtsControl := RtsEnable;
end; FComm.StartComm; //打开端口
//在此事件中接收数据吧:FComm.OnReceiveData
//FComm.WriteCommData是发送数据
end;
begin
if FComm.Handle <> 0 then
FComm.WriteCommData(PChar(TempStr),Length(TempStr));
end;...TransmitData('MDA');
...
是Microsoft Access内抽入器?
是Microsoft Access 2.0版及其后续版本的工作组事件?
要达到一个怎样的效果?
是MDA Microsoft Access内抽入器?
Microsoft Access 2.0版及其后续版本的工作组事件?
你要达到一个怎样的过程?
begin
if FComm.Handle <> 0 then
FComm.WriteCommData(PChar(TempStr),Length(TempStr));
end;...
TransmitData('MDA');不过有点仪器可能要加回车符才接受。TransmitData('MDA'#13);或回车换行:
TransmitData('MDA'#13#1A);硬件流指硬件控制:两个232端口需要将脚RTS,CTS对应相连。
TransmitData('MDA'#13#10);
TransmitData('MDA'#13#10);
TransmitData('MDA'#13#10);
begin
if FComm.Handle <> 0 then
FComm.WriteCommData(PChar(TempStr),Length(TempStr));
end;通不过
public:
TransmitData(TempStr: String);
end;
...procedure TForm1.TransmitData(TempStr: String);
begin
if FComm.Handle <> 0 then
FComm.WriteCommData(PChar(TempStr),Length(TempStr));
end;把TransmitData放在类里面,还通不过吗?
begin
if FComm.Handle <> 0 then
FComm.WriteCommData(PChar(TempStr),Length(TempStr));
end;里面的FCOMM通不过,我改名了SPCOMM为FCOMM,不过现在是PUBLIC,里面通不过
public:
procedure TransmitData(TempStr: String);
end;还通不过吗?
把你的的sourcecode铁出来看看!
[Error] Unit1.pas(34): Undeclared identifier: 'FCOMM'