使用Delphi 2007访问MS Surface Pro GPS数据

时间:2015-12-15 21:45:31

标签: delphi gps

我正在使用Delphi 2007编程。我有一台Surface Pro平板电脑,想要从传感器访问GPS数据。据我所知,后来的Delphi版本支持直接访问传感器。但这在2007年没有。

作为替代方案,我一直在尝试使用" Virtual Com Port"来捕获数据。我已经安装了this reverse gps driver from turboirc.com

使用超级终端(参见下面的设置)和流行的 gpsinfo.exe GPS comport嗅探工具,我可以获取数据。但是我无法使用任何Delphi应用程序。我尝试过APro TApdComPort 组件和TMS软件TMS Aysnc。我使用 TApdComPort 组件从我的项目中附加了一段代码。这段相同的代码已经使用了多年真正的com端口应用程序。使用这两个组件,应用程序只需连接到comport,而不执行任何其他操作。没有 TriggerAvail 事件触发。应用程序就在那里。

我是否需要做些什么来激活com端口?

  GPSComPort                     := TApdComPort.Create(self);
  GPSComPort.baud                := 9600;
  GPSComPort.ComNumber   := 3;
  with GPSComPort do begin
    DataBits := 8;
    Parity := pNone;
    StopBits := 1;
  end;
  GPSComPort.OnTriggerAvail      := GPSComPortTriggerAvail;
  GPSComPort.OnTrigger  := TriggerAvail;

  GPSComPort.OnTriggerData  := DataTriggerAvailable;
  GPSComPort.OnTriggerLineError   := LineErrorEvent;
  GPSComPort.OnTriggerStatus   := triggerstatus;
  GPSComPort.hwflowoptions:=[hwfusedtr,hwfuserts] ;   //  Added!!!

  try
    GPSComPort.Open        := true;
  except
    on e: Exception do
      showmessage(e.message);
  end;

TApdComport 组件具有Flow Control的设置。在过去使用此组件的所有应用程序中,我从未设置过此项。任何想法应该如何设置?

THWFlowOptions = (
  hwfUseDTR,         {Use DTR for receive flow control}
  hwfUseRTS,         {Use RTS for receive flow control}
  hwfRequireDSR,     {Require DSR before transmitting}
  hwfRequireCTS);    {Require CTS before transmitting}

{For reporting flow states, note: no rcv hardware flow status is provided}
TFlowControlState = (fcOff,        {No flow control is in use}
                     fcOn,         {Transmit blocked}
                     fcDsrHold,    {Transmit blocked by low DSR}
                     fcCtsHold,    {Transmit blocked by low CTS}
                     fcDcdHold,    {Transmit blocked by low DCD}
                     fcXOutHold,   {Transmit blocked by Xoff}
                     fcXInHold,    {Receive blocked by Xoff}
                     fcXBothHold); {Both are blocked by Xoff}

超级终端设置:

enter image description here

使用Warren的 TComPort 组件进行设置:

comport.BaudRate :=br4800;
comport.Port := 'COM3';
comport.stopbits := StrToStopBits('1');
comport.databits := StrToDataBits('8');
comport.Parity.Bits := prNone;
comport.ControlDTR := dtrEnable;
comport.?????

0 个答案:

没有答案