문제

위치 데이터를 얻을 수 있습니까? Google 기어, Google Gelocation API 또는 다른 웹 위치 API (예 : 불 독수리) 다른 소프트웨어에 GPS 장치로 나타나는 형식으로?

그것은 나에게 읽었습니다 이 답변 슈퍼 사용자에서 WiFi 위치 찾기에 관한 나의 질문에, GPS 장치를 모방 할 수 있다면, 이러한 웹 서비스 중 다수는 '가난한 맨'GPS로 작용할 수 있습니다.

~이다 GPSD 옵션?

바람직하게는 OSX & Python이지만 모든 구현에 관심이 있습니다.

도움이 되었습니까?

해결책

이있다 매우 유사한 스레드 Windows를 언급하는 Python Mailinglist에서 가상 COM 포트 UNIX의 의사 TTY 기능에 대해 논의합니다. 사용하려는 앱을 사용하려면 특정 TTY 장치 파일을 입력 할 수 있으면 가장 쉬운 경로 일 수 있습니다. (저자에게 당신이하려는 일에 대한 플러그인 API를 제공하도록 요청하거나 자신을 구매하도록 요청하지 않습니다. $ 20 Bluetooth GPS 마우스.)

OS X를 사용하고 있습니까?

프로젝트가 있습니다 macoSxvirtualSerialport Google 코드에서 소사이어티. 의사-팅 경로에서 잠재력이 보이면 Socat을 살펴 보는 것이 좋습니다. 나는 당신이 Socat을 사용하여 파이썬 프로그램에서 pseudo-tty에 파이프를 연결할 수 있다고 생각합니다.

대부분의 기본 MAC 앱은 KioserialBsdrs232Type의 장치에 대한 iOSERVICEMATCHING을 쿼리하는 것이며, 의사 TTY가 IOKIT 서비스로 표시 될 것이라고 의심합니다.

이 경우 이미 그러한 것을 구현 한 프로젝트를 찾을 수 없다면 이에 설명 된대로 드라이버를 구현해야합니다. 가상 COM 포트를 만드는 방법 실. 장치 드라이버를 만드는 데 어려움을 겪고 있다면 ioServiceMatching 쿼리 때문에 IOKIT에 기반을두고 싶을 것입니다. 해당 게시물에서 언급 된 Apple16x50Serial 프로젝트를 찾을 수 있습니다. Apple의 오픈 소스 코드 목록 (가서 가십시오 메인 페이지 그리고 10.6 이전의 것을 목표로하려면 이전 OS 릴리스를 선택하십시오).

앱이 실시간 데이터에 가장 유용한 경우 (예 : Python Mailinglist 스레드에 언급 된 RouteBuddy 앱 현재 위치를 기록 할 수 있습니다) 그러면 웹 소스에서 업데이트를 가져 오기를 원할 것입니다. NMEA RMC 문장. 드라이버 코드 내부 에서이 작업을 수행하고 싶지 않습니다. 대신, 당신의 작업을 통신 할 수있는 커널 랜드 및 사용자 랜드 조각으로 나누고 가능한 한 코드를 커널 부분에 넣으십시오.

앱이 이러한 웹 서비스를 읽고 쓸 수있게하려면 Garmin 장치를 시뮬레이션하는 것입니다. Garmin은 intfspec.pdf 파일에 그들의 프로토콜을 더 많이 기록했습니다. 장치 인터페이스 SDK. 다시 말하지만, 최대한 사용자 공간 코드로 분할하고 싶을 것입니다.

나는 Iokit 기반 가상 직렬 인터페이스의 커널 쪽을 구현하는 프로젝트 나 유틸리티를 찾을 수 없었지만 어딘가에 숨어 있지 않으면 놀랄 것입니다. 불행히도, 내가 그 질문에 대해 찾은 대부분의 답변은 이와 같았습니다. kext 작성.

다른 팁

나는 당신이 요구하는 것을 달성하는 방법을 정확히 잘 모르겠지만, 당신이 어떻게 할 수 있는지에 대한 통찰력을 빌려줄 수 있습니다. 시작하다 그것을 끝내기 위해. 그래서 여기에 간다 :

GPS 장치는 대부분의 시스템에 대한 직렬 장치에 지나지 않습니다. 즉, Windows를 다루는 경우 COM 포트, /dev /ttysx *nix에있는 경우 COM 포트입니다. 정의에 따르면, 직렬 포트의 특정 의무는 버스를 가로 질러 데이터를 한 번에 한 블록 씩 스트리밍하는 것입니다. 따라서 논리적으로 GPS 장치의 존재를 모방하려면 소비하는 데이터를 수집하여 활성 직렬 포트처럼 작용하는 스트림에 넣어야합니다.

그러나 고려해야 할 몇 가지 합병증이 있습니다.

  • 대부분의 GPS 장치는 위치 데이터를 전송하지 않습니다. 위성 위치, 품질 수정, 베어링 등에 대한 정보도 있습니다. 그런 다음 다시는 아무도 당신을 말하는 규칙을 만들지 않았습니다. 가지다 모든 데이터를 사용할 수 있도록합니다. 아마도 이것에 더 많은 것이있을 것입니다. 그러나 나는이 분야에서 더 많은 연구를해야한다는 것을 인정할 것입니다.
  • Google 위도 등을 처리 할 때 얼마나 빨리 데이터를 수신 할 수 있는지 잘 모르겠지만, 수신의 지연은 "Serial Port"의 데이터 스트림에서 눈에 띄는 일시 정지를 제공합니다. 다시 말하지만, GPS 장치는 어쨌든 버스를 가로 질러 데이터를 "파열"하는 것으로 알려져 있기 때문에 이것은 복잡한 것으로 보이지 않을 수 있지만, 나는 분명히 그것을 주시 할 것입니다. 부족이 아니라 항상 잉여 데이터가 나오는지 확인하고 싶습니다.

그 과정에서 수신 한 좌표를 유효한 GPS 문장으로 변환해야합니다. 당신은 그것들에 대한 사양을 찾을 수 있지만, 나는 NMEA 표준과 친구를 만들 것입니다. 결함이있는 표준이지만 모든 사람들이 어쨌든 동의하는 것 같습니다.

이것이 적어도 조금 도움이 되었기를 바랍니다. 이 질문에 대답하는 데 유용 할 수 있다고 생각하는 문제에 대한 더 이상 세부 사항이 있습니까?

살펴보십시오 프랜슨 GPS 게이트 이를 통해 GPS 시뮬레이션 등과 같이 Google 어스에 연결할 수 있습니다 (GPS 등). 그래도 창문이지만 유용한 아이디어를 얻을 수 있다고 생각합니다.

나는 그것을 많이 보지 않았지만 당신은 사용을 고려 했습니까? Skyhook의 SDK? 그것은 당신이 찾고있는 것을 제공 할 수 있습니다. 모든 주요 데스크탑 및 모바일 OS에 사용할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top