none
請教serialPort取得fake gps資料問題 RRS feed

  • 問題

  •  

    請教各位大大一個問題,

    小弟在win ce 6.0 emulator安裝了fake gps並開啟,

    接著去設定裡的Extenal GPS,設定了GPS程式連接埠為COM4

    接著小弟利用SerialPort類別去讀取COM4裡的訊息,小弟發現讀不出來。

    但是小弟將我寫的程式實際delpoy到實際pda手機並去讀com4卻可以讀出gps data,

    小弟想請教各位大大,是不是使用fake gps模擬時,無法使用serialport來讀取資料,

    因為小弟看了微軟gps sample code並不是用serialport來讀取fake gps,

    而是使用它們自已寫對小弟來說有點小複雜的程式來讀取的。

     

    不知有哪位大大可以解決小弟這二天的問題,不然小弟每次要debug都要拿真實手機在屋外測試在回到電腦前,

    真的好累,二天下來腦力沒用到,卻用了一堆体力了。

     

    2009年1月25日 上午 03:47

解答

  • Hi,

    您可以先看看教學影片http://msdn.microsoft.com/zh-tw/cc964133.aspx

     

    2009年1月25日 上午 08:22
    版主
  •  

    GPS 的 Input 的  Data 一定要 standard NMEA  的 format, please check: http://msdn.microsoft.com/en-us/library/bb202118.aspx , 而 HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver\Drivers\CurrentDriver 所指的 input source 的 InterfaceType 是 File.

     

    如果你要更進入的了解 , please check : PUBLIC\COMMON\OAK\DRIVERS\GPSID (GPS intermediate Driver 的Source code, 要先安裝 platform builder or CE 6.0) 你可以 用 Debugger trace看看

     

    簡化的 GPSID flow 如下

     

    Source (COMM/FILE/POLL) -> Mux ----+---> GPS0 (Parsed Data)

                                                             |

                                                            + -> GPSx/COMx (Raw Data)

    GPS0 是給 GPSID API 在使用, Mux 分出來的 COM port (GPSx/COMx) 則是給 需要直接 Access Raw DATA application 用, 你的 case 是 File 進  GPSx/COMx 出

    2009年1月26日 上午 04:53

所有回覆

  • Hi,

    您可以先看看教學影片http://msdn.microsoft.com/zh-tw/cc964133.aspx

     

    2009年1月25日 上午 08:22
    版主
  •  

    dear大大您好,

    此影片我有看過了,

    我有將程式應用連接埠設在com4,並在程式中指定port name為com4但仍然讀不出fake gps裡的data,

    小弟想check一下是不是若使用fake gps則一定要使用win ce 6 sdk裡附的locatioon的sample來使用。

    謝謝

    2009年1月25日 下午 12:51
  •  

    GPS 的 Input 的  Data 一定要 standard NMEA  的 format, please check: http://msdn.microsoft.com/en-us/library/bb202118.aspx , 而 HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver\Drivers\CurrentDriver 所指的 input source 的 InterfaceType 是 File.

     

    如果你要更進入的了解 , please check : PUBLIC\COMMON\OAK\DRIVERS\GPSID (GPS intermediate Driver 的Source code, 要先安裝 platform builder or CE 6.0) 你可以 用 Debugger trace看看

     

    簡化的 GPSID flow 如下

     

    Source (COMM/FILE/POLL) -> Mux ----+---> GPS0 (Parsed Data)

                                                             |

                                                            + -> GPSx/COMx (Raw Data)

    GPS0 是給 GPSID API 在使用, Mux 分出來的 COM port (GPSx/COMx) 則是給 需要直接 Access Raw DATA application 用, 你的 case 是 File 進  GPSx/COMx 出

    2009年1月26日 上午 04:53
  • Hi,

    你是怎麼讀取的呢?直接下Serialport.Read把資料讀到Byte陣列中試試看,不要用ReadLine或是ReadExisting。

    2009年1月26日 上午 06:25
    版主
  •  

    大大您好,我好像正是用ReadExisting這個方法來讀取,我等等在試試你說的方法。
    2009年1月27日 上午 02:04