2014-04-25 9 views
0

파이썬 코드로 제어되는 Linux를 실행하는 사용자 정의 임베디드 하드웨어 장치가 있습니다. 로컬 네트워크에서 내 기기를 자동으로 찾고, 기기를 구성하고, 기기의 데이터를 표시하는 Android 클라이언트를 만들고 싶습니다.간단한 장치 탐색 및 웹 서비스

저는 구현을 가능한 한 간단하게 유지하고 빠른 구현을 위해 가능한 많은 오픈 소스 소프트웨어를 활용하고 싶습니다 (적극적으로 유지 관리/지원 코드에 대한 강한 선호도가 있음). 내 연구는 지금까지 내 장치를 찾을 수 SSDP을 사용하고 UPnP를셔서하는 UPnP를 구현을 선호하는 저를 주도하고있다

통신 내 안드로이드 클라이언트와 파이썬 제어 리눅스 디바이스 사이 SOAP를 통해.

  1. 은 UPnP는이 사용 사례 (I은 기존의 UPnP 장치 아니에요)을위한 좋은 선택인가? 아니면 고려해야 할 다른 표준 기반 접근 방식이 있습니까?
  2. UPnP가 합리적이라고 가정하면 :
    • (a) Android 및 Python/Linux 장치에서 사용할 수있는 합리적인 라이브러리는 무엇입니까?
    • (b) 사용자 지정 UPNP "장치"를 구현해야합니까, 아니면 내 솔루션을 MediaServer처럼 보이게하려고해야합니까?

은 현재 내가 난 경우 궁금한데 내가 기대 한 것처럼 간단로왔다 어느 것도 파이썬 측에 안드로이드 측면에서 ClingCoherence를 사용하여 구현을 시도하고있어 현명한 접근법을 취합니다.

답변

1

여기에 UPnP를 사용할 때 아무런 문제가 없습니다. 관련이 있지만 여전히 독립적 인 두 가지 질문이 있습니다.

  • 서비스를 어떻게 발견합니까? SSDP는 유효한 기술이지만 zeroconf도 그렇습니다. Android 구현을 인식하지 못하고 있습니다.
  • uri가 발견되면 어떻게 귀하의 API를 공개합니까? UPnP는 지금까지 조금 오래된 학교이지만 잘 작동합니다. 괜찮은 라이브러리를 사용하면 쉽지만 매우 강력합니다. 필요에 따라 정상적인 REST 웹 서비스와 같은 것을 사용하거나 UPnP를 사용하지 않고 SOAP를 사용할 수 있습니다.

질문이 실제로 관련이 없는지 여부는 사용하는 라이브러리에 따라 다릅니다. 예를 들어. Cling을 사용하면 비 UPnP 사용 사례에만 SSDP를 사용할 수 있습니다. 는 UPnP의 질문

  1. :

    • (A) 나는 안드로이드 사이드에 익숙하지 않아요하지만 리눅스 UPnP를 위해 내가 '나는이 비록 편견 해요 (GUPnP을 제안 m 개발에 참여) : 안정적이고 잘 테스트 된 라이브러리입니다. 파이썬 바인딩은 문서화되어 있지 않지만 반드시 존재해야합니다 : from gi.repository import GUPnP. GUPnP는 또한 원하는 경우 SSDP 만 수행합니다. GSSDP 라이브러리를 참조하십시오.

    • (b) 기존의 일치하는 항목을 찾을 수 없다면 맞춤 장치가 필요합니다. 이것이 바로 UPnP가 설계 한 기능입니다.GUPnP의 경우 장치 및 서비스 설명 (xml, 소스의 예 참조)을 작성하고 RootDevice으로로드하십시오. 그것은 장치/서비스 발견을 처리하고 설명 문서를 호스팅합니다. 그런 다음 서비스 설명에 취한 조치 만 구현하면됩니다.

+0

감사합니다. 좋은 정보. zeroconf를 고려하지 않았다. REST를 고려해 보았습니다. GUPnP는 흥미 롭지만 자바와 파이썬으로 언어의 수를 제한하고 싶습니다. XML로 GUPnP를 완벽하게 구현하고 실행 파일을 실행할 수 있다면 고려해 볼 수는 있지만 여전히 [코드 작성]해야만합니다 (https://developer.gnome.org/gupnp/unstable/server- tutorial.html). – proximous

+0

명확히하기 위해 : GUPnP를 사용하여 파이썬에서 UPnP 서비스를 구현할 수 있습니다 (참조 문서는 C에서만 존재 함). XML로 서비스를 구현하는 것만으로는 이해가되지 않습니다. 그렇게 간단한 서비스는 구현할 수 없습니다. – jku

+0

설명해 주셔서 감사합니다. UPnP와 Cling 모두 내가 바라던 것보다 더 복잡해 졌기 때문에 현재 REST와 zeroconfig로 작업하고 있습니다. 문제가 해결되지 않으면 올바른 추천 이었기 때문에 며칠 내에 답변을 수락 할 것입니다. 감사! – proximous